既に知っているスプライトのレンダリング方法に関するチュートリアルはたくさんありますが、私はオブジェクト指向の方法でスプライトをどのようにアニメーション化できるのか疑問に思っていました。のは、私がplayer.jpg
は(1つの文字のような)のみONEのテクスチャが含まれている場合、私はそれは私が紫外線[0,0,1,0,1,1,0,1]
を座標を使用することを、非常に明確だと思うので、Player- class
WebGLを使用したSpriteアニメーションはどのように機能しますか?
class Player{
constructor(){
this.textureAtlasPath = 'textures/player.jpg'
this.uvCoords = [0,0,1,0,1,1,0,1]
}
}
を持っているとしましょう。しかし、player.jpg
に4つのテクスチャが含まれているとします(文字が上を向いている、左が文字、右が文字、下が向いています)。どのような私は、UVを分割してなかったこと(頂点シェーダ内)4点のUV座標に調整し、フレームに応じて、FE:
if(currentFrame < 15)
//use uv coord subdivision 1
if(currentFrame < 30)
//use uv coord subdivision 2
to be continued.....
だから、私の質問は: は、頂点/フラグメントシェーダ内UV座標をI細分くださいまたは私はCPU上でそれらを計算するのですか?もしそうなら、私はそれらを4つの異なるバッファまたは1つのバッファに格納しますか?可能であれば、コード例を提供できますか? 追加の注記:私のすべての私のアニメーションスプライトが4つの動きの状態を持つことを望みます。画像全体が64x64で、4つの16x16テクスチャが含まれています。