fullseye

brdf_lommel_seeliger — 3D render op

使い方

Lommel-Seeliger 反射則(縁まで明るいレゴリス)で法線マップを陰影付けし I/F (H, W) を返す。

Lambert(phong_shade の拡散項)は縁(μ→0)で 0 になるが、Lommel-Seeliger は μ0/(μ0+μ) なので縁でも μ0 のまま明るく、小惑星・月の「平坦な円盤」の見えになる。 w = 単一散乱アルベド。fail-closed(法線形状・w の範囲)。

計算は :func:brdf_shademodel='lommel_seeliger' と同一で、各画素について μ0 = clip(N·L, 0, 1)μ = clip(N·V, 0, 1) を取り、 I/F = π · (w/4π) · μ0/(μ0+μ)(= (w/4)·μ0/(μ0+μ))を返す。μ0 か μ が 0 以下の画素 (光の当たらない面・視線に背く面)は 0。

返り値は float64 (H, W) の I/F。正射影で light == view(位相角 0)なら μ0 = μ で全前景が w/8 の一様値になる。値は [0, w/4) に収まり [0,1] へ 正規化しない。ハイライトを扱いたければ phong_shade、対向効果・粗さまで入れたければ brdf_hapke を使う。

背景知識ガイド(この 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.