摘要: 其基本原理很多例子上有讲到。下面给出一些比较合适的链接 http://developer.nvidia.com/object/cube_map_ogl_tutorial.html NVIDIA官网上的 Opengl Cube texture mapping http://www.zwqxin.com/archives/shaderglsl/review-cube-mapping-shader.html 某位兄弟的个人BLOG。 以上两位都适合OPENGL控。 本文给出一个DX HLSL例子。并解释了反射方向计算的数学模型。希望能给大家一定的帮助。 CUBE映射主要分为两步: 一、在VS中根据法线和观察位置计算反射方向,并且得到观察空间中的反射方向。 反射方向有两种计算方法。 1、在世界坐标系空间中计算,然后再将计算到的反射方向转换到观察空间。 这要求我们转入观察位置。 2、在观察空间中进行计算,此时观察位置已经为0,0,0,于是不需要传入观察位置,并且得到的向量即为所求。本文的代码采用此种方式。 二、用这个反射方向在PS中对CUBE纹理进行采样。 阅读全文
posted @ 2011-01-07 13:36 麒麟子MrKylin 阅读(2676) 评论(5) 推荐(1) 编辑
摘要: 一、投影纹理进行模型贴花时,主要是进行三角面剔除,使在渲染贴花时,提交最少的三角面。 二、在贴花PASS中,需要将全局混合开启,并设置相应的SRCBLEND(SRC_ALPHA)和DESTBLEND(DEST_ALPHA)值。括号内为我用的值。 当然,如果你不想让贴花与场景(模型)混合,则可以不开启。 三、请注意纹理的寻址方式以及纹理边缘的ALPHA情况。 若纹理边缘ALPHA不为0,则可以手工进行裁剪。 四、本文仅是采用了固定的投影方向和SHADER内部定义变量的方式来进行贴花渲染。 并且,并未进行模型三角面剔除。所以若要使用,则需要注意第一个问题。 五、本文灵感来源于此贴:http://forums.create.msdn.com/forums/p/34339/198791.aspx 六、支持邮件交流:BoYueGame#Gmail#com 阅读全文
posted @ 2011-01-07 00:38 麒麟子MrKylin 阅读(3370) 评论(2) 推荐(1) 编辑