久々のエントリー
今までの流れは、↓こんな感じ
・[3D][Astro] 3Dの移動/回転を行列(Matrix3D)を使ってやる
・[3D][Astro] .obj形式のファイルを読み込んで、ユタ・ティーポットを表示してみた
・[3D][Astro] Flat Shadingで面を表示する
んで、今回はGouraudShadingをやってみる。
まず、今やってるのは3Dのポリゴンにおける、面の塗り方ね!!
前回やったFlatShadingってのは、面と色が1対1で対応して、1つの色で面を塗りつぶす方法。
色はその面の法線ベクトルと光源ベクトルとの角度で決めるみたい。
ただ、面と面の境界がくっきりでちゃう><
んで、今回やったGouraudShadingってのは、頂点と色が1対1で対応して、1つの面を各頂点からグラデーションで塗って、面と面の境界がなめらかになるようにする塗り方!!
色の決め方は、ある頂点に対して、その頂点を含む面の法線ベクトルの平均を取ったものが頂点の法線ベクトルになって、その頂点の法線ベクトルと光源ベクトルとの角度で決めるみたい。
沼津高専の講義資料に図があるから、それを見るとわかりやすいと思う!!!
ロジックは、↑の日本語をプログラムに翻訳するだけなんだけど、
ある三角形に対して、各頂点の色を指定して、グラデーションするってのは、ここを参考にしました!!
↓重いけど、めっちゃきれいになった!!!
DisplayObject#transform.matrix3D = アフィン変換の行列
とかやるときは使ってくれるのかな??あと、PixcelBlenderとか
今までの流れは、↓こんな感じ
・[3D][Astro] 3Dの移動/回転を行列(Matrix3D)を使ってやる
・[3D][Astro] .obj形式のファイルを読み込んで、ユタ・ティーポットを表示してみた
・[3D][Astro] Flat Shadingで面を表示する
んで、今回はGouraudShadingをやってみる。
まず、今やってるのは3Dのポリゴンにおける、面の塗り方ね!!
前回やったFlatShadingってのは、面と色が1対1で対応して、1つの色で面を塗りつぶす方法。
色はその面の法線ベクトルと光源ベクトルとの角度で決めるみたい。
ただ、面と面の境界がくっきりでちゃう><
んで、今回やったGouraudShadingってのは、頂点と色が1対1で対応して、1つの面を各頂点からグラデーションで塗って、面と面の境界がなめらかになるようにする塗り方!!
色の決め方は、ある頂点に対して、その頂点を含む面の法線ベクトルの平均を取ったものが頂点の法線ベクトルになって、その頂点の法線ベクトルと光源ベクトルとの角度で決めるみたい。
沼津高専の講義資料に図があるから、それを見るとわかりやすいと思う!!!
ロジックは、↑の日本語をプログラムに翻訳するだけなんだけど、
ある三角形に対して、各頂点の色を指定して、グラデーションするってのは、ここを参考にしました!!
↓重いけど、めっちゃきれいになった!!!
DisplayObject#transform.matrix3D = アフィン変換の行列
とかやるときは使ってくれるのかな??あと、PixcelBlenderとか







