雖然有很多關於如何渲染精靈的教程,但我已經知道如何以面向對象的方式爲我的精靈製作動畫。比方說,我有一個播放器 - class
帶有WebGL的Sprite動畫如何工作?
class Player{
constructor(){
this.textureAtlasPath = 'textures/player.jpg'
this.uvCoords = [0,0,1,0,1,1,0,1]
}
}
因此,如果player.jpg
只包含一個紋理(如一個字符),我認爲這是非常明確的,那我使用UV座標[0,0,1,0,1,1,0,1]
。但讓我們說player.jpg
包含4個紋理(角色朝上,角色朝左,角色朝下,角色朝下)。我所做的就是將在4個UV座標UV座標(頂點着色器內),並視框FE:
if(currentFrame < 15)
//use uv coord subdivision 1
if(currentFrame < 30)
//use uv coord subdivision 2
to be continued.....
所以我的問題是: 難道我細分頂點/片段着色器內的紫外線COORDS或者我在CPU上計算它們?如果是這樣,我將它們存儲在4個不同的緩衝區或只有1個緩衝區?如果可能的話,你能提供一個代碼示例嗎? 附加說明:我希望我的所有動畫小精靈都有4種運動狀態,所以f.e.整個圖像是64x64,它包含4個16x16紋理。