LoginSignup
31
24

More than 5 years have passed since last update.

0から始めるために、OpenGL、WebGL、three.jsについてのざっくりすぎる解説

Posted at

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を使うメリット/デメリット

  • :thumbsup: OpenGLの資産を容易に再利用できる
  • :thumbsup: ライブラリ固有のパフォーマンス劣化を気にする必要がなくなる
  • :thumbsup: 実装の中をわかった気になれる
  • :thumbsdown: 行列を用意するのに別途ライブラリがほぼ必須
  • :thumbsdown: Vulkanが出てくるし今更OpenGLを勉強してもあんまり美味しくない

three.jsを使うメリット/デメリット

  • :thumbsup: ライブラリ一つで完結する
  • :thumbsup: WebGLを生で扱うより簡単
  • :thumbsdown: パフォーマンスの出るよう心がけるには結局中身を知らないといけない
31
24
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
31
24