fullseye

brdf_hapke — 3D render op

使い方

Hapke 反射則(対向効果 + 多重散乱 + 巨視的粗さ θ̄)で法線マップを陰影付けし I/F (H, W) を返す。

既定値はイトカワの S 型典型値(Kitazato et al. 2008): w=0.42, g=−0.35, B0=0.87, h=0.01, θ̄=26°。位相角は light/view から一定値として求める(平行光・正射影近似)。 fail-closed: 各パラメータの範囲外・法線形状不正は ValueError

:func:brdf_shademodel='hapke' の薄い包みで、各画素の μ0 = clip(N·L,0,1)μ = clip(N·V,0,1) と、画面全体で一定の位相角 g = arccos(L·V)(ラジアン)を :func:hapke_reflectance に渡し、I/F = π·r を返す。r(w/4π)·μ0e/(μ0e+μe)·[(1+B(g))P(g) + H(μ0e)H(μe) − 1]·S で、多重散乱項 H は常に有効。

返り値は float64 (H, W) の I/F で、[0,1] に正規化しない(負値は 0 に切る)。 影(他の面による遮蔽)は含まないので、必要なら cast_shadow / shadow_raycast の 可視性マップを掛ける(render_regolithshadow_raycast と組み合わせる)。 μ0 か μ が 0 以下の画素は 0。

背景知識ガイド(この op の手前にある物理・規約)

参考(サンプルデータ・文献)

実行できる例(この op を実際に呼ぶ検証済みサンプル)

型が繋がる次の op(image2d を入力に取れる)

fuse_to_voxel · fit_poly_surface · eval_poly_surface · surface_form_error · background_flatten · polar_unwrap · fit_zernike · matcap_shade

同カテゴリ(render)

project_points · render_point_depth · render_volume_projection · render_shaded · ambient_occlusion · cast_shadow · phong_shade · matcap_shade


Provenance: render_shade.py — 3D operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.