optics op• 데이터 종류: vector × normals → normals
• 호출: import fullseye as fs; fs.ledger.reflect(d, n)(구현을 직접 호출하려면 import match3d; match3d.reflect(d, n), 원장에서 가져오려면 ops3d.get("reflect"))
입사 방향 d 를 법선 n 의 면에서 정반사. r = d − 2(d·n)n.
d, n은 내부에서 단위화하므로(길이는 상관없음) 반환값 r도 단위 벡터. 마지막 축을벡터로 간주하므로 (3,)이든 (N,3) 배치든 동작한다(2-D의 (2,)도 가능). n의방향은 상관없다(n과 −n으로 같은 r). d는 "면으로 향하는" 방향(광선의 진행 방향)으로넘긴다. 영벡터는 1e-12로 나누어 0인 채로 반환된다(예외는 나지 않는다).
용도: normal_from_reflection의 역문제, 경면 렌더의 시선 추적(refract와 짝).
• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.
• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.
• sensor_seg — py -3.11 examples_3d/sensor_seg.py
• snell_refraction — py -3.11 examples_3d/snell_refraction.py
normals 를 입력으로 받는 것)icp_point2plane · compute_fpfh · shot_descriptor · fuse_to_voxel · refract · normal_consistency · ransac_cylinder · orient_normals
optics)refract · fresnel_reflectance · normal_from_reflection · snell_angle
*Provenance: match3d.py — 3D 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.