「フラットシェーディング」の版間の差分
imported>Administrator 編集の要約なし |
編集の要約なし |
||
| 1行目: | 1行目: | ||
'''フラットシェーディング'''とは、[[3DCG]]の陰影処理技法のひとつで、[[法線]]を[[ポリゴン]]面単位で保持し、[[法線]] | '''フラットシェーディング'''とは、[[3DCG]]の陰影処理技法のひとつで、[[法線]]を[[ポリゴン]]面単位で保持し、[[法線]]はポリゴン面に対して常に垂直なものとして扱うものをいう。1ポリゴンごとに1色で塗りつぶされる。 | ||
1[[ポリゴン]]あたり1[[法線]]と[[データ]]量が非常に少なく、非常に高速に処理できるという利点があり、[[リアルタイムレンダリング]]が求められる[[ポリゴン]]を使った初期の[[ゲーム]]でよく用いられた。現在では[[ハードウェアT&L]]や[[プログラマブルシェーダー]]の登場でほぼ見かけることはなくなった。 | |||
== 関連項目 == | == GLSL == | ||
* [[シェーダー]] | GLSLでは[[バーテックスシェーダー]]の出力変数に「flat修飾子」を付けるとフラットシェーディングとなる。<syntaxhighlight lang="glsl"> | ||
* [[フラットシェーディング]] | // 入力 | ||
* [[グローシェーディング]] | layout (location = 0) in vec3 VertexPosition; | ||
* [[フォンシェーディング]] | layout (location = 1) ih vec3 VertexNormal; | ||
* [[フォン反射モデル]] | |||
* [[ブリン・フォン反射モデル]] | // 出力(これ) | ||
flat out vec3 Intensity; | |||
// バーテックスシェーダー | |||
void main() | |||
{ | |||
// ここが頂点1個分しか呼ばれない | |||
} | |||
</syntaxhighlight>この場合、[[バーテックスシェーダー]]に[[フォンシェーディング]]や[[グローシェーディング]]などを[[アルゴリズム]]を書いておいても、[[ポリゴン]]を構成する3つの[[頂点]]のいずれか1つだけが計算され、その結果が[[フラグメントシェーダー]]に渡ってくる。前述の概要で「[[法線]]を面単位で持つ」と書いたが「ポリゴンを構成する[[頂点]]の[[法線]]のいずれか1つが使われる」という内容になっている。 | |||
==関連項目== | |||
*[[シェーダー]] | |||
*[[フラットシェーディング]] | |||
*[[グローシェーディング]] | |||
*[[フォンシェーディング]] | |||
*[[フォン反射モデル]] | |||
*[[ブリン・フォン反射モデル]] | |||
[[category: 3DCG]] | [[category: 3DCG]] | ||