OpenGL
今度は簡単なトゥーンシェーディングをやってみます。 前回作ったフォンシェーディングのフラグメントシェーダを以下のように変更します。 #version 120 varying vec3 Position; varying vec3 Normal; void main() { int levels = 3; float scaleFactor = 1.…
前回はシェーディングの計算を頂点シェーダで行うグーローシェーディングというものをやってみました(ADSシェーディングではないですが、前々回も)。 各頂点でシェーディングするということは色を各頂点にひとつ関連付けるということです。 この値をフラグメ…
前回、Diffuse反射を実装してみました。 OpenGLの固定機能のパイプラインでは他にもAmbient成分とSpecular成分という光の成分を加えたADSシェーディングというものを使っているみたいです。 ですので、前回のDiffuse反射のプログラムをいじってAmbient成分と…
Diffuse反射というものがあるらしいです。 まあ、全然よくわからないんですが、Diffuse反射には数学モデルがあるので、それに従って実装すればいいでしょう。Diffuse反射の数学的モデルでは、反射光は以下のような、ある点の法線ベクトルとその点から光源へ…
前回までは立方体の表示を頑張ってみましたが、今回からはOBJファイルから読み込んで表示するプログラムを作成してみようと思います。OBJファイルを読み込む関数は以下のようになるらしいです。 参考: OpenGL Programming/Modern OpenGL Tutorial Load OBJ -…
今回から前回までに作った三角形が回転するプログラムを改造して、立方体が回転するプログラムを作ろうと思います。まず頂点の情報が異なるのでそれを書き換えます。 GLfloat positionData[] = { -1.0, -1.0, -1.0, 1.0, -1.0, -1.0, 1.0, -1.0, 1.0, -1.0, …
今回は前回作成したプログラムを改造して、三角形が回転するようにします。昔はアフィン変換をglScale*やglTranslate*やglRotate*を使って行っていたらしいですが、今は非推奨なので別の方法を使います。 前回の三角形を表示させるプログラムではアプリケー…
あぁ何もわかっていないなと。 何も知らないし、何も出来ないし。。。 無知無能な人間なんだから選り好みせずに勉強しようと最近強く思うようになってきました。ということで今日からOpenGLについて勉強してみようと思います。自分の使っているオンボロ中古P…