OpenGLとは?
- 3Dグラフィックを高速に描画できるAPI
- C言語のほか、Javaなどの言語に移植されたものがある
何で高速なのか?
- 行列計算とか難しい計算を専用のプロセッサ(GPU)で計算してくれる
- CPUからビデオデバイスに送るデータを最小限にできる
同列の技術
- DirectX
- Apple Metal
- AMD Mantle
- Vulkan
WebGLとは?
- OpenGLをJavaScriptに移植したもの。ほぼOpenGL
- HTML上の画像<image>や動画<video>を簡単にテクスチャにできるように拡張してある
- 関数名をjsっぽくオシャレにしてる
- 例) glDrawElements() → gl.drawElements()
three.jsとは?
- WebGLをラップしたライブラリ
- APIがオシャレでOpenGLの面影がない
WebGLとthree.jsのどちらを勉強すればいいか
WebGLを使うメリット/デメリット
- OpenGLの資産を容易に再利用できる
- ライブラリ固有のパフォーマンス劣化を気にする必要がなくなる
- 実装の中をわかった気になれる
- 行列を用意するのに別途ライブラリがほぼ必須
- Vulkanが出てくるし今更OpenGLを勉強してもあんまり美味しくない
three.jsを使うメリット/デメリット
- ライブラリ一つで完結する
- WebGLを生で扱うより簡単
- パフォーマンスの出るよう心がけるには結局中身を知らないといけない