参考教程
学习记录
这篇文章主要会介绍使用多重贴图来实现的一些有趣的效果,包括使用光照纹理和透明纹理。
第一个需要介绍的是 Light Maps ,它使得我们可以在某些情况下使用及其少的资源实现光照效果。其实介绍起来也很简单,就是使用一张渐变的黑白纹理来和我们的基础纹理混合,达到类似于光照的效果,渐变纹理如下:
我们使用它来取代上一篇中完全不搭的那张纹理,同时修改像素着色器。
1 | Texture2D tex[2]; |
简单的对其相乘,可以达到光照的效果,如下:
第二个要介绍的是 Alpha Mapping。这个则是使用一张透明贴图,来对另外两张图片进行混合。首先列出我们的贴图:
分别将他们命名为 texture3.gif
, texture4.gif
, texture5.gif
,同时扩充我们的纹理数组:
1 | const char * cubeTexs[] = { |
最后,修改像素着色器:
1 | Texture2D tex[5]; |
效果如下: