最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

繪制多個(gè)對(duì)象時(shí),什么時(shí)候創(chuàng)建新的頂點(diǎn)數(shù)組對(duì)象?

繪制多個(gè)對(duì)象時(shí),什么時(shí)候創(chuàng)建新的頂點(diǎn)數(shù)組對(duì)象?

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

1 回答

?
GCT1015

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超4個(gè)贊

有多少 VAO 由您決定。有很多權(quán)衡。就文本而言,最常見的文本方式是將字形放入紋理圖集中,并生成一個(gè)緩沖區(qū),其中包含要繪制的所有字母的頂點(diǎn)。


換句話說(shuō)。


each frame

? ?for each string

? ? ? for each letter in string

? ? ? ? ?add vertices for letter to buffer


drawArray/drawElements(gl.TRIANGLES, ... totalOfAllLettersInAllStrings * 6);

因此,所有字母(如 UI)可能只有一次繪制調(diào)用。每個(gè)字母沒有一個(gè)。那將是放慢速度的方式。


就繪制文本而言,對(duì)于簡(jiǎn)單的情況,通常每種字體樣式只需要一個(gè)紋理。雖然如果你想支持所有的 unicode 而不是僅僅支持 ASCII,它會(huì)很快變得復(fù)雜。


查看完整回答
反對(duì) 回復(fù) 2023-05-25
  • 1 回答
  • 0 關(guān)注
  • 138 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)