利用扩大模型以及摄像机空间法线贴图来实现盔甲的发光。
来源:互联网 发布:长沙网络教育 编辑:程序博客网 时间: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,开始渲染
得到了以下效果:
其中的披风贴图坐标有些问题,而且是针对整个模型进行发光处理的,所以看起来效果并不是只针对盔甲等装备来的。
其原理就是渲染两次,第一次渲染原图,第二次将模型放大了贴上渐变的贴图并设置贴图方式为摄象机空间法线方式,意思就是模型的贴图坐标会根据法线和摄象机的位置变化而变化,在做一些动作的时候就会出现闪闪发光的效果了。
初一看,有点摸不着头脑,不知道是如何做的,于是就坐在显示器前一次又一次的看着模型发呆,后来发现在奇迹中的盔甲有一种水晶般的光,随着法线的变化在变化,而且有一定的体积感。沉思一阵后,想出以下方法:
1,首先按照缺省的渲染方式渲染原模型
2,把需要加高光的模型中的每个顶点沿法线方向拉伸一定的距离
3,把拉伸后的模型的贴图换成一张颜色渐进的贴图
4,将贴图的D3DTSS_TEXCOORDINDEX设置为D3DTSS_TCI_CAMERASPACENORMAL,并且把D3DTSS_TEXTURETRANSFORMFLAGS设置为D3DTTFF_COUNT2
5,设置渲染选项,打开alphablending将src和dest blend都设置为d3dblend_one
6,开始渲染
得到了以下效果:
其中的披风贴图坐标有些问题,而且是针对整个模型进行发光处理的,所以看起来效果并不是只针对盔甲等装备来的。
其原理就是渲染两次,第一次渲染原图,第二次将模型放大了贴上渐变的贴图并设置贴图方式为摄象机空间法线方式,意思就是模型的贴图坐标会根据法线和摄象机的位置变化而变化,在做一些动作的时候就会出现闪闪发光的效果了。
- 利用扩大模型以及摄像机空间法线贴图来实现盔甲的发光。
- 法线贴图中法线值的坐标空间选择
- 凹凸贴图(Bump Map)实现原理以及与法线贴图(Normal Map)的区别
- 凹凸贴图(Bump Map)实现原理以及与法线贴图(Normal Map)的区别
- 凹凸贴图(Bump Map)实现原理以及与法线贴图(Normal Map)的区别
- 实现法线贴图3D模型渲染的脚本代码(附源码)
- 法线贴图原理,切线空间的概念理解
- 理解Unity法线贴图的切线空间存储方式
- 切线空间法线贴图生成和应用的理解
- 法线贴图的生成
- OpenGL 法线贴图 切线空间 整理
- OpenGL 法线贴图 切线空间 整理
- OpenGL 法线贴图 切线空间 整理
- 凹凸贴图与法线贴图的区别
- 法线贴图光照的演示
- 法线贴图的一点东东
- cocos2d里的法线贴图
- 置换贴图,法线贴图,凹凸贴图的区别
- c++ Primer 3读书笔记(一)
- C++ Primer3 读书笔记(2)
- 我们的年代《音乐天堂》经典回顾
- C++普通重载,虚函数重载,纯虚函数重载
- 克隆帐户终结篇修正版
- 利用扩大模型以及摄像机空间法线贴图来实现盔甲的发光。
- 人工智能技术--Planning
- 系统分析员备考之ISO9000系列基础篇I(ISO9000-2000基础)
- 教你们把hotmail邮箱变成250M
- 系统分析员备考之ISO9000系列基础篇II(质量认证基础)
- 都说要有好习惯,我就没有好习惯。
- 派送gmail种子10粒!
- 解析.Net框架下的XML编程技术
- C#可定制的数据库备份和恢复程序