我正在嘗試使用 WebGL 創(chuàng)建游戲。我目前有三種紋理,一種是字體字母,一種是角色精靈表,另一種是世界地圖。所以我有一些大紋理,我需要多次繪制其中的一小部分。做這個的最好方式是什么?我目前的方法是為每個字母、地圖上的正方形、角色姿勢等使用一個 VAO……所以我會有 150 多個 VAO。我認為 VAO 很好,因為它們既簡單又快速,但是this、this和其他讓人覺得這不是最好的選擇。例如,我知道的另一種方法是只有三個 VAO,并更改 WebGL 在緩沖區(qū)中開始讀取的位置以獲得正確字母的位置。因此,我不會使用數(shù)百個帶有微型陣列的 VAO,而是使用三個帶有大型陣列的 VAO。如果這是正確的方法,我是否必須在每次繪制內容時都在 gl.enablevertexAttribArray() 之后調用 gl.vertexAttribPointer() ,還是只修改 gl.drawArrays() 中的計數(shù)參數(shù)?gl.getParameter( gl.MAX_TEXTURE_IMAGE_UNITS ) 是 16 或 32,所以切碎紋理似乎也不是一個好方法。最好的概念方法是什么?
繪制多個對象時,什么時候創(chuàng)建新的頂點數(shù)組對象?
慕斯王
2023-05-25 16:05:18