随笔分类 -  开发随笔

Material Editor
摘要:最早接触的材质管理是quake中的shader脚本。引擎可以针对脚本中设置的渲染状态对处理一个指定的pass,类似于现在的FX结构,极大地增加了渲染的灵活性。虽然现在仍有许多引擎沿用着此方法,但随着游戏产业的流水线化的发展,脚本显然跟不上变化的需求。因为我们不可能为每个游戏写上几十个脚本,而且最可怕的是你写出来的效果并不是美工想要的。当然,我们不可能要求美工去学习ASM或HLSL。理想的方案是用一... 阅读全文
posted @ 2007-01-31 23:07 chaz 阅读(1329) 评论(5) 推荐(0)
SHPRT的一点体会
摘要:放假了,来更新一下 :)PRT在给我们带来实时全局光照的同时也给我们带来了精度和数据量的问题。通过DXSDK的例子不难发现,要让阴影有平滑的过度需要大量的顶点,这是利用了显卡帮我们做其中的颜色插值。但实际上对于稍复杂的场景,大量的顶点就意味着no-realtime。虽然逐象素PRT能缓解这方面的问题(nicky的文章有详细的描述),但庞大的数据量始终是令人头痛的。各种压缩的方法有待挖掘。直接光照:... 阅读全文
posted @ 2006-10-02 13:39 chaz 阅读(1426) 评论(4) 推荐(0)
Maya中多通道信息的导出
摘要:在MAYA中要获得通道信息,必须先连接到shader node上,也就是编辑环境中的材质球这个概念。然后通过findPlug这个接口去访问color这个属性,一般这里放的是diffuse map,具体可以参考SDK里的fileFindTextures例子。但是很奇怪的是,SDK里的例子没有介绍如何访问其他通道的方法,而且一些开源的插件也仅仅导出一层图。那么,先看一下diffuse map导出的过程... 阅读全文
posted @ 2006-08-11 23:59 chaz 阅读(1456) 评论(0) 推荐(0)
LIST or STRIP
摘要:List? Strip? 想都不用想,肯定是strip更有效率咯最优的VB和IB,传输速度上是最快的,而且还有相当的cache命中率但是试验下来却发现两者不分伯仲……算法看了几遍都没发现问题 现在才意识到又是关系到硬件,OMG!至少在A卡上,优化过的list和strip是执行效率是差不多的NV则更偏向strip,具体还需要测试一下……恩,在论坛上找到... 阅读全文
posted @ 2006-02-04 14:09 chaz 阅读(522) 评论(0) 推荐(0)
shadow map
摘要:做shadow map最方便的方法当然是通过硬件的支持,直接获得DST。但很不幸,只有NV的GF3+支持。这大大提升了渲染的效率,看了网上的一些相应的文章,别人在做3DMARK测试时往往都是把使用DST关闭的。这样测试A卡和N卡才比较公平,不然N卡的“优势”就太明显了。庆幸的是,ATI终于在最近的SDK里放了一个hw shadow map的例子(9700 pro+)^ ^我... 阅读全文
posted @ 2005-10-16 14:49 chaz 阅读(1824) 评论(0) 推荐(0)
Skinned Mesh
摘要:好久没有更新了,不过实在是没有新的作品 很少有时间写自己的东西了,最近也就重建了framework,正在加入D3D的部分 skinnedmesh已经写得差不多了,现在在看stencil shadow z-pass:分别渲染shadow volume的正面和反面,视线经过正面depth test时stensil +1,经过反面depth test则-1。 最后得到stensil值不为0,说明该区域... 阅读全文
posted @ 2005-02-24 21:33 chaz 阅读(1533) 评论(0) 推荐(0)
bump mapping & parallax mapping (update)
摘要:加了shelf-shadow 阅读全文
posted @ 2005-01-07 13:45 chaz 阅读(4763) 评论(12) 推荐(0)
water reflection
摘要:模拟动态水的算法有很多种,比如:perlin noise, FFT, NSE, sine wave等等。为了使水更逼真,还应该实现其最基本的属性,那就是反射和折射了。 讲到环境映射可能就会想到cube map,当然cube map可以用来反射周围环境,但是它的使用对象只局限于物体于环境来说是很小的基础上的。若是对局部近距离物体进行反射时,会有很明显的差错。因此就需要实时获取周围环境并渲染到相... 阅读全文
posted @ 2005-01-01 21:31 chaz 阅读(2113) 评论(4) 推荐(0)