Canvas を WebGL のテクスチャにする

WebGL では、canvas 要素をテクスチャに使用できる。

three.js の fragment shader は、中で

gl_FragColor = gl_FragColor * texelColor

としているので、ビルボード的なものを作るときは板ポリの色を 0xffffff にしておかないとダメ。どうせテクスチャ貼って「地の色」は見えないからデフォルトでいいやと 0x000000 のままだと真っ黒になってしまう。

それから、canvas で何も触らなかった画素や clearRect したピクセルは透明な黒 rgba(0, 0, 0, 0.0) になるので、板ポリのマテリアル色を 0xff0000 とかにしてもそれが透けて見えることはなく、真っ黒になる。