游戏开发论坛

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: 轩辕崇正

对于同一个纹理,把所有顶点集中起来渲染能提升多少效率

[复制链接]

67

主题

390

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
 楼主| 发表于 2011-5-19 19:04:00 | 显示全部楼层

Re: Re:对于同一个纹理,把所有顶点集中起来渲染能提升多

happyking: Re:对于同一个纹理,把所有顶点集中起来渲染能提升多少效率?有没必要?

没有实用价值啊.
一般我们是设置一个材质,再画一个矩形.
你一次性画出许多的矩形,那都是用相同的材质吧.


3d肯定只需要画一次纹理,一个人物模型也差不多就一张纹理
2D图片则不同,比如一个按钮,是把所有按钮的顶点集合到一起,还是分开渲染,这就是个问题。

18

主题

116

帖子

218

积分

中级会员

Rank: 3Rank: 3

积分
218
发表于 2011-5-20 17:06:00 | 显示全部楼层

Re:对于同一个纹理,把所有顶点集中起来渲染能提升多少

不论从CPU端或是GPU端考虑,都应该是Batch的做法效率更高一些吧。
轩辕兄单纯是在对比两种极端情况下的效率吗?个人感觉老兄提到的这种单纹理复用的情况,貌似不太多见吧?(当然,我是指顶点数量差距特别大的时候。老兄说的按钮绘制符合这种情况,但如果只绘制几个或者十几个的话,差距应该不会太大。)
而一旦纹理状态发生变化,再继续讨论这个问题也就没有多少实际意义了。

67

主题

390

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
 楼主| 发表于 2011-5-20 17:26:00 | 显示全部楼层

Re: Re:对于同一个纹理,把所有顶点集中起来渲染能提升多

思月行云: Re:对于同一个纹理,把所有顶点集中起来渲染能提升多少效率?有没必要?

不论从CPU端或是GPU端考虑,都应该是Batch的做法效率更高一些吧。
轩辕兄单纯是在对比两种极端情况下的效率...


因为纹理渲染的方式必须做到统一,即不能有一部分纹理是顶点批量渲染,而有一部分却可以多次渲染,因为这将无法处理遮挡关系。
所以,比较一下,还是统一做批量顶点渲染好一些。我现在给所有的纹理都配了一个顶点链表,每个纹理渲染的时候实际上只是增加顶点,最后集中渲染出来。

2D游戏里,纹理复用的地方很多,游戏地图上随便刷个20个怪,就需要相当数量的绘制了,看来批量渲染的方式已经不用怀疑了。

11

主题

1238

帖子

1782

积分

金牌会员

Rank: 6Rank: 6

积分
1782
发表于 2011-5-20 18:59:00 | 显示全部楼层

Re:对于同一个纹理,把所有顶点集中起来渲染能提升多少

楼主总是想把所有东西都想好了再动手,很难哟~~

67

主题

390

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
 楼主| 发表于 2011-5-20 22:44:00 | 显示全部楼层

Re: Re:对于同一个纹理,把所有顶点集中起来渲染能提升多

要为所有顶点提供一份内存空间也算是一个开销了..

2

主题

7

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2011-5-22 03:15:00 | 显示全部楼层

Re:对于同一个纹理,把所有顶点集中起来渲染能提升多少

额,你这样做的话, DrawPrimitiveUP 用什么绘制方法呢 ?
如果用 D3DPT_TRIANGLELIST , 一个矩形需要额外开销两个顶点的内存消耗
用 D3DPT_TRIANGLESTRIP , D3DPT_TRIANGLEFAN , 连续的绘制结果是错的
如果用 LPDIRECT3DVERTEXBUFFER , 那么还得提供 INDEX ...

11

主题

1238

帖子

1782

积分

金牌会员

Rank: 6Rank: 6

积分
1782
发表于 2011-5-22 10:15:00 | 显示全部楼层

Re:对于同一个纹理,把所有顶点集中起来渲染能提升多少

纠结啊~~无比的纠结啊~~还做什么劳什子游戏干嘛~~玩游戏吧~~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-8 07:00

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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