ambient_occlusion — 3D render op

• 데이터 종류: mesh → image2d

• 호출: import fullseye as fs; fs.ledger.ambient_occlusion(V, F, pose=None, intrinsics=None, width: 'int' = 256, height: 'int' = 256, n_dirs: 'int' = 64, max_dist: 'float | None' = None, k: 'int' = 3, background: 'float' = 1.0, method: 'str' = 'auto') -> 'np.ndarray'(구현을 직접 호출하려면 import render_ao; render_ao.ambient_occlusion(V, F, pose=None, intrinsics=None, width: 'int' = 256, height: 'int' = 256, n_dirs: 'int' = 64, max_dist: 'float | None' = None, k: 'int' = 3, background: 'float' = 1.0, method: 'str' = 'auto') -> 'np.ndarray', 원장에서 가져오려면 ops3d.get("ambient_occlusion"))

사용법

메시를 AO 맵 이미지 (H, W) [0,1] 로 렌더링해 돌려줍니다.

render3d.render_mesh로 depth / silhouette / 삼각형 id와 원근 보정 무게중심 좌표를 얻고(래스터화와 은면 제거는 그것에 맡기고 재발명하지 않는다), 물체 공간 vertex_occlusion의정점 AO를 그 화소를 덮고 있는 삼각형의 3 정점에서 무게중심 보간하여 구워 넣는다. 물체 밖(silhouette=0)은 background(기본값 1.0=완전 노출). *pose* / *intrinsics* 생략 시에는 render3d.auto_view가 프레이밍한다. fail-closed 검증은 하위 함수를 따른다.

k는 2026-09-02 이후 사용되지 않는다(하위 호환을 위해 남겨 두었다). 그 전까지는카메라 공간에서 최근접 k 정점을 찾아 역거리 가중으로 섞었으나, 정점이 성긴 면에서는다각형 셀이 되어 기사의 hero 영상의 지면에 얼룩 무늬로 나타났다. 무게중심 보간은삼각형 안에서 엄밀한 선형 보간이므로 정점 밀도와 무관하게 연속이며, 인접한 다른 물체의 정점을주워 버리는 일도 없다.

배경 지식 가이드(이 연산자 앞에 있는 물리·규약)

• blender_interop — Blender와 함께 쓰기 — 형상을 만들고 fullseye로 측정(축·단위·정답 데이터의 함정)

참고(샘플 데이터·문헌)

• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.

• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.

실행 가능한 예제(이 연산자를 실제로 호출하는 검증된 샘플)

• render_ao — py -3.11 examples_3d/render_ao.py

타입이 이어지는 다음 연산자(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 · cast_shadow · phong_shade · matcap_shade · supersample_mesh


*Provenance: render_ao.py — 3D 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*

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