我正在製作一個顯示行星的2D圖形應用程序。我說2D,因爲該應用的大部分將是2D。然而,我希望將一些3D對象渲染爲離屏(到紋理)的動態精靈,透明(可能是半透明)區域,然後將這些渲染紋理渲染爲活動屏幕作爲2D紋理四邊形。在這種情況下,直接渲染到屏幕上的3D對象不是最優的,因爲這需要我實施某種3D拾取。我在數學上還沒那麼先進。還要注意,主屏幕渲染將是正確的,而屏幕外渲染將是透視。Android /離線渲染紋理
我該如何做到這一點(一般的想法,不需要具體細節),以及最有效的方法是什麼?這會減少對各種設備的支持嗎?此外,如果3D精靈渲染每隔一幀(例如旋轉精細的數量)不斷刷新,會不會通過連續卸載/重新加載紋理來消除幀率?我想有些場景可能有多達10個這樣的3D屏幕外精靈。
感謝您的幫助
我想我知道你在說什麼。您可能會建議使用視口將我的繪圖約束到主屏幕的特定區域,並在那裏渲染3D行星。這聽起來像一個好主意。但是,(每一幀)創建視區,將渲染模式更改爲透視圖,渲染行星,然後將視圖更改回正切,會更昂貴嗎?這可能每幀發生幾次。看起來屏幕外緩衝區(FBO)具有其自己的確定渲染狀態會使狀態更改更少。 – user2255673 2013-04-08 21:59:23
沒有任何機會切換視窗和某些矩陣比任何離屏緩衝區慢。此外,如果您使用ES1,甚至不能擁有「自己的確定渲染狀態」,則在繪製到另一個緩衝區然後返回時必須將其切換。如果你使用ES2,你可以在兩種情況下都有兩種程序,每種都有自己的狀態。 – 2013-04-09 05:30:23