展开异次空间

:: 相对折叠空间/讨论游戏/软件设计.技术 ::

 

D3D instance 技术概述与实践

    D3D渲染最大的瓶颈在于 DP/DIP,每次调用都会让CPU等待很久,白白浪费大量的资源。DX9C出来后多了个技术叫INSTANCE, 实际上原理很简单:
1. 构造INSTANCE需要的顶点申明,一般stream0记录物体数据,stream1记录不同物体间的变换
2. 把顶点数据 索引数据构造传入设备(使用STREAM0)
3. 将每个对象变换传入(使用STREAM1)
4. 使用D3D中setstreamxxxFreq函数设置顶点数据和实例数据
5. 渲染(自动渲染N个物体出来)
非常的简单。。。

实际使用的时候就是需要动态构造不同变换(stream1)的数据, 每次都lock也会有开销。
不过我们实际测试使用INSTANCE的效率大概会比不使用INSTACE渲染物体高 0.3~0.5倍左右
在大量植被 装饰物品 子弹之类(相同贴图)的时候还是可以提高相当多的效率。

现在只增加了不支持骨骼动画的INSTANCE到引擎中,还需要完善可以支持骨骼动画的INSTANCE。

posted on 2009-05-06 23:18 Updraft Studio 阅读(558) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。

导航

统计

公告

激情,努力

常用链接

留言簿(9)

随笔档案(53)

文章档案(25)

@Updraft Studio@

搜索

最新评论

阅读排行榜

评论排行榜

Freelance Jobs