shading)は、3次元コンピュータグラフィックスにおける陰影計算の補間技法である。フォン補間と呼ばれることもある。実現するための補間技法として利用される。グーローシェーディングやフラットシェーディングなどの他の補間技法との対比で、これを「フォンシェーディング」と呼ぶ。この技法はユタ大学のブイ・ツォン・フォン(英語版)が考案したもので、1973年の博士論文で発表した。フォンシェーディングと同時に、フォンはフォン反射モデル(フォン照明モデル)を提唱した。フォン反射モデル自体は、フォンシェーディングだけでなくグーローシェーディングなど他の補間技法とも組み合わせて使うことがある。フォンシェーディングもまた、フォン反射モデル以外の反射モデルと組み合わせて使うこともできる。概要[編集]フォンシェーディング補間の例フォンシェーディングはグーローシェーディングより改良されており、滑らかな表面のシェーディングに関して、よりよい近似を提供する。フォンシェーディングは法線ベクトルが連続的に変化すると見なす。フォン補間手法は、フォン反射モデルのように小さい鏡面ハイライトを持つ反射モデルに適用するとき、グーローシェーディングよりも良い結果をもたらす。グーローシェーディングの大きな問題は鏡面ハイライトが大きなポリゴンの真ん中あたりにあるときに顕著となる。グーローシェーディングではポリゴンの頂点の色を計算し、頂点間を全て補間するため、そのようなハイライトは見えなくなる。フォンシェーディングではこの問題に対処できる。グーローシェーディングとは異なり、フォンシェーディングではポリゴンの頂点の法線ベクトルからポリゴン内の表面の法線ベクトルを線形補間で求める。シーン上の各ピクセルについてそのようにして法線ベクトルを求め、それぞれに反射モデルを適用してピクセルの色を求める。ピクセル毎に反射モデルの計算をするため、フォンシェーディングはグーローシェーディングよりも計算量が大きくなる。APIのひとつであるDirect3Dには、D3DSHADEMODEのひとつとしてD3DSHADE_PHONGが用意されていたが、実装・サポートされることはなかった[1]。プログラマブルシェーダーをサポートするハードウェアでは、ピクセルシェーダーもしくはフラグメントシェーダーにより実装されたフォンシェーディングを実行することができる。最近[いつ?]のハードウェアには、ピクセルシェーダーやフラグメントシェーダーを使ってこのアルゴリズムの派生を実装しているものもある[要出典]。これは、法線ベクトルを各ポリゴンの2次色として符号化し、ラスタライザにそれをグーローシェーディングで補間させ、ピクセルシェーダーがそれを法線ベクトルとして解釈して各ピクセルの照明計算を行うという方法である。1999年に稼働を開始したSEGAHIKARUはアーケードゲームで初めてフォンシェーディングを搭載したシステム基板である。SEGAHIKARUはシーン毎に最大1024光源,ポリゴン毎に最大4光源を同時に利用できるなどで、ゲームに限らないリアルタイムCG全般で見ても抜群の描画品質を誇っていた。非常に高コストで導入環境が限られている点がネックであった。ニンテンドー3DSなどに搭載されているPICA200ではフォンシェーディングをハードウェアの固定機能として最初から実装しており、Direct3Dのピクセルシェーダーでフォンシェーディングの表現に必要な浮動小数点数をPICA200では1/35に抑えられ、少ない負荷でのフォンシェーディングの表現が可能である。粗い表面のランバート反射と滑らかな表面の鏡面反射を組み合わせて物体表面の反射を表している。これは、滑らかな表面では小さく強い鏡面ハイライトが見られ、鈍い表面ではハイライト部分が大きく徐々に弱まっていくという、フォン自身の定式化されていない観測に基づくものである。あり、シーン全体の弱い散乱光を考慮している。フォン方程式の視覚化。照明は白色光で、アンビエント色と拡散反射色は共に青、鏡面反射色は白である。表面に当たった光はほとんど反射されているが、ハイライト部分は非常に狭い。拡散成分の強さは表面の角度によって変化し、アンビエント成分は一様(角度とは独立)である。(日時は個人設定で未設定ならばUTC)。表示-継承ライセンスの下で利用可能です。追加の条件が適用される場合があります。詳細は利用規約を参照してください。Cookieに関する声明モバイルビュ。