游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2836|回复: 8

如何使用数量更多,尺寸更大的光照图?

[复制链接]

28

主题

110

帖子

110

积分

注册会员

Rank: 2

积分
110
发表于 2006-9-11 23:56:00 | 显示全部楼层 |阅读模式
大家好,在3D场景中,如果场景范围比较大,物体数量多,而且物体面数也比较高,这时光照图的数量会很大,为了达到较好的光照效果,光照图的尺寸也不能太小。我使用OGRE在一个5万面,30个对象的场景中,使用了128X128以及少量512X512的光照图,场景的光照效果一般,FPS约在60左右(显卡R9550,双128,512M内存,闪龙2200+),当主要使用512X512,少量256和1024的光照图时,场景的光照效果提升明显,但FPS也下降迅速,只有20多。

在OGRE的论坛上有朋友(oFusion的作者)解答说要让材质数量尽可能的少,纹理尺寸尽可能的小,他甚至说整个场景可以用一张512X512的光照图。但实际应用中,这样小的光照图出来的效果简直可以说是惨不忍睹。

我以前使用TV3D引擎时,曾在一个场景中使用了300张1024X1024的完全贴图,DDS,30万面左右的场景,在同样的机器上,打开4倍反锯齿和6倍各向异性纹理过滤,fps仍有20左右。不知OGRE为何对材质的数量和纹理的尺寸要求这么苛刻?

请教名位朋友,有什么更好的办法在来使用数量更多,尺寸更大的光照图?

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2006-9-12 13:45:00 | 显示全部楼层

Re:如何使用数量更多,尺寸更大的光照图?

我渲染一个150W面的模型,加1024*1024的贴图开光照,在66GT上都有上百帧
只有5万面的场景,用512X512的贴图只有20帧,绝对是不正常的

28

主题

110

帖子

110

积分

注册会员

Rank: 2

积分
110
 楼主| 发表于 2006-9-12 23:33:00 | 显示全部楼层

Re:如何使用数量更多,尺寸更大的光照图?

谢谢jk20012001的回答。
请问你这个场景用了多少张贴图?另外物体是否都开了阴影?是直接用的DX还是用的3D引擎?

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2006-9-13 14:15:00 | 显示全部楼层

Re:如何使用数量更多,尺寸更大的光照图?

我只是画一个人,就一张贴图,直接用的DX
物体开阴影是什么意思?你说阴影贴图吗?

28

主题

110

帖子

110

积分

注册会员

Rank: 2

积分
110
 楼主| 发表于 2006-9-13 23:04:00 | 显示全部楼层

Re:如何使用数量更多,尺寸更大的光照图?

我倒!一张贴图!
你这个场景不能说明问题,需要用更多的模型和更多的贴图才能进行有意义的测试。

22

主题

274

帖子

274

积分

中级会员

Rank: 3Rank: 3

积分
274
发表于 2006-9-14 13:32:00 | 显示全部楼层

Re:如何使用数量更多,尺寸更大的光照图?

150W 面有 100+ FPS?没被CULL掉吧?!

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2006-9-14 14:22:00 | 显示全部楼层

Re:如何使用数量更多,尺寸更大的光照图?

开了CULL,不然可能没那么高帧数……
150W面也没什么的,顶点数还没上100W。像3DMARK05里面的VertexShader测试,同时渲染4个模型,开光照,每个模型都是100W以上的顶点,稍差点的显卡就是放幻灯片了

28

主题

110

帖子

110

积分

注册会员

Rank: 2

积分
110
 楼主| 发表于 2006-9-14 23:31:00 | 显示全部楼层

Re:如何使用数量更多,尺寸更大的光照图?

3DMark05的测试主要是针对Shader和显卡硬件的性能指标,这个和我们的场景区别很大。

如果要表现一个方圆数十公里的区域,同时又要有较好的光照,需要配合场景管理算法,我曾看到一个引擎在表现一个约有49幢别墅的场景时,使用了1000张光照图,而且没有使用遮挡算法,视野内所有对象都要渲染,不知道这是怎样做到的?不过它使用的光照图很小,64X64,但数量够多

22

主题

274

帖子

274

积分

中级会员

Rank: 3Rank: 3

积分
274
发表于 2006-9-15 19:13:00 | 显示全部楼层

Re:如何使用数量更多,尺寸更大的光照图?

人家引擎做得性能好,是因为对 计算/渲染 平衡控制得好.
这里面关系非常复杂,跟场景组织,剔除算法,模型LOD,SHADER LOD,状态管理,批的数目,渲染顺序...都有关系.
优秀的引擎应该能在任何一个场景,依据硬件配制一个渲染路径,并充分利用硬件,表现一个平均较高的帧数.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-25 10:09

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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