游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1491|回复: 2

对模型渲染的一些思考,请职教

[复制链接]

35

主题

141

帖子

157

积分

注册会员

Rank: 2

积分
157
发表于 2009-7-13 16:39:00 | 显示全部楼层 |阅读模式
   1:   现在对模型的渲染还好多都是以三角型级别提交显卡的,原因是显卡可能不支持,但是这样似乎没有那么有效率,我的想法是先对模型含带的信息进行优化,把它改成是索引三角网格,这样可以提高效率,但是不知道大家是怎么看的,这样做有意义吗,谢谢
  


   2:   在进行动画模型的渲染的时候,一般是把它分为每个SUBSET来进行渲染的,当他们在渲染的时候是把所有的顶点给准备好了之后,一起送到渲染管线里进行渲染,这样情况下CPU和显卡没有协调工作,效率不高,我的想法是和做粒子系统一样,每一个SUBSET作为一个单元,它的顶点准备好了后就开始渲染,直到所有的SUBSET渲染完,这样效率要高些 。     我的问题是这样做有意义吗,因为要浪费一些空间来储存 LPDIRECT3DVERTEXBUFFER9 ,而且会增大蒙些函数的代用次数,再且模型中的SUBSET可能不象粒子那样有很多的点,这种优化是否有用,请教有经验的前辈,谢谢了

0

主题

398

帖子

577

积分

高级会员

Rank: 4

积分
577
发表于 2009-7-13 18:11:00 | 显示全部楼层

Re:对模型渲染的一些思考,请职教

1、事实上,3DMax导出的.X文件很多就是使用“顶点”+“顶点索引”这种形式的数据的。微软早已经在某写方面尽可能地帮你想到且帮你做到了。或许你是别的意思?
2、你说的理论上可行,也许某些游戏的引擎就是这样做的。没有写过动画相关的代码,不是很清楚。

2

主题

123

帖子

123

积分

注册会员

Rank: 2

积分
123
发表于 2009-7-13 19:58:00 | 显示全部楼层

Re:对模型渲染的一些思考,请职教

1. 在游戏领域内,现在的大多数模型格式都是索引三角面的,索引方式的效率要高出非索引方式许多,而且100%有硬件支持。非索引三角面是不推荐使用的。

2. 分subset的原因是由于纹理、材质等渲染参数的不同而不得不分。DrawIndexedPrimitive的调用次数对性能影响很大,尤其是shader、纹理切换等会导致很大的开销,这些开销都会延迟累加到DrawIndexedPrimitive上。所以,分subset的一个重要作用是允许引擎按shader、纹理排序,减少切换次数。另外,不要忘了静态顶点buffer的性能优于动态的buffer。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-19 20:07

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表