登录 用户中心() [退出] 后台管理 注册
   
您的位置: 首页 >> 程序员学前班[不再更新,只读] >> 主题: 场景运行起来一卡一卡的问题终于解决了!     [回主站]     [分站链接]
标题
场景运行起来一卡一卡的问题终于解决了!
clq
浏览(1) + 2010-02-24 15:14:55 发表 编辑

关键字:

来自 http://bbs.vrchina.net/viewthread.php?tid=5147&extra=page%3D2

场景运行起来一卡一卡的问题终于解决了!

自:www.azure.com.cn/article.asp?id=376


很长时间以来,在我的机器上(7300GT的卡)上渲染场景总是莫名其妙的卡,且症状并不是均匀不停的卡,而是当移动摄像机镜头的时候,发生卡的现象。
我一直怀疑是OGRE八叉树中 walkOctree() 递归产生的问题。总是试着优化其代码却不见好转,我总是以为是CPU这边的问题,并总在CPU这边优化下功夫。
今天当我用nvperfHUD检测的时候, 我调整了一个最卡的方向,试着用其调试看看。我突然发现当我使用2X2的纹理代替场景中所有的纹理的时候,FPS突然从5一下在跳到了88,我突然意识到 这是显存上的瓶颈 ,这是我才意识到了真正的问题,美术提交的场景,物件,地表的贴图统统用的是TGA格式,而没有用DDS的压缩格式(因为DDS格式在显存中是压缩储存的 并实时展开的,将消耗更少的显存)
于是我从早上开始干了一天的体力活,将现有场景的所有纹理全部换成DDS格式,并修改材质的描述。我再打开场景测试器测试场景,场景运行十分流畅基本都是50FPS以上,如果不使用RTT水,更可到达80FPS以上。

原因分析:
由于场景物品,植物,都使用了Texture Array, 都是多个物体公用一张大贴图,整个场景的物件植物使用了5张大贴图,全是1024 X 1024 32位的贴图, 一张有4MB大,那么5张就20MB,如果不用压缩格式DDS,就物件就占用了20MB, 再是地面也是使用1024 X 1024的又是4MB, 还有影子层, 64 张 256 * 256 * 32BIT的图,即2048 X 2048 大小, 将近16MB, 还有天空盒, 6张1024×1024的,又是24MB给用掉了,还有光效,和每个纹理自动生成的MIPMAP,哎呀数不清了,显存如果这样一下就用完了。而且这些未压 缩的数据大,而GPU的传输带宽也有限,如果放不下了,就会放到系统内存中去,这就存在不停的在系统内存与显存中交换数据,从而巨卡。

而板载显卡比如一些6100,运行不纹理压缩的版本并不太卡,虽然不快(平均20FPS)但不会出现突然巨卡,又突然流畅的现象,我想是因为板载显卡与系统内存共享,不会存在太严重的数据交换问题。

现在想来这个问题还是十分重要的。


总数:0 页次:1/0 首页 尾页  
总数:0 页次:1/0 首页 尾页  


所在合集/目录



发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:



NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.

Copyright © 2005-2020 clq, All Rights Reserved
版权所有
桂ICP备15002303号-1