
第二天 贴图(Texture Mapping)
我终于下了班。最近都在忙光照模型和动态光源呢,以后应该会讲到这一块。
今天要讲贴图了,这个词也是A9众常用的词,那么贴图到底是什么呢?
好,有了昨天的知识,我们就知道游戏里的物体究竟是什么了。比如说一个海豚,我们知道其实是长这样的:

但是,它没有皮肤呢。那怎么办呢?简单,蒙一张彩色的皮上去就可以了。
在游戏里面,这张皮,叫做纹理(Texture)。
我其实蛮讨厌这个译名的,它有点让人摸不着头脑。实际上它很简单,就是一张图片,跟常见的PNG、JPG图片没有本质区别。当然,具体的编码肯定不一样。
最常见的纹理是.dds文件,里面的编码是dxt1、dxt5等等,格式非常多,每一个都有特别的用途。
顺便一提,ps4推荐的格式是BC7。当然这还是dds文件了。这个BC7编码很强,质量非常高,图像的损失很小。
其实啊,现代的显卡其实可以允许你直接用png和jpg图片的,那我们为什么不用这些简单的格式呢?
那是因为,dds文件是为显卡量身定做的,显卡处理它们最高效了!
你可以想象一张图片,上面画了海豚的皮肤,我们把这张图片蒙上这个线框模型(Wire-frame model)就可以了。
不过,游戏怎么知道该怎么蒙?什么方向?什么位置?
这就需要一种新的数据了,叫做UV数据(UV data)。每一个顶点(Vertex),都会有一个对应的UV。
那么,UV数据到底是什么?长什么样?
不得不说,这些概念一个比一个简单,阿猫阿狗都会把。UV就是很普通的二维坐标。之所以叫uv,是因为xy已经被用掉了,所以就改叫uv了。还有的游戏或者引擎叫它st,那都是一个东西。
举个栗子:顶点1,要对应到纹理的左下角,那uv数据就是(0, 0)。顶点2,要对应到纹理的最中间,那uv数据就是(0.5, 0.5)。每一个顶点,都指定一个坐标就可以了。
聪明的玩家肯定要问,这只是顶点而已啊!那顶点之间的线呢?线和线之间的空间呢?
这些就是显卡的工作了,显卡会自动做插值运算(Interpolation)。

简单来说,你告诉显卡顶点怎么处理就行了,其它的点显卡都会自动计算。这张皮就能正确的蒙到海豚上去。
当然,插值运算(Interpolation)有很多种实现方式,这个非常重要,我们以后再细讲。
把皮蒙上去的过程,我们叫做UV Mapping,或者texture mapping。我个人认为,我们常说的贴图,指的就是texture mapping。贴图应当是一个动作,而不是一个名词。
好了,现在你们已经会初步分析SS的机能了!
A9众:啥!?
我觉得是这样呢,明天我们就一起来实践看看吧。
最后,大家稍微复习一下:要完成贴图,需要哪几种数据呢?
我终于下了班。最近都在忙光照模型和动态光源呢,以后应该会讲到这一块。
今天要讲贴图了,这个词也是A9众常用的词,那么贴图到底是什么呢?
好,有了昨天的知识,我们就知道游戏里的物体究竟是什么了。比如说一个海豚,我们知道其实是长这样的:

但是,它没有皮肤呢。那怎么办呢?简单,蒙一张彩色的皮上去就可以了。
在游戏里面,这张皮,叫做纹理(Texture)。
我其实蛮讨厌这个译名的,它有点让人摸不着头脑。实际上它很简单,就是一张图片,跟常见的PNG、JPG图片没有本质区别。当然,具体的编码肯定不一样。
最常见的纹理是.dds文件,里面的编码是dxt1、dxt5等等,格式非常多,每一个都有特别的用途。
顺便一提,ps4推荐的格式是BC7。当然这还是dds文件了。这个BC7编码很强,质量非常高,图像的损失很小。
其实啊,现代的显卡其实可以允许你直接用png和jpg图片的,那我们为什么不用这些简单的格式呢?
那是因为,dds文件是为显卡量身定做的,显卡处理它们最高效了!
你可以想象一张图片,上面画了海豚的皮肤,我们把这张图片蒙上这个线框模型(Wire-frame model)就可以了。
不过,游戏怎么知道该怎么蒙?什么方向?什么位置?
这就需要一种新的数据了,叫做UV数据(UV data)。每一个顶点(Vertex),都会有一个对应的UV。
那么,UV数据到底是什么?长什么样?
不得不说,这些概念一个比一个简单,阿猫阿狗都会把。UV就是很普通的二维坐标。之所以叫uv,是因为xy已经被用掉了,所以就改叫uv了。还有的游戏或者引擎叫它st,那都是一个东西。
举个栗子:顶点1,要对应到纹理的左下角,那uv数据就是(0, 0)。顶点2,要对应到纹理的最中间,那uv数据就是(0.5, 0.5)。每一个顶点,都指定一个坐标就可以了。
聪明的玩家肯定要问,这只是顶点而已啊!那顶点之间的线呢?线和线之间的空间呢?
这些就是显卡的工作了,显卡会自动做插值运算(Interpolation)。

简单来说,你告诉显卡顶点怎么处理就行了,其它的点显卡都会自动计算。这张皮就能正确的蒙到海豚上去。
当然,插值运算(Interpolation)有很多种实现方式,这个非常重要,我们以后再细讲。
把皮蒙上去的过程,我们叫做UV Mapping,或者texture mapping。我个人认为,我们常说的贴图,指的就是texture mapping。贴图应当是一个动作,而不是一个名词。
好了,现在你们已经会初步分析SS的机能了!
A9众:啥!?
我觉得是这样呢,明天我们就一起来实践看看吧。
最后,大家稍微复习一下:要完成贴图,需要哪几种数据呢?
