我要发帖 回复

中级会员

8

主题

271

积分

0

专家分

:

私信
发表时间 : 2010-1-14 21:45:31 | 浏览 : 1921    评论 : 10
问题:在基于Vega Prime的程序中,场景中含有大量重复的物体(比如一个物体5万个面片,场景中有100个这样的物体,物体结构完全一样,只是它们的位置不同),如何提高该场景的绘制速度?

当然,可以尽可能的简化单个物体三角面片,但除此之外还有没有其它方法呢? 比如可不可以针对GPU做一些编程? 请各位大侠指点一二。

最近VR访客

tan_dunming 评论于2010-1-15 08:22:08
5万个面片,场景中有100个这样的物体

根据当前显卡的性能 必须都模型做简化 此外还要考虑LOD 显示列表等方法
追求卓越
astrider 评论于2010-1-15 14:47:56
当然,可以对模型做简化,还可考虑LOD等其它方法,我的意思是除了这些手段,还有没有可能基于GPU进行一些编程,提高绘制效率,因为从理论上讲,这些物体毕竟仅有位置不同。
astrider 评论于2010-1-15 14:57:52
因为我现在对GPU不太了解,如果不考虑其它方法,是否可以从GPU这方面做一些工作呢?
astrider 评论于2010-1-16 09:01:26
一个不知道能否实现的想法:在ACF文件中只加入一个物体的flt文件,然后在GPU中进行拷贝和设置其它重复部件的位置(其它部件的位置已知),不知道这种思路是否可行?
tan_dunming 评论于2010-1-16 09:21:36
本帖最后由 tan_dunming 于 2010-1-16 09:23 AM 编辑

显示列表就是存在于显存 对大量重复的物体(多个的物体,几何模型完全一样,只是它们的位置不同)
追求卓越
astrider 评论于2010-1-16 11:10:22
利用显示列表可以提高这种情况下的系统帧率吗?显示列表是什么概念?tan_dunming兄能否多说几句?也好让我有个努力方向。
obuil 评论于2010-1-16 11:19:51
vp中有 物体克隆的方法   setcopysource
可能是这样拼写的

你看看

在内存中只有一份模型拷贝  但是有很多位置信息
astrider 评论于2010-1-17 11:36:05
明天试试看
astrider 评论于2010-1-19 22:24:26
我用obuil的方法在ACF文件里试了一下,感觉不行,具体方法如下 :
1.建立了两个flt文件,1.flt和10.flt,1.flt含有一个5万面片的球体,10.flt含有10个5万面片的球体;
2.建立两个acf文件,1.acf和10.acf,1.acf中导入1.flt,然后以它为源用setcopysource的方式新建了9个对象,10.acf则直接导入10.flt;
3.运行1.acf和10.acf,两者帧率几乎完全相同,所以我认为setcopysource的方式不能提高帧率。
astrider 评论于2010-1-21 20:54:22
期待高手们踊跃发言!

手机版|VR开发网 ( 津ICP备18009691号 ) 统计 网安备12019202000257

GMT+8, 2020-9-29 12:25 PM

返回顶部