测试GPU的材质填充率
體渲染最重要的一個優化就是減少GPU的采樣工作。測試GPU的材質填充率能夠指導我們的工作。要知道為什么GPU在800*600的環境中只能達到12FPS么?這就要看GPU每秒鐘采樣的次數啦。
我寫了一個簡單的OSG程序,用來測試采樣次數,點擊這里可以下載
程序原理很簡單,分幾步:創建窗口->生成和設置紋理->載入SHADER->渲染。具體如何做要看程序里面啦,這里就不再貼出來了。
直接說最后的測試的結果了。我的8800GTS(G80)官方資料說材質填充率能夠達到24Billion/Sec,官方資料給的核心頻率500Mhz,著色器頻率1200Mhz,顯存800Mhz。我將我的顯卡也按照這個數據進行了降頻。
測試環境:窗口800*600,3D貼圖256*256*256,數據是LUMINACE_ALPHA,每個像素2BYTE。每個像素的Shader采樣3D貼圖512次。
最后得到測試FPS為11.98幀。算算:800*600*512*11.98=2,944,204,800,因為是3D紋理所以每個采樣實際要有8次采樣工作,所以最終的材質填充率:23,553,638,400,和24Billion/Sec很接近了。
換用2D貼圖可以得到相似的結果,只是FPS會快一倍。原因是三線性采樣的工作量是二線性采樣的兩倍,很顯然FPS會提升一倍。
那么怎么去優化呢?下面做一些測試:
最終的結果很明顯。3D貼圖的采樣已經成了整個系統的瓶頸,已經讓顯卡的貼圖單元達到了極限。Shader處理器由于計算量很小,所以還很空閑。由于采樣過濾的繁忙,貼圖單元也不需要很大的顯存帶寬,所以顯存的影響幾乎沒有。
優化的措施:只能盡可能的減少采樣次數,或者找更快的卡。目前看來只有G92的9800GTX或者8800GTS的采樣率能夠達到 43.2Billion/Sec以上,GTX280官方資料也只能達到48.2Billion/Sec,GTX260 36.9Billion/Sec。9800GX2能夠達到76.8Billion/Sec,就是不知道實際SLI的性能能不能滿足需要了。看來如何選擇適 合體渲染的卡已經有一個理論和實際的指導了。
總結
以上是生活随笔為你收集整理的测试GPU的材质填充率的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java入门1.2.3—一个老鸟的Jav
- 下一篇: Navisworks Api Tool