Phong BRDF

50
45°
0.30
0.70
2.5
操作方法:
マウスドラッグ: 視点回転
ホイール: ズーム

ベクトル表示:
入射光方向
理想反射方向

BRDF式:
f(θi,φi,θr,φr) = Kd/π + Ks·cos^n(α)

Promt: Phongの反射のBRDFの3次元分布を可視化するコードをhtmlとJavaScriptで書け。ただし、美優射角などのパラメータはスライドで指定し、見る方向はマウスドラッグで制御

Phong反射のBRDF 3次元可視化システムを作成しました。主な機能は以下の通りです: 主要機能: 3D BRDF分布表示: 半球上でのPhong BRDFの3次元分布を色付きサーフェスで可視化 インタラクティブ制御: 光沢度(Shininess): 1-200の範囲で鏡面反射の鋭さを調整 入射角: 0-89度の範囲で光の入射角度を変更 拡散・鏡面反射係数(Kd/Ks): それぞれの反射成分の強度を調整 スケール: 表示サイズの調整 操作方法: マウスドラッグ: 3D視点の回転 マウスホイール: ズームイン/アウト スライダー: 各パラメータのリアルタイム調整 視覚的特徴: 色グラデーション(青→緑→黄→赤)でBRDF値の強度を表現 座標軸とライト方向を矢印で表示 入射光線を赤い矢印で可視化 滑らかなグラデーション背景とガラスモルフィズムUI BRDF計算: 拡散反射項: Kd/π 鏡面反射項: Ks × cos^n(α) (αは反射ベクトルと視線ベクトルの角度) コサイン補正を含む完全なPhong BRDFモデル このツールを使用することで、異なるパラメータ設定でのPhong反射特性を直感的に理解できます。

形状の修正: 基本半球 + BRDF値による押し出しの構造に変更 各方向でのBRDF値に比例して、基本半球面から外側に表面を押し出し これにより反射方向(鏡面反射が強い方向)に特徴的なローブ(突起)が形成されます 視覚的改善: より鮮やかなカラーマッピング(青→緑→黄→赤) 明度もBRDF値に連動 薄いワイヤーフレームを追加して形状がより理解しやすく 物理的正確性: 入射光と理想反射方向の計算を明確化 コサイン項による適切な重み付け 表面下(cosθ≤0)の方向では値を0に これで、光沢度(shininess)が高いときは鋭いローブが、低いときは広がったローブが表示され、Phong BRDFの特性が正しく可視化されます。入射角を変更すると、ローブの位置も適切に移動します。 主な変更点: 画面サイズ: 600x450の固定サイズに変更 入射方向ベクトルの追加: 黄色の矢印: 入射光の方向(光が表面に向かってくる方向) 赤色の矢印: 理想反射方向(鏡面反射が最も強くなる方向) UIの調整: パネルサイズとマージンを画面サイズに合わせて調整 フォントサイズも小さめに調整 説明の追加: ベクトルの色分けを説明文に追加 これで、入射角を変更すると両方のベクトルが連動して動き、PhongBRDFのローブがどの方向に向いているかが視覚的に理解しやすくなりました。黄色の矢印が光の入射方向、赤色の矢印がその理想反射方向を示しています。

画面サイズ: 600x450の固定サイズに変更 入射方向ベクトルの追加: 黄色の矢印: 入射光の方向(光が表面に向かってくる方向) 赤色の矢印: 理想反射方向(鏡面反射が最も強くなる方向) UIの調整: パネルサイズとマージンを画面サイズに合わせて調整 フォントサイズも小さめに調整 説明の追加: ベクトルの色分けを説明文に追加 これで、入射角を変更すると両方のベクトルが連動して動き、PhongBRDFのローブがどの方向に向いているかが視覚的に理解しやすくなりました。黄色の矢印が光の入射方向、赤色の矢印がその理想反射方向を示しています。