这些天在写场景管理的一些内容以及渲染自己导出的模型的渲染器...
首先先说两个导致我花了1天才解决的两个弱智BUG...望大家以后注意....
1. 如果使用固定管线渲染...千万千万记得在创建D3DMATERIAL9对象的时候ZeroMemory一下.....不然哪天你没有设置镜面光或者环境光的系数的时候就啥都看不到了....
2.由于粗心大意...在SHADER传参的时候将pEffect->SetTexture("g_Tex",...);写成了pEffect->SetTextrue("g_tex",...),结果悲剧就发生了....
这两天在测试模型渲染器的效率....遇到一些问题....还望各位大牛指点一下...
先来比较一下这两张图:
首先说一下,当把静态模型加到1000个以后,也就是所谓的百万个三角形后,其实对渲染的效率影响并不是很大...
可见现在GPU对于顶点的处理基本不是问题(不要太变态的情况下)...顺便提一句,我的是7300GS显卡
在渲染过程中用的是VS&PS2.0
但是大家可以看到第一张图中帧数比第二张图中的帧数少了8帧左右
先忽略掉那多出来的20个1024个面,我认为不是关键...
这两次渲染中我只是将模型的缩放比例从0.4变为了0.2,仅此而已...
不影响场景管理...因为我的场景管理还没有加动态的对象...呵呵...
那为什么效率出现了差别...
比较直观的看就是说第一张图中像素对后台缓冲区的填充率更高...而第二个更低...
那换句话说依然瓶颈是在于像素着色...但是具体在于像素着色的哪个方面呢,望高手解答一下...
再给一张图作为参考
其实这张图中渲染了200次骨骼动画模型
这次我把所有的渲染的位置都放在了同一个点...
帧数居然只有8了...如果说上面两张图的比较结果是像素填充后台缓冲区的填充率过高...
那么这张图又如何来解释呢....ZBUFFER的问题么???
同时...在场景管理中....想优化一下摄像机平截头体和四叉树节点的判断位置关系的代码...
望各位大牛提供一点思路...