2011年1月3日 星期一

關於 OpenGL 大場景 最佳化

作者: littleshan (我要加入劍道社!) 看板: C_and_CPP
標題: Re: 關於 OpenGL 大場景 最佳化
時間: Thu Mar 19 17:00:16 2009

※ 引述《lostmyself (該抓住的  要得著)》之銘言:
: Hi, all
: 想請教關於用 OpenGL 製作大場景 如何加速的問題
: 我目前的場景裡面有數十個小場景
: 每個小場景大約用了 40萬個 triangle
: 只 Load 一兩個小場景跑起來還 OK, 但是大約十個景就會明顯的 Lag 了
: 我每個小場景都有先用 glNewList 做好了, Display 的時候就直接 glCallList
: 不知道各位有什麼建議的方法來做這種大場景嗎

1. camera 沒照到的物體就不用畫出來。這部份通常會先用某些演算
   法去切割場景,再籍由 camera 的位置去快速判斷那些三角形可
   以不用畫出來。
   (關鍵字:Octree、BSP)

2. 如果 mesh 距離鏡頭很遠,那畫一個比較粗糙的 mesh 就夠了,
   沒必要畫出精細的模型。
   (關鍵字:mesh LoD)

3. 有些 mesh 已經被其它的 mesh 擋住了,這時候再去畫它是浪費
   時間。
   (關鍵字:Occlusion Culling)

4. mesh 資料要直接存到顯示卡的記憶體上,另外別用 glVertex 畫
   三角形,那個超慢的,請用 glDrawElements 一次把所有要畫的三
   角形送進 pipeline 才快。
   (關鍵字:VBO)



--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.87.151.2

沒有留言:

張貼留言

您好.本資料庫並非第一手資料.如果你有對文章作者的詢問,意見與需求,請自行找尋文章作者並提供意見,謝謝.