light op• 데이터 종류: image2d → image2d
• 호출: import fullseye as fs; fs.ledger.shadow_cast_2d(occluder, x, y, steps=None, softness=0.0)(구현을 직접 호출하려면 import gfx2d; gfx2d.shadow_cast_2d(occluder, x, y, steps=None, softness=0.0), 원장에서 가져오려면 opsgfx2d.get("shadow_cast_2d"))
(x, y) 의 점광원에서 본 각 화소의 가시성을 image2d 로.
> 아래 상세 설명은 원문입니다 —— 요약과 제목은 번역되어 있습니다.
Ray-marches the segment from each pixel to the light, sampling occluder (2-D, [0, 1], 1 = fully blocking) at steps points with nearest lookup, and returns 1 - max(occluder along the ray). For a binary occluder that is exactly 0 or 1 — no tolerance involved.
The sample excludes the pixel itself, so an occluder is lit on its own light-facing surface and casts behind itself.
softness > 0 blurs the visibility map by that sigma afterwards, which is a penumbra-shaped lie rather than a penumbra: a real one widens with distance from the occluder. It is offered because it looks right and named so it cannot be mistaken for physics.
steps defaults to the image diagonal, which samples about once per pixel. An occluder thinner than the step spacing can be missed; that is the honest limit of a fixed-step march and the reason steps is an argument.
• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.
• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.
• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.
• gfx2d_scene — py -3.11 examples/gfx2d_scene.py
image2d 를 입력으로 받는 것)dither · raw_black_level · raw_dead_pixel_mask · raw_dead_pixel_correct · lens_shading_gain · lens_shading_correct · raw_apply_gains · raw_demosaic_bilinear
light)radial_light · light_mask · normal_map_decode · normal_map_shade
*Provenance: gfx2d.py — GFX2D 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.