利用扩大模型以及摄像机空间法线贴图来实现盔甲的发光。

来源:互联网 发布:长沙网络教育 编辑:程序博客网 时间:2024/04/30 15:45
老大要我看了段MU奇迹的游戏中视频,说里面盔甲的发光效果很炫。
初一看,有点摸不着头脑,不知道是如何做的,于是就坐在显示器前一次又一次的看着模型发呆,后来发现在奇迹中的盔甲有一种水晶般的光,随着法线的变化在变化,而且有一定的体积感。沉思一阵后,想出以下方法:

1,首先按照缺省的渲染方式渲染原模型
2,把需要加高光的模型中的每个顶点沿法线方向拉伸一定的距离
3,把拉伸后的模型的贴图换成一张颜色渐进的贴图
4,将贴图的D3DTSS_TEXCOORDINDEX设置为D3DTSS_TCI_CAMERASPACENORMAL,并且把D3DTSS_TEXTURETRANSFORMFLAGS设置为D3DTTFF_COUNT2
5,设置渲染选项,打开alphablending将src和dest blend都设置为d3dblend_one
6,开始渲染

得到了以下效果:




其中的披风贴图坐标有些问题,而且是针对整个模型进行发光处理的,所以看起来效果并不是只针对盔甲等装备来的。

其原理就是渲染两次,第一次渲染原图,第二次将模型放大了贴上渐变的贴图并设置贴图方式为摄象机空间法线方式,意思就是模型的贴图坐标会根据法线和摄象机的位置变化而变化,在做一些动作的时候就会出现闪闪发光的效果了。