01 2011 档案

摘要:The behavior of shader constants has changed between Direct3D 8 and Direct3D 9. For Direct3D 9, constants set with defx assign values to the shader constant space. The lifetime of a constant declared with defx is confined to the execution of that shader only. Conversely, constants set using the APIs SetXXXShaderConstantX initialize constants in global space. Constants in global space are not copied to local space (visible to the shader) until SetxxxShaderConstants is called. For Direct3D 8, 阅读全文
posted @ 2011-01-28 11:26 麒麟子MrKylin 阅读(352) 评论(0) 推荐(0) 编辑
摘要:为一个任意网格模型计算其切线空间的基本向量(即切线空间的T B N三个向量) Modern bump mapping (also known as normal mapping) requires that tangent plane basis vectors be calculated for each vertex in a mesh. This article presents the theory behind the computation of per-vertex tangent spaces for an arbitrary triangle mesh and provides source code that implements the proper mathematics. 现在的bump mapping(或者normal mapping)需要每个顶点的切面的基本向量。这篇文章描述了逐顶点计算任意三角模型的切线空间原理,并且提供了实现这个数学理论的源代码。 阅读全文
posted @ 2011-01-25 20:36 麒麟子MrKylin 阅读(1017) 评论(0) 推荐(1) 编辑
摘要:一直没玩台服,国服也停留在72级。 成都的天气一天天严峻,更是不想动了,于是用NVPerfHUD挂了下WOW,看看它到底啥样。用NVPerfHUD挂程序需要被挂的程序自身支持,但是网上有一个老兄写的一个NVPerfHUD Any程序可以帮你完成这个功能。对大多数D9的都有效。除非本身做了破解。给大家这个链接,自己去解决个人问题。http://www.thecodeway.com/blog/?p=433完美时空的引擎很不错,依然坚挺地用着D8。其实挺想挂来看看的,可惜市面上主流的工具都不支持D8,只有D9以及以后的版本。WOW在CTM的版本中升级了它的渲染引擎,光从水面和火焰就看得出来。 但WO 阅读全文
posted @ 2011-01-23 21:54 麒麟子MrKylin 阅读(2333) 评论(10) 推荐(7) 编辑
摘要:由下面几个文章引发的欲望,让我自己也试着实现了一个基于2D的骨骼动画。 一篇讲述骨骼动画数学运算的文章 http://www.cnblogs.com/neoragex2002/archive/2007/09/13/891945.html 两篇讲述骨骼动画原理和实现的文章 一篇也是用的2D,老外的那篇用的是DX http://www.cppblog.com/Leaf/archive/2010/12/31/137818.html 空明流转用C#写的一个,当然也可以下载源码。只是在他的BLOG中,他未解释任何东西。并且我也未曾下载任何源码,不知是否源码中有文档 http://www.cppblog.com/lingjingqiu/archive/2008/06/07/52463.aspx 很不爽的是,许多例子或原理讲的时候没有带旋转。 其实那才是重头戏。 空明流转的貌似有旋转,可惜C#我也看不懂。还不如自己来一个。 为了迎合广大人民群众的取向,先上图和上码。 源码下载地址 (所 阅读全文
posted @ 2011-01-14 00:25 麒麟子MrKylin 阅读(2928) 评论(0) 推荐(1) 编辑
摘要:我不是Shader帝,虽然知道Shader怎么写,但一直没仔细研究过。最近蛋疼至极,研究了下RenderMonkey,于是抽着几个看着比较有趣的效果做了一下。先前的模型贴花http://www.cppblog.com/Leaf/archive/2011/01/07/138093.html和CUBE MAP http://www.cppblog.com/Leaf/archive/2011/01/07/138106.html就是此次蛋疼期的产物之一。还是先围观,上图再说 本次要蛋疼的是折射和反射。反射和折射通常用于增加场景真实感。由于其代价昂贵(通常是要将场景多渲染两次为代价)。因此在实际的游戏 阅读全文
posted @ 2011-01-08 22:33 麒麟子MrKylin 阅读(2042) 评论(1) 推荐(1) 编辑
摘要:其基本原理很多例子上有讲到。下面给出一些比较合适的链接 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 阅读(2697) 评论(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 阅读(3426) 评论(2) 推荐(1) 编辑

点击右上角即可分享
微信分享提示