• ベストアンサー

スペキュラハイライトとは、どんな法則に基づいて計算されているのですか?

CGでハイライトを簡易的に表現するのに フォン(phong)ハイライトやスペキュラ(specular)ハイライトが使われますが、 どのような法則に基づいて計算されているのかわかりません。 出典だけでも構いませんので、ご指導ください。 現在CGソフトはPov-Rayを使用しております。

質問者が選んだベストアンサー

  • ベストアンサー
  • chiezo2005
  • ベストアンサー率41% (634/1537)
回答No.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]

montyakku
質問者

お礼

返事が遅くなって申し訳ありません ありがとうございます ソースを見ることを忘れてました。 コレを見る限りでは、Blinnモデルのようですね。 いくつかのサイトや、書籍には Specularの記述に "ほとんどPhongと同じだが、 より物理的に近くなる様にわずかに計算方法が変わっている" とあることから、 PhongがPhongモデルを表すなら、 SpecularがBlinnモデルである可能性が高いので ソースの計算式と合わせて、Blinnモデルであるコトに確信が持てそうです。 お世話になりました、またよろしくお願いします。

その他の回答 (2)

  • chiezo2005
  • ベストアンサー率41% (634/1537)
回答No.2
montyakku
質問者

お礼

度々ありがとうございます。 おそらくspecularも、提示して頂いたページ下の方に書かれているような 微小面モデルの一つだと思うのですが(ここに書かれているものかは不明)、 Pov-rayで使われているspecularがどのモデルなのかを知りたいと思っております。 Pov-ray独自の計算方法といった可能性もありますが、 他のCGソフトでも、specularハイライトのパラメーターがあるようなで、 公に提唱されている、なんらかのモデルがあると予想している次第です。 某ページには、Phongを拡張させ、より現実に近いハイライトとの説明はあったのですが、 詳しく解説されているページを見つけることができませんでした。 Pov-rayの公式ページからも、詳しい情報を見つけることができませんでした(英語能力が低いせいかもしれませんが・・・) 何度もすいません、懲りずに御協力いただけたら幸いです。

  • chiezo2005
  • ベストアンサー率41% (634/1537)
回答No.1
montyakku
質問者

お礼

回答ありがとうございます。 そうなんです、 phongハイライトはおそらくPhongの反射モデルにもとづいていると思うのですが specularハイライトがどう検索しても見つからなくて困ってます。 引き続き回答よろしくおねがいします。

関連するQ&A