4. 장점?
• Cost가 geometry complexity 와 무관
• 빠른 voxelization 기술이 많이 존재
• Screen-space GI 의 artifact 제거
– Blocker나 sender가 화면에서 사라지면 해당 lighting
효과도 사라지는 현상
6. Voxelization
• 종류
– Binary voxelization
• Cell이 Geometry를 표현 하는지 아닌지에 대한 정보만 저장
– Multi-valued voxelization
• Material이나 normal등의 추가정보도 cell에 함께 저장
– Boundary voxelization
• Object의 surfaces만 표현
– Solid voxelization
• Object의 내부까지 채워진 형태로 표현
7. Voxelization
• 본 논문에선…
– Texture atlas라는 기법을 이용한 voxelizaiton 적용
• Boundary voxelization의 일종
• Binary(2D Tex) / multi-valued(3D Tex) 모두 적용 가능
• Obj의 형태에 제한이 없음
• 원본 Obj에 미리 uv mapping이 되어있어야 함
9. Texture atlas
• Texture atlas 란?
– 여러 sub texture 들을 포함한 큰 texture
– Rendering 시 Draw call 감소
Pros.
– Texture state switching 감소
– 사용을 위한 uv의 변경이 필요
Cons.
– Texture tiling 불가
12. Texture atlas
• 추가 정보
– Atlas texture에 해당 pixel의 original world position
추가
• Voxel이 생성될 위치
13. Voxel grid
• Mip-map의 level에 따라 resolution은 변하지만
depth 수(bit 수)는 변하지 않음
– Depth 보존 -> 정확한 depth traversal
14. Voxel grid
• 생성
– Atlas texture의 texel을 읽어옴
– 해당 texel의 world pos.를 grid에서의 위치로
projection
– 3D좌표에서 계산해 낸 depth에 대응하는 bit 을 1로
setting
15. Voxel grid
• 생성
– Mip-map : 주변 4-texel의 OR 연산으로 생성
• Mip-map을 이용한 hierarchical traversal을 위해
resolution
16. Voxelization performance
• Voxelization
Voxel-grid resolution Time (ms) Vertices Atlas resolution
642 x 128 0.21 24k 2242
1282 x 128 0.27 65k 3682
2562 x 128 0.60 285k 7682
5122 x 128 1.22 790k 12802
17. Ray-voxel intersection test
• Indirect lighting 시 필요
– 각 voxel 별로 sample direction에 대한 one bound
voxel 계산
• Octree 탐색과 유사
18. Ray-voxel intersection test
1. Traversal start : scene에서 ray의 시작지점
2. Start voxel을 포함하는 texel의 BB 생성
3. BB와 ray의 충돌검사로 ray의 시작/끝 점 계산
= ray bitmask
4. Ray bitmask 와 voxel의 bitmask와의 재귀적 충
돌검사
19. Ray-voxel intersection test
– 검사조건
• 충돌(O) : Mip-map--
• 충돌(X) : Mip-map++,
Ray의 시작 점을 BB와의 마지막 충돌 점으로 이동
– 종료조건
• Ray의 길이 == 0 || hit point 존재
– 시작 mip-map level : 사용자 지정 가능
27. Near-field indirect illumination
• Reflective Shadow Map(RSM) 생성
– Light space 에서 보이는 pixel이 one-bound light
source
– Light position에서의 각 픽셀의 Direct Luminance,
position, normal 값 저장
28. Near-field indirect illumination
• For Indirect light
– Receiver x에서 최대 반지름 r에 대해 N개의 Ray 계산
– ray당 1pass씩 여러 패스로 계산하는 것이 속도 향상
– Ray별로 first intersection point 계산
• Intersection voxel에서 direct radiance 𝐿i 계산
• back-proj.에 의해 RSM에서의 Hit point의 𝐿i 값 추출 가능
29. Near-field indirect illumination
• 𝐿i 의 validation 조건
– Hit-point의 3D 위치와 RSM상의 위치의 거리 < ε
• ε = max(υ, s/cos(α) * z/znear)
• υ: voxelization discretization
• s: RSM pixel size
• α: normal orientation