游戏开发论坛

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

关于batch DIP调用的问题

[复制链接]

1

主题

18

帖子

18

积分

新手上路

Rank: 1

积分
18
发表于 2008-12-26 12:00:00 | 显示全部楼层 |阅读模式
  我现在的项目中主要使用粒子系统来表现各种特效。每一个粒子系统的实例都作为一个独立渲染单元,有自己的VB、IB、纹理、世界矩阵等。我的每个粒子系统通常只有不超过一百个的三角形,但是每渲染一个这样的粒子系统却都要使用一次DrawIndexedPrimitives调用,造成特效数目很大时每帧DIP超过2K,严重影响性能。

  于是想把同一种特效的不同实例batch到一起。因为是同一种特效,它们使用的纹理是一样的,VB和IB也可以合并到一起,但它们各自使用的世界矩阵却无法统一……我现在卡在这个问题上,无法实现DIP的批处理。

  我想到的一种解决方案是手动将各自的世界矩阵应用于每个粒子系统后再填充VB,而把提交给渲染管线的世界矩阵设为identity。但是这么做会把本应有GPU承担的坐标变换计算转移给CPU,不知道会对整体性能有多大影响?

  希望有遇到类似情况的朋友帮忙解答,谢谢!

59

主题

984

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
发表于 2008-12-26 16:42:00 | 显示全部楼层

Re:关于batch DIP调用的问题

用matrix数组,每个顶点添加一个索引值

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
发表于 2008-12-27 11:41:00 | 显示全部楼层

Re:关于batch DIP调用的问题

关于DIP
我想了解一下大家在实际渲染物体的时候有没有按材质合成很多不同的模型的顶点然后一次性送入到渲染管线,以减少渲染次数啊,这涉及到多模型数据的实时拆分与合并,很是麻烦

59

主题

984

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
发表于 2008-12-27 12:38:00 | 显示全部楼层

Re:关于batch DIP调用的问题

其实最近2几年的游戏DIP数量已经非常高了
最新的极品飞车,波斯王子,古墓特效全开DIP大概在600~2k之间
大部都没有做实时顶点打包
而是按材质和纹理做了比较好的sort(PIX可真是个好东西啊^0^)

DIP的瓶颈本来就在CPU端
实时的顶点打包占用的CPU资源其实也不小,而且还可能引起CPU,GPU的同步

我现在设计的引擎只是在游戏打包时,把相同材质的小模型(300面以下)打包成一个大vb,但每个模型还是分开渲染的。
只对特定系统(比如粒子)和部分特定场景中的静态模型做实时打包优化。

对DX10来说,新的API已经提供了一些非常有用的特性来减少DIP数量

1

主题

18

帖子

18

积分

新手上路

Rank: 1

积分
18
 楼主| 发表于 2008-12-29 11:28:00 | 显示全部楼层

Re: 关于batch DIP调用的问题

我们的网游强调同屏人数尽可能多,如果不在DIP上做文章极端情况下帧数会很惨……至于DX10,强迫玩家使用Vista就是自掘坟墓啊……

14

主题

345

帖子

376

积分

中级会员

Rank: 3Rank: 3

积分
376
QQ
发表于 2008-12-29 13:22:00 | 显示全部楼层

Re:关于batch DIP调用的问题

打包成一个大VB后,Lock(),Unlock()的消耗也是一个问题。。。

59

主题

984

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
发表于 2008-12-29 16:13:00 | 显示全部楼层

Re: Re: 关于batch DIP调用的问题

睿星: Re: 关于batch DIP调用的问题

我们的网游强调同屏人数尽可能多,如果不在DIP上做文章极端情况下帧数会很惨……至于DX10,强迫玩家使用Vista就是自掘坟墓啊……


所有人都希望自己的程序系统要求今可能低,显示的物体尽可能多
先做完测试找到瓶颈再来优化吧,频繁lock有可能比多个DIP还慢
对骨骼动画来说,除非硬件支持hardware instance,其他方法就算可以减少DIP,打包的过程也很慢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-20 15:35

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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