第六章:纹理贴图

        本文是《从0开始图形学》笔记的第六章,介绍模型纹理的实现,涉及到重心坐标的计算方式和作用,本章之后,我们的模型将从单色变成更为丰富的彩色。

纹理贴图数据格式

        前面几章我们已经可以将复杂的模型渲染出来了,但是模型还是单色的,这显然是不够的,模型还需要各种各样的皮肤来美化,这个“皮肤”在图形学中叫做纹理贴图,这一节我们就来看看如何让模型换上皮肤。

        首先,我们来了解一下纹理贴图是如何在数据中保存的。纹理贴图通常也是普通的图片,例如这样的一张普通图片  

第六章:纹理贴图_第1张图片

      然后,三角形的每个顶点会有一个值在0到1之间的纹理坐标 (x, y),表示该顶点对应于纹理图片中的位置(所以我们数据中的每个三角形会多出6个坐标值),例如下面三角形三个顶点对应的纹理坐标如图

第六章:纹理贴图_第2张图片

        则两者之间的对应关系如下图所示       

第六章:纹理贴图_第3张图片

        最终三角形通过纹理贴图后的效果如下图,相当于将纹理贴图中三角形三个点对应的部分裁剪下来,再通过形变贴合到三角形上

第六章:纹理贴图_第4张图片

        给高达模型中所有三角面片贴图后就可以得到一个更为丰富的视觉效果

第六章:纹理贴图_第5张图片

如何实现纹理贴图

        那如何通过这仅有的6个点坐标实现一个三角形的所有点的纹理填充呢?这里用到一个称为重心坐标

你可能感兴趣的:(图形渲染)