- ベストアンサー
スペキュラハイライトとは、どんな法則に基づいて計算されているのですか?
CGでハイライトを簡易的に表現するのに フォン(phong)ハイライトやスペキュラ(specular)ハイライトが使われますが、 どのような法則に基づいて計算されているのかわかりません。 出典だけでも構いませんので、ご指導ください。 現在CGソフトはPov-Rayを使用しております。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Pov-rayのソースコードをチラッと見ると, lighting.cppのなかに以下のような記述があります。 これを見ると2番目のページにあるPhong分布そのもののように思います。 * Calculate the specular reflected color component I_s given by: * * I_s = s * C * (H . N) ^ (1 / r) * * where s : surface's specular reflection coefficient * r : surface's roughness * C : surface's color/light color depending on the metallic flag * N : surface's normal * H : bisection vector between V and L * * The bisecting vector H is calculated by * * H = (L - V) / sqrt((L - V).(L - V)) * * CHANGES * * Sep 1994 : Added improved color calculation for metallic surfaces. [DB]
その他の回答 (2)
- chiezo2005
- ベストアンサー率41% (634/1537)
#1です。 ではこちらはどうでしょう? http://ja.wikipedia.org/wiki/%E9%8F%A1%E9%9D%A2%E3%83%8F%E3%82%A4%E3%83%A9%E3%82%A4%E3%83%88
お礼
度々ありがとうございます。 おそらくspecularも、提示して頂いたページ下の方に書かれているような 微小面モデルの一つだと思うのですが(ここに書かれているものかは不明)、 Pov-rayで使われているspecularがどのモデルなのかを知りたいと思っております。 Pov-ray独自の計算方法といった可能性もありますが、 他のCGソフトでも、specularハイライトのパラメーターがあるようなで、 公に提唱されている、なんらかのモデルがあると予想している次第です。 某ページには、Phongを拡張させ、より現実に近いハイライトとの説明はあったのですが、 詳しく解説されているページを見つけることができませんでした。 Pov-rayの公式ページからも、詳しい情報を見つけることができませんでした(英語能力が低いせいかもしれませんが・・・) 何度もすいません、懲りずに御協力いただけたら幸いです。
- chiezo2005
- ベストアンサー率41% (634/1537)
お礼
回答ありがとうございます。 そうなんです、 phongハイライトはおそらくPhongの反射モデルにもとづいていると思うのですが specularハイライトがどう検索しても見つからなくて困ってます。 引き続き回答よろしくおねがいします。
お礼
返事が遅くなって申し訳ありません ありがとうございます ソースを見ることを忘れてました。 コレを見る限りでは、Blinnモデルのようですね。 いくつかのサイトや、書籍には Specularの記述に "ほとんどPhongと同じだが、 より物理的に近くなる様にわずかに計算方法が変わっている" とあることから、 PhongがPhongモデルを表すなら、 SpecularがBlinnモデルである可能性が高いので ソースの計算式と合わせて、Blinnモデルであるコトに確信が持てそうです。 お世話になりました、またよろしくお願いします。