WebGPU 2 顏色與快取

2022-08-19 06:09:10 字數 1391 閱讀 2690

**見:

與 webgl 的gl.createbuffer()幾乎一樣。

const vbodata = new float32array([

-0.5, 0.0, 1.0, 0.0, 0.0, 1.0,

0.0, 0.5, 0.0, 1.0, 0.0, 1.0,

0.5, 0.0, 0.0, 0.0, 1.0, 1.0

])const vbo = device.createbuffer()

與 float32array 的繫結,跟 webgl 就完全不同了:

vbo.unmap()

建立乙個座標快取,乙個顏色快取。

[[builtin(position)]] varout_position: vec4;

[[location(0)]] varout_color: vec4;

[[location(0)]] varin_position_2d: vec2;

[[location(1)]] varin_color_rgba: vec4;

[[stage(vertex)]]

fn main() -> void

與 glsl 有幾分相似,但是多了乙個出口。

頂點著色器的輸出,在片元著色器裡就要輸入。

[[location(0)]] varfragcolor: vec4;

[[location(0)]] varin_color: vec4;

[[stage(fragment)]]

fn main() -> void

兩端都準備完成後,就要在管線裡拼接他們了。

const pipeline = device.createrenderpipeline(, ]

}]},

fragment: , // 略

primitive: , // 略

})

最後,在通道編碼器指定座標快取、顏色快取。

passencoder.setvertexbuffer(0, vbo)
將兩個快取合併成乙個。vertexstate 中的 vertexbuffer 下的 arraystride 要改動,若為二維座標+rgba顏色,那麼就要改為 6x4 了;offset 屬性也要改動,即從 buffer 的第幾個位元組開始是它自己第乙個資料。

或者合併 vertexbuffer 物件下的 attributes 屬性。

Lintcode 顏色排序2

給定乙個有n個物件 包括k種不同的顏色,並按照1到k進行編號 的陣列,將物件進行分類使相同顏色的物件相鄰,並按照1,2,k的順序進行排序。注意事項 you are not suppose to use the library s sort function for this problem.k n ...

openGL學習筆記2(顏色)

opengl支援兩種顏色模式 一種是rgba,一種是顏色索引模式。無論哪種顏色模式,計算機都必須為每乙個畫素儲存一些資料。不同的是,rgba模式中,資料直接就代表了顏色 而顏色索引模式中,資料代表的是乙個索引,要得到真正的顏色,還必須去查索引表。ex void mydisplay void glco...

MFC學習 2 控制項顏色透明

1.在對話方塊的標頭檔案中加入 afx msg hbrush onctlcolor cdc pdc,cwnd pwnd,uint nctlcolor 2.在對話方塊的cpp檔案中加入 1begin message map ctransparentdlg,cdialog 2 on wm ctlcolo...