游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2831|回复: 6

粒子系统分批绘制感觉效率没有明显的提升,这是怎么回

[复制链接]

25

主题

77

帖子

77

积分

注册会员

Rank: 2

积分
77
发表于 2009-11-6 17:01:00 | 显示全部楼层 |阅读模式
编了一个粒子系统的程序,大致情况是这样的。

1000个粒子一次性复制到顶点缓存中,然后一次就绘制好。 FPS/1000的大致范围是60多到70多。
1000个粒子分成4份,每个片段250,CPU,GPU并行工作。   FPS/1000的大致范围是70多到90多。

程序我拷贝了书上的,然后自己又写了另外一种版本,效果感觉都一样。所以程序应该没有问题。而且粒子总数越大,两种方法效率之间的差别就越小。感觉不是我想象的那样。

加一句,我的显卡很垃圾,还是集成的。是不是因为显卡的原因?

42

主题

140

帖子

158

积分

注册会员

Rank: 2

积分
158
发表于 2009-11-7 11:38:00 | 显示全部楼层

Re:粒子系统分批绘制感觉效率没有明显的提升,这是怎么

难道不是一次绘制效率高些么?

201

主题

1437

帖子

1963

积分

金牌会员

Rank: 6Rank: 6

积分
1963
QQ
发表于 2009-11-7 12:27:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

25

主题

77

帖子

77

积分

注册会员

Rank: 2

积分
77
 楼主| 发表于 2009-11-7 14:08:00 | 显示全部楼层

Re:粒子系统分批绘制感觉效率没有明显的提升,这是怎么

饿,我是想看一下效率到底能提升多少啊。总的来说,感觉没有我想象的那么明显。

59

主题

984

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
发表于 2009-11-7 16:53:00 | 显示全部楼层

Re:粒子系统分批绘制感觉效率没有明显的提升,这是怎么

做任何优化前都应该先测试,找出瓶颈
如果你打包vb的时间比DP本身的调用还慢,当然没有性能提升

当粒子很多的时候,瓶颈可能已经在带宽,填充率等其他因素了
再对cpu优化当然没有意义

3

主题

67

帖子

111

积分

注册会员

Rank: 2

积分
111
发表于 2009-11-9 17:09:00 | 显示全部楼层

Re:粒子系统分批绘制感觉效率没有明显的提升,这是怎么

cpu计算粒子的话,每个粒子的遍历,lock缓冲区,往里面拷数据都避免不了,再怎么想办法优化也意义不大……
想效率高的话,把粒子计算放在gpu里,用shader去算,跟cpu计算有不一样的地方,gpu计算粒子,粒子是不能记录状态的,如果粒子发射器移动,你会发现粒子也跟着发射器动,粒子拖尾效果就很难弄出来。
基本上是两种有用到。

2

主题

141

帖子

141

积分

注册会员

Rank: 2

积分
141
发表于 2009-11-11 11:19:00 | 显示全部楼层

Re:粒子系统分批绘制感觉效率没有明显的提升,这是怎么

粒子数量大了 肯定是在一帧里Lock一部分 填写一部分 渲染一部分的快
我的引擎里能轻松支持并发上万的粒子, 无他, 类似MS的PointSprite例子自己写的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-18 05:29

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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