WebGL(やOpenGL)は全体的に記述が冗長すぎてなにをどこでどうするか、というのを把握するのがとても大変です。
未だにしっかりとは覚えておらず、毎回悶々としてます。
が、色々考えていてなにかに例えて覚えたら覚えやすいかなーと思って考えてみました。
結論から言うと「メール」ですw
メール??
メールになにがしかの重めのファイルを添付して送るときを想像してください。
概ね、以下の手順で送信すると思います。
- ファイルを準備する
- ファイルを圧縮する
- 圧縮したファイルを添付する
- 宛先を決める
- 送信
という手順です。
さて、これをWebGLに当てはめてみると、
- 頂点データを準備する
- バッファオブジェクトにデータをまとめる(
gl.createBuffer
) - 準備したバッファをバインドする(
gl.bindBuffer
) - GPUへ送信する属性を有効化する(
gl.enableVertexAttribArray
) - GPUへ送信する(
gl.vertexAttribPointer
)
基本は同じ?
基本的にWebGLでデータのやり取りをする場合は、このバインドとデータの送信という手順を繰り返します。
引数や関数名が違うだけなので、手順を覚えておくと記述が少しは楽になるかな、と思います。
にしても、やっぱりWebGLは記述が冗長だ( ;´Д`)