游戏开发论坛

 找回密码
 立即注册
搜索
查看: 8428|回复: 22

请教:各位用D3D的同志有发现一个问题吗?.....

[复制链接]

1

主题

7

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2004-10-11 20:08:00 | 显示全部楼层 |阅读模式
我初学D3D 在渲染物体的时候发现 无论多简单的物体 只要多了就会很慢
EXAMPLE :
1 - 我有100个BOX 在一个屏幕显示 一共600个面吧
2 - 我弄一个 600 面的大箱子
但他们显示的速度天差地别呀! 一个 120FPS 一个20FPS! 我郁闷了…… -__-!

我估计是 DRAWINDEXPRIMITIVE 系列的函数的问题吧

不知道各位在渲染 很多 独立的物体的时候是怎么做的?
因为每个物体有各自的空间位置和不同的材质贴图 所以不能合并到一个STREAM里……
请各位指教! [em13]

1

主题

7

帖子

7

积分

新手上路

Rank: 1

积分
7
 楼主| 发表于 2004-10-11 20:28:00 | 显示全部楼层

Re: 请教:各位用D3D的同志有发现一个问题吗?.....

顶起来~~

18

主题

573

帖子

573

积分

高级会员

Rank: 4

积分
573
发表于 2004-10-11 23:01:00 | 显示全部楼层

Re:请教:各位用D3D的同志有发现一个问题吗?.....

你想一下一个有600个面的箱子有多少个indexbuffer元素,索引时还要浪费时间呀!但是,6个面的箱子的indexbuffer就很小,所以渲染的快些!当然,以上只是我的猜测!请大家指正!

6

主题

444

帖子

457

积分

中级会员

Rank: 3Rank: 3

积分
457
发表于 2004-10-11 23:23:00 | 显示全部楼层

Re: Re:请教:各位用D3D的同志有发现一个问题吗?.....

william9527: Re:请教:各位用D3D的同志有发现一个问题吗?.....

你想一下一个有600个面的箱子有多少个indexbuffer元素,索引时还要浪费时间呀!但是,6个面的箱子的indexbuffer就很小,所以渲染的快些!当然,以上只是我的猜测!请大家指正!

显然应该是600面的箱子要快啊,一次DrawIndexPrimative的triangles要不低于1000才能有比较好的效率。

32

主题

377

帖子

378

积分

中级会员

Rank: 3Rank: 3

积分
378
发表于 2004-10-12 01:21:00 | 显示全部楼层

Re:请教:各位用D3D的同志有发现一个问题吗?.....

我弄一个80×80的矩形都觉得慢……

1

主题

7

帖子

7

积分

新手上路

Rank: 1

积分
7
 楼主| 发表于 2004-10-12 02:07:00 | 显示全部楼层

Re: 请教:各位用D3D的同志有发现一个问题吗?.....

各位觉得主要是 DRAWINDEXPRIMITVE 消耗的是时间吗?
我本来以为是设置贴图材质 或者 VERTEX SHADER 消耗的时间
不过全部去掉之后还是一样慢…… [em10]

各位平时对付这样的问题都有什么办法吗?
不要吝惜笔墨~~ 在下洗耳恭听~  [em16]

1

主题

7

帖子

7

积分

新手上路

Rank: 1

积分
7
 楼主| 发表于 2004-10-12 02:09:00 | 显示全部楼层

Re: 请教:各位用D3D的同志有发现一个问题吗?.....

还有这个结果是
100个 6面 的箱子 速度是 20 FPS
1个 600面 的箱子速度是 120 FPS

[em10]
差距很大吧~ 我都觉得太不可思议了!

29

主题

421

帖子

436

积分

中级会员

Rank: 3Rank: 3

积分
436
发表于 2004-10-12 02:40:00 | 显示全部楼层

Re:请教:各位用D3D的同志有发现一个问题吗?.....

正常现象,你需要阅读《3D图形渲染通道负载优化的几种方法》一文,就知道为什么了,去google搜索吧!

http://dev.csdn.net/develop/article/19/19841.shtm

6

主题

444

帖子

457

积分

中级会员

Rank: 3Rank: 3

积分
457
发表于 2004-10-12 08:41:00 | 显示全部楼层

Re:请教:各位用D3D的同志有发现一个问题吗?.....

解决办法无非是按照一定的规则分类(比如shader,纹理等)。然后批渲染。
对于大量使用相同模型,相同纹理(位置,大小,颜色等可以不同)的物体可以考虑Geometry Instancing

20

主题

473

帖子

502

积分

高级会员

Rank: 4

积分
502
发表于 2004-10-12 09:47:00 | 显示全部楼层

Re:请教:各位用D3D的同志有发现一个问题吗?.....

son of batch~

2004年GPU优化的第一条都是尽量减少batch,在D3D里也就是减少DP的次数
因为DP会在CPU,和DRIVER两处都造成瓶颈,尽量把一个MATERIAL的东西放在一起画
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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