鏡面ハイライトのソースを表示
←
鏡面ハイライト
ナビゲーションに移動
検索に移動
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
[[File:Specular_highlight.jpg|thumb|3DCGで再現した球面ハイライト]] [[File:Bowlingball.JPG|thumb|実際の球面ハイライト([[ボウリング]]ボール)]] [[File:A tea pot.jpg|thumb|複雑な曲面のハイライト]] [[File:Blue eye.jpg|thumb|眼球のハイライト]] [[File:Wikipe-tan face.svg|thumb|漫画的に描いたハイライト]] '''鏡面ハイライト'''(きょうめんハイライト)は、[[光源]]からの[[光]]が[[光沢]]のある[[表面]]に[[反射]]して見える、光源の[[鏡像]]である。'''表面ハイライト''' (surface highlight)、'''曲面ハイライト'''、([[球面]]の場合は)球面ハイライト、([[眼球]]の場合は)眼球ハイライト、または単に'''ハイライト'''ともいう。 光源が[[点光源]]で、球面など単純な表面の場合は、ハイライトは、周囲がなだらかにぼやけた[[楕円]]形の斑点として現れる。ただし、表面が複雑だったり、室内や人工的な撮影環境で光源が複雑な場合は、さまざまなハイライトが現れる。 ハイライトの再現は3次元コンピュータグラフィックスにおいて重要である。この効果は、あるシーンにおける光源に関して、物体の形状やその場所に対する非常に強い視覚的役割を果たしている。 ==ハイライトの色== ハイライトはしばしば反射した物体の色ではなく光源の色を反映する。この現象が起こるのは、多くの材質は着色された表面上に薄い透明な材質の層を持っているためである。例えば、プラスチックは透明なポリマーの中に薄色付きビーズを入れて作られているし、人間の皮膚は色の付いた細胞の上に油脂や汗の薄い層を伴っていることが多い。このような材質では、等しく反射したすべてのカラースペクトルを持つハイライトが現れる。金のような金属質な材質上では、ハイライトの色は材質の色を反映する。 ==人物のハイライト== [[眼球]]のハイライト(眼球ハイライト)は、[[人物画]]や[[人物写真]]の印象に大きな影響を与える。そのため人物の撮影では、光源は[[照明]]以外にハイライトの要因としても重要である。光源の位置や強さには照明としての条件が優先されるが、光源の形は照明としては重要でないため、どのような眼球ハイライトを生じさせたいかを考えて選ぶことがある。 また、ハイライトは1枚の写真の中ではほぼ同じである為、これを利用して、複数の人物写真から作った[[合成写真]]を見抜くことができる。 ==微小面== 鏡面反射という言葉は、光が光源から観察者に対して鏡のように、完全に反射することを意味する。鏡面反射は、光の入射方向と観察者の方向とのちょうど間に表面法線がある場合のみ見ることができる。光の入射方向と観察者の方向との角度は2等分されるため、このときの法線の向きは半角方向と呼ばれる。つまり、光源の像が完全にくっきりと反射するので、鏡面反射する表面にはハイライトが現れることを示している。しかしながら、完全な鏡面以外のつやあり物体に現れるのは、ぼやけたハイライトである。 この現象は微小面の存在を仮定することで説明可能である。ここで、物体の表面が、完全になめらかではなく、多くの非常に小さな面から成っていて、それぞれが完全鏡面反射していると仮定する。微小面の法線となめらかな表面の法線との違いの度合いは、表面のなめらかさによって変わる。 ハイライトがぼやける理由はこれではっきりする。表面法線が入射方向と観察者方向のほぼ真ん中を向いているなめらかな物体上の点では、微小面上の点の法線の多くが半角方向にあるので、ハイライトの光は明るく見える。ここで、ハイライトの中心を動かすと、表面法線の向きと半角方向とがずれてしまう。つまり、多くの微小面における法線が半角方向ではなくなってしまう。それでハイライトの輝度は0に落ち込んでしまう。 ==微小面のモデル== 微小面の分布予測には異なるモデルが何種類かある。たいていは微小面の法線は表面の法線の周りに一様に分布すると仮定している。このモデルを'''等方性'''と呼ぶ。もし、微小面が、ある方向に沿ってある選択の元で分布しているならば、その分布モデルは'''異方性'''と呼ぶ。 ===Phong分布=== [[Phongの反射モデル]]では、ハイライトの輝度は、 :<math>k_{spec} = \cos ^n (R, V)\,</math> として計算できる。ここで、''R''は表面での光の鏡面反射ベクトルであり、''V''は視点ベクトルである。定数''n''はPhong指数で、表面の見かけの滑らかさを制御する、ユーザが選択できる値である。 [[Blinn-Phongの陰影モデル]]では、ハイライトの輝度は :<math>k_{spec} = \cos ^n (N, H)\,</math> として計算できる。''N''は滑らかな表面での法線で、''H''は半角(光線ベクトル''L''と視点ベクトル''V''とのちょうど真ん中)である。 これらの方程式は、微小面法線の分布は、角度に関連しておおよそ[[ガウス分布]]ないし[[ピアソン分布|ピアソン2型分布]]に従うことを暗に示している。<ref>Richard Lyon, "Phong Shading Reformulation for Hardware Renderer Simplification", Apple Technical Report #43, Apple Computer, Inc. 1993 [http://dicklyon.com/tech/Graphics/Phong_TR-Lyon.pdf PDF]</ref> 一方、このことは役に立つことは分かるし、信用できる結果を提示してはいるが、物理学を基礎としたモデルではない。 ===ガウス分布=== [[ガウス分布]]を使うことで、もう少しいい微小面分布のモデルを作ることができる。ハイライトの輝度は以下の関数を使うことで計算できる。 :<math>k_{spec} = e^{- \left ( \frac{\angle (N, H)}{m} \right )^2}</math> ここで、''m''は0から1の間の定数で、表面の外見的ななめらかさを表す。<ref>{{cite|last=(ed.) Glassner|first=Andrew S.|title=An Introduction to Ray Tracing|publisher=San Diego: Academic Press Ltd|year=1989|page=148}}</ref> ===ベックマン分布=== 物理学に基づく微小面モデルはベックマン分布である。この関数は非常に正確な結果を返すが、計算コストもそれなりに高価である。 :<math>k_{spec} = \frac{1}{4m^2 \cos ^4 (N, H)} e^{ - \left ( \frac{\tan (N, H)}{m} \right )^2 }</math> ここで''m''は、表面の微小面の平均的な傾きである。<ref>{{cite|last=Foley|last2=''et al''.|title=Computer Graphics: Principles and Practice|publisher=Menlo Park: Addison-Wesley|year=1990|page=764}}</ref> ===Heidrich-Seidel異方性分布=== Heidrich-Seidel分布は単純な異方性分布であり、Phongモデルをベースとしている。これは、小さく平行な溝や糸、たとえばこすれた金属や繻子、髪の毛のようなものを持つ表面のモデルに使われる。この分布を用いたハイライト輝度は、 :<math>k_{spec} = \left [ \sin(L, T) \sin(V, T) - \cos(L, T) \cos(V, T) \right ] ^n</math> である。ここで''n''はPhong指数である。''V''は視点方向である。''L''は光線方向、''T''は表面上の点における平行な溝ないし糸の方向である。 ===Ward異方性分布=== Wardの異方性分布は、異方性制御用として''α<sub>x</sub>''と''α<sub>y</sub>''というユーザが制御可能な2つのパラメータを使う。もしこの2つのパラメータが同じであればこれは等方性ハイライトとなる。この分布における鏡面反射式は、 :<math>k_{spec} = \frac{1}{\sqrt{(N\cdot L)(N \cdot V)}}\frac{N\cdot L}{4\alpha_x\alpha_y} \exp \left[ -2 \frac{\left(\frac{H\cdot X}{\alpha_x}\right)^2+\left(\frac{H\cdot Y}{\alpha_y}\right)^2}{1+(H\cdot N)} \right]</math> もし''N-L''<0か''N-E''<0であれば、鏡面反射項は0になる。すべてのベクトルは単位ベクトルになる。ベクトル''V''は表面上の点から視点へのベクトルである。''L''は表面上の点から光源への方向、''H''は半角方向である。''N''は表面の法線であり、''X''と''Y''は異方性方向を示す法線面上の2つの直行ベクトルである。 ===Cook-Torranceモデル=== Cook-Torranceモデルは :<math>\frac{ DFG }{ E\cdot N }</math> の形の鏡面反射項を使う。 ここで''D''はベックマン分布項 :<math>D=\frac{e^{-\left(\frac{\tan \alpha}{m}\right)^2}}{4 m^2 \cos^4\alpha}</math> であり、''F''は[[フレネル]]項 :<math>F=(1.0+E.N)^\lambda\,</math> である。''G''は幾何減衰項であり、微小面による自己陰影を記述する。これは以下の式、 :<math>G = \min\left(1,\frac{2(H\cdot N)(E\cdot N)}{E\cdot H},\frac{2(H\cdot N)(L\cdot N)}{E\cdot H}\right)</math> で表される。これらの公式では、''E''はカメラないし視点へのベクトルであり、''H''は半角ベクトル、''L''は光源へのベクトル、''N''は法線ベクトル、''α''は''H''と''N''との角度である。 ===複数のモデルを合成する=== もし望むのであれば、異なる分布(普通は同じ分布関数で異なる値''m''と''n''を使うことが多い)の[[加重平均]]を計算することができる。例えば全体的にざらざらであるよりも、ちょっとだけ滑らかでざらざらな箇所をもつ表面をモデリングするのには役に立つ。 == 脚注 == {{脚注ヘルプ}} === 出典 === <references/> ==関連項目== * [[拡散反射]] * [[再帰性反射]] * [[反射]] {{DEFAULTSORT:きようめんはいらいと}} [[Category:光学]] [[Category:照明]] [[Category:コンピュータグラフィックス]] [[Category:絵画技術]] [[Category:撮影技術]]
このページで使用されているテンプレート:
テンプレート:Cite
(
ソースを閲覧
)
テンプレート:脚注ヘルプ
(
ソースを閲覧
)
鏡面ハイライト
に戻る。
ナビゲーション メニュー
個人用ツール
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
ソースを閲覧
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
ツール
リンク元
関連ページの更新状況
ページ情報