GLFLによるOpenGL入門
https://tokoik.github.io/GLFWdraft.pdf
床井浩平先生(和歌山大学システム工学部)のかいたOpenGL入門書
紙の本 https://www.kohgakusha.co.jp/books/detail/978-4-7775-2056-5
環境
C++
GLFW
手抜きOpenGLの代替としてかれた
https://twitter.com/tokoik/status/948158146375069697
2023/5/15 次回:GLFLによるOpenGL入門#6151dadd774b170000a3325f
2021/9/28 次回:GLFLによるOpenGL入門#61522098774b170000a33358
初期の OpenGL は描画アルゴリズムを組み込んだ「固定機能」のパイプラインとして実装されていたので、その機能を組み合わせて「こうすれば絵が出るよ」みたいな教え方ができました
固定機能シェーダ
しかし、今の OpenGL は機能の大部分を「プログラマブル」にしてしまったので、どんなアル ゴリズムで描くかは自分で考えてプログラミングしないといけません。つまり、今の OpenGL を 用いたグラフィックスプログラミングでは、CG の理論に関する知識が必須なのです。
そういう知識は、今は Unity や Unreal Engine 4、Lumberyard、chidori、 OROCHI 4、CryEngine などのミドルウェアに組み込まれているので、それらを使えば「手早く」 映像を表示させることができます。これは、特に初心者において重要な要素です。
OpenGLはGPUを制御する基本機能しか持っていないので、CGの知識を使ってツールを自作しないと「いい感じの見た目」は出せない。ゲームエンジンはこれを備えているので、使えばいい感じの映像が素早く出せる。
だから、学校 の授業でしかプログラミングをしたことがない人に OpenGL のような低水準の API によるグ ラフィックスプログラミングを強いるのは、もうナンセンスなんじゃないかと思ったりもします。
読む目的
フルスクラッチで写経する過程で、パイプライン処理と絵の描画の原理を勉強する
シェーダとは何かが説明できるようになる
シェーダでできることは何?
シェーダを使うとどんな面白い表現ができる?
OpenGLにおけるシェーダ実行の流れが説明できる
本書を読んでもわからないけど知りたくなったこと
VRでの実装
TODO
読後にやること
読む目的が達成できたか振り返る
p.1
Windows
2Dグラフィクス GDI
2D, 3D Direct3D
OpenGL
IRIX
PCの性能が上がり、ワークステーションではなくPCでもCADを使いたくてOpenGLがWindowsに移植
事実上グラフィクスライブラリはDirectXとOpenGLの2択
Windows以外で共通利用できるのはOpenGL(Vulkan)のみ
GLFW
p.6
OpenGL 3.2以降
GLEW (The OpenGL Extension Wrangler Library, http://glew.sourceforge.net/) というライブラリも使用します
これはグラフィックスハードウェアの拡張機能を使用可能にするためのものです。
特に Windows では、Windows がもともとサポートしている OpenGL のバージョンが 1.1 のために、グラフィックスハードウェアがそれ以降のバージョンに対応したものであっても、そのままでは新しい機能を使用することができません。そこで GLEW を使って、グラフィックスハードウェアが持つ全ての機能をアプリケーションプログラムから使えるようにします
GLFLによるOpenGL入門:環境構築
GLFLによるOpenGL入門:第3章 プログラムの作成
GLFLによるOpenGL入門:第4章 プログラマブル・シェーダ
GLFLによるOpenGL入門:第5章 図形の描画
GLFLによるOpenGL入門:第6章 マウスとキーボード
第7章 座標変換
頂点処理
同次座標
変換行列
変換の合成
「変換行列」を使った「座標変換」
「直交座標系」の変換
ビュー変換
投影変換
第8章 形状の表現
「三次元図形」の「描画」
「頂点色」の指定
「図形」の「塗りつぶし」
隠面消去
9章
9.4.2Phongのsmooth shading