眼眸繁星
2021-04-01 13:11:44
當(dāng)前問題預(yù)期的墻紋理墻沒有以所需的紋理繪制。隨機(jī)顏色與圓柱體上的墻紋理混合在一起。其余對(duì)象不需要紋理。該程序在本地主機(jī)上運(yùn)行,并且映像肯定已加載。這是我的建筑物代碼。如何解決紋理問題?腳本庫gl-matrix-mi.js也已加載。在html文件中創(chuàng)建了2個(gè)按鈕和2個(gè)滑塊,它們調(diào)用initDemo()。目標(biāo)是僅使墻壁(圓柱體)具有紋理。
2 回答

繁花如伊
TA貢獻(xiàn)2012條經(jīng)驗(yàn) 獲得超12個(gè)贊
正如Kirill指出的那樣,如果您保留代碼不變,那么gl.linkProgram
在拆下并附加新的著色器后就需要調(diào)用它,但這實(shí)際上可以創(chuàng)建一個(gè)新程序。您所有的統(tǒng)一位置都將變?yōu)闊o效,并且您需要再次查找這些位置。那樣做并不常見。
在初始化時(shí)創(chuàng)建多個(gè)程序并在渲染時(shí)使用它們的情況要普遍得多。
制服也不會(huì)在程序之間共享。即使它們具有相同的名稱,也需要查找每個(gè)程序的屬性和統(tǒng)一位置。

慕田峪9158850
TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超7個(gè)贊
分離/附加著色器對(duì)象后,需要重新鏈接程序(帶有linkProgram
調(diào)用)。但是,更好的方法是使用相同的頂點(diǎn)著色器和不同的片段著色器創(chuàng)建兩個(gè)單獨(dú)的程序?qū)ο?,并進(jìn)行切換useProgram
(因?yàn)樗_實(shí)需要著色器才能在一幀中多次生成著色器二進(jìn)制文件)。
添加回答
舉報(bào)
0/150
提交
取消