水平:高级图形学
理解难度:☆☆☆
数学难度:☆☆☆
实现难度:☆☆☆
百度空间也弄成微博了,看到微博首页就眼晕,作为仓库没法带呆了。开始往csdn搬运,只是csdn的页面真的很单调啊
面试美国SONY的Graphics QA被拒,因为OpenGL做的项目太弱了,明明requirement要求的是Direct3D/OpenGL的说,看来现在各种smart phone上的OpenGL ES是大势所趋啊;天上掉馅饼的事情果然还是很难发生在烂校的junior level的毕业生身上。
最近被圣斗士星矢战记迷住了,不仅重温了下激情燃烧的年代,而且,真的做的太炫了!!!!每个出招、躲避的动作都令人喷鼻血,那灵活的身形和绚丽的招数真的完整的再现了俺心目中的黄金十二宫的那几位帅哥——穆、沙加、米罗、卡妙。再配合搞基的视频解说和经典剧情,真的是基情四射啊。呵呵。
俺的小宇宙又燃烧鸟
开始crack它的文件格式,花了俺一个月的时间,被Maxscript诡异的骨骼坐标系和文件的各种坑爹的数据搞得死去活来,终于基本把骨骼、蒙皮和动画搞定了;但是又被黄金圣衣的渲染难住了;圣衣的环境反射是基于一张非常简单的几条竖线的贴图,没有任何环境反射贴图,但是效果却很绚丽而多变。仔细观察了一下黄金圣斗士的众帅哥像,感觉是用了某种涂抹算法;描边的方法也非常特别,描边是基于一张2048x2048的贴图,但是试了下,普通的方法不可能做出那么清晰的边缘线的。郁闷中,决定先转战OpenGL的项目和场景渲染了
不过却从中学习到了漆质感的渲染方法,可以用于汽车高光涂料的渲染。以前一直对那种高亮表面颇为困惑,因为NDotL,或者即便是light map的效果都是乌突突的,一直很疑惑那种金属高亮的感觉来自何方,现在终于弄明白了。收获颇多。
第一反应是想到了各向异性(Anisotropy),因为有沿着轮廓和亮的高亮区,而BlinnPhong的高亮都是圆形的。各项异性的概念涉及到BRDF,颇为复杂。但是总体来说就是3种实现方法,一种是基于经验公式的,可以参照基于CPU的Bank BRDF经验模型,实现各向异性光照效果!一种是基于Bumpmap采样的,
Anisotropic Highlight Shader 最后一种是基于材质采样的,魔兽世界里的盾啊什么的都用后面这种方法,是Nvdia提供的经典方法,可参考Anisotropic Lighting。最后试了一下基于采样的方法,下面是效果,侧面和背光面比较有电镀玩具的质感,但是正面颜色比较单调,而且有一个非常大的毛病,就是当视线和光源方向一致的时候,那个高光面啊,绝对惨不忍睹。
From ShaderX2 –Shader Programming Tips and Tricks with DirectX 9
Layered Car Paint Shader
结果一击命中,该方法提供了带闪光颗粒的漆质表面和3中颜色混合的材质,效果还不错。但是漆质有很重的厚度感,不适合渲染金属表面。