资 源 简 介
现在市面上流行的3D游戏画面越来越炫目,不过也有一些为了营造一种特殊的效果而使用了卡通渲染技术,比如PC游戏中的《杀手XIII》,《忍者神龟》;PS2游戏中的《真红之泪》,《犬夜叉》等等。这些游戏的画面看上去很像漫画,感觉比较有趣。下面就介绍一种简单的实现方法。
所谓用卡通渲染技术绘制的三维物体一般都有两个明显的特征,一个特征是物体表面覆盖着大块的单调颜色,而且光影变化比较剧烈;另一个特征是物体拥有粗重的边缘效果。如果能自己控制光照和阴影,就可以达到目的。而DirectX 9.0 中的顶点渲染(Vertex Shaders)提供了这样一个途径,使我们可以实现自己的想法。
顶点渲染与以前的T&L在渲染流程中处于二选一的地位,一段代码最多只能有128条指令,而且不能有循环,判断和跳转指令,全是线性执行指令。每次只能有一个Shader程序是激活的,Vertex Shaders让我们可以实时地控制模型的空间变换,光照处理以及像素渲染。
那么现在先来解决第一个问题。我们可以用光线的亮度值作为物体的纹理坐标,这就产生一种带状纹理的效果,然后再调整相应的颜色即可。