今回のテーマはフラグメントシェーダの活用。 http://school.souhonzan.org/201610/002/
既に描き上がっている3Dシーンに対して事後的になにかしらの加工を行う。 一度写真を撮影したあと、その写真をさらに photoshop などで加工するようなイメージ。
写真の部分は、加工されるために内部的に見えないところで利用されるだけで、実際には表には出てこない。 これをオフスクリーンレンダリングという。 フレームバッファにシーンを描画する。
positionとvertexColor、前回の講義で教わった。
3DCG には欠かせない概念。 法線が理解できていないと、光で頂点を照らすなどの処理が一切できなくなってしまう。 「表面がどっち向いてるか」
二次元の画素の集合のうち、どのような場所から色を取りますか? という情報。
OpenGLでは左下が原点。画像は上下反転した状態で読み込まれる。
範囲はvec2(0.0, 0.0)
からvec2(1.0, 1.0)
。
頂点シェーダから渡された varying などの値は、関連する頂点からの影響を 線形補間した結果 として取得される。 色なら当然混ざり合い、方向を示すベクトルである法線ならちょうど中間のあたりを指し示すベクトルとして取得される。 このような自動的な線形補間は、基本的に無効化することはできない。常に、このような処理が自動的に行われる。
「照らされたところが明るくなる」「照らされていないところが暗くなる」 3DCG とは、結局はどこまでいっても「まやかし」 あたかも「光が当たってるふう」に見せているだけ。