游戏开发论坛

 找回密码
 立即注册
搜索
查看: 8894|回复: 24

想到了一种对小植物渲染的终极优化方案, 大家看看有什

[复制链接]

32

主题

1259

帖子

1351

积分

金牌会员

Rank: 6Rank: 6

积分
1351
发表于 2007-6-23 17:32:00 | 显示全部楼层 |阅读模式
原文地址:
http://www.azure.com.cn/article.asp?id=352


如有转载, 请注明:
http://www.azure.com.cn/

也许这种方法有人使用过, 只是我孤陋寡闻了, 没有听说过.
希望大家不要见笑哦!!

今天午睡, 一直想着现在游戏的效率不高, 半睡半醒间, 突然想到了一种小植物的制作方案, 可以将大量小植物的材质都统一起来, 这样的话就算是不同样式的草都可以打包成一个 StaticGeometry , StaticGeometry 的作用就是将相同材质的物体打成一组, 用一个DP渲染出来.

众所周知, 现在图形显示卡, 对于多边形数已经不是瓶颈了, 一次渲染100W个顶点的模型, 和分10W次渲染10W个10个顶点的模型, 前者的效率要远远高于后者, 前者的DP = 1, 而后者的DP = 100000 (DP就是D3D一个API, DrawPrimitives() 的缩写) , 可是对于小植物的渲染来说, 太不幸的它属于后面一种情况, 模型的顶点少, 但量确非常大, 所以根据当代显卡的构架, 为了更高的渲染效率, 我们必须把DP降下来.  可是有一种情况是不可能把两个模型放到一个DP来一起渲染的, 那就是两个物体的材质不同时候. 但是小植物每种的纹理都不相同, 这就意味着他们的材质都不相同, 也意味着 StaticGeometry 对他们根本不起效果.

但我想到一种方法, 纹理集的方法, 可以将所有小植物的材质统一.
其实小植物的材质有大部分内容都是相同的, 同样的 alpha_reject 值, 同样的 diffuse, ambient 值. 唯一不同就是那个纹理 TextureStateUnit, 他们指向不同的纹理图片. 如果能把纹理图片统一起来, 不就OK了吗?

这样我想到, 让所有小植物共用一张纹理图集, 见下图:



然后让美术, 制作16种不同的草模型(十字平面交叉就行), 他们使用不同的UV坐标, 去指向图集中自己的纹理部分.
这样以来, 16种不同的植物都是一种材质了. 他们都可以在一个batch中渲染, 这样不是很好吗?

以上就是我所提出的方案. 不知道有没有什么问题,
如果存在什么重大问题. 欢迎大家指正.

www.azure.com.cn

10

主题

84

帖子

84

积分

注册会员

Rank: 2

积分
84
发表于 2007-6-23 17:39:00 | 显示全部楼层

Re:想到了一种对小植物渲染的终极优化方案, 大家看看有

~

10

主题

219

帖子

236

积分

中级会员

Rank: 3Rank: 3

积分
236
QQ
发表于 2007-6-23 18:12:00 | 显示全部楼层

Re:想到了一种对小植物渲染的终极优化方案, 大家看看有

staticgeometry本身就是利用显存来存储加快速度
这样做会不会浪费显存?
那这样一个材质文件里有16个纹理单元..材质clone会不会有所影响?
建议做个性能评测能说明问题 [em5]

32

主题

1259

帖子

1351

积分

金牌会员

Rank: 6Rank: 6

积分
1351
 楼主| 发表于 2007-6-23 18:28:00 | 显示全部楼层

Re:想到了一种对小植物渲染的终极优化方案, 大家看看有

就算你分成16张图片, 还不是占用同样的 显存.

10

主题

69

帖子

69

积分

注册会员

Rank: 2

积分
69
发表于 2007-6-23 18:34:00 | 显示全部楼层

Re:想到了一种对小植物渲染的终极优化方案, 大家看看有

这些问题,我想国外早有许多论文描述过了,只是国内知道的人不说罢了,说了,他去哪吃饭?

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2007-6-23 21:11:00 | 显示全部楼层

Re:想到了一种对小植物渲染的终极优化方案, 大家看看有

纹理合并并统一寻址减少BATCH数量是一种很传统的做法。

32

主题

1259

帖子

1351

积分

金牌会员

Rank: 6Rank: 6

积分
1351
 楼主| 发表于 2007-6-23 21:45:00 | 显示全部楼层

Re:想到了一种对小植物渲染的终极优化方案, 大家看看有

平常都是没有意识到, 把植物的纹理也做到一张上面

15

主题

202

帖子

207

积分

中级会员

Rank: 3Rank: 3

积分
207
QQ
发表于 2007-6-23 22:19:00 | 显示全部楼层

Re:想到了一种对小植物渲染的终极优化方案, 大家看看有

终极~

32

主题

1583

帖子

1589

积分

金牌会员

Rank: 6Rank: 6

积分
1589
发表于 2007-6-23 22:50:00 | 显示全部楼层

Re:想到了一种对小植物渲染的终极优化方案, 大家看看有

啊,这个是显而易见的。

将材质合并以降低DP次数,应该是会大大提高效率的,只是代码编辑稍微麻烦了点。

39

主题

120

帖子

120

积分

注册会员

Rank: 2

积分
120
发表于 2007-6-24 09:33:00 | 显示全部楼层

Re:想到了一种对小植物渲染的终极优化方案, 大家看看有

原来这就是优化~呵呵
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-26 00:45

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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