我創建一個地形引擎,目前我一次上傳整個地形VB(頂點緩衝區)和IB(索引緩衝)的GPU,因爲地形不巨大。目前是256x256。上傳頂點和索引緩衝區到GPU
現在,讓我們說,我想創建一個使用Perlin雜點生成高度圖一個程序地形。我可以生成「補丁」並一次性向GPU上傳補丁的所有VB和IB,但是隨着玩家移動很遠並且必須生成新的補丁,那麼我將不得不生成新補丁並將其上傳到GPU。我在腦海中遇到的困惑或問題有:
將VB和IB上傳到GPU上是否緩慢?數據上傳到GPU時,玩家是否會注意到閃爍?
會表現更好,如果我上傳了補丁的VB和IB逐步向GPU,而不是所有的人都在一次?基本上我在問VB和IB的大小是否很重要。
任何關於這個概念的信息將不勝感激。
謝謝!
令人驚訝的是,今晚我會做一些測試,看看它是如何發展的。感謝您提供非常詳細的答案。但是關於「自己加載地圖需要多長時間」,讓我們假設VB和IB已準備好上傳(緩存在vram上),上傳到GPU時VB和IB的大小不會有關係,if VB可能有1000x1000頂點的補丁,那麼我應該注意到快門,對吧?越少,上傳到GPU的速度越快? – raRaRa 2011-06-09 14:13:33
@raRaRa:vram是什麼意思?顯卡上的RAM?那麼,這就是GPU RAM,這就是緩衝區對象的全部內容。如果它已經加載到系統RAM中:是的,這個值越大,上傳的時間就越長。但最終的重點是上傳的頂點總數,如果它們有很多小塊或大塊,它們沒有什麼大的區別。如果你渲染的場景需要所有的視覺細節,他們將全部以任何方式上傳,然後才能繪製任何內容。 – datenwolf 2011-06-09 14:37:04
我的意思是系統內存。但是,是的,我也意味着逐漸上傳很多小塊,同時一次上傳所有小塊。 – raRaRa 2011-06-09 14:42:09