例如...在低級AGAL中進行編碼時,是否需要爲每個紋理創建一個新的Program3D?
如果我正在開發,需要在它不止一個紋理(獨特的精靈,基本上)的應用程序,做我需要調用context3D.createProgram();
和組裝新Program3D
(有VertexShaderAssembler
和一個FragmentShaderAssembler
)對於我希望在應用程序中使用的每個單獨紋理?
Program3D
如何在典型的引擎中工作?難道一個程序運行整個事情,或者它使用一個程序每紋理,模型,映射?
而且我是正確的假設,你只需要在初始化時間(Event.ADDED_TO_STAGE
)一次創建Program3D
,而不是每幀(Event.ENTER_FRAME
)期間,對不對?
Ah k,所以我調用Context3D.setProgram(...)的順序對獲得所需的Z-Depth結果可能很重要,對嗎? – bigp
這也意味着,當我在Program3D之間交替時,我不需要清除Context3D,特別是如果一個渲染通道只是覆蓋另一個先前的通道? – bigp
您需要按照正確的順序繪製東西才能使深度測試正常工作。這也可能決定您調用setProgram()的順序。您只需要在每個當前()調用中清除一次。 –