1. SH를 이용한 실시간 투명 근사Fast Real-time Translucent Rendering 김성익(noerror@softnette.com) 소프트네트 2011/05/29
2. 투명 재질 빛이 표면에서 전부 반사하거나 통과하지 않고 일부 내부에서 산란하여 통과하는 재질 http://www.cs.virginia.edu/~rw2p/cs647/project.htm
3. BTDF 일반적인 BRDF에는 미포함BSSRDF (BRDF 내하 산란 항을 추가한 것으로 투과와는 성격이 약간 다름) 투과 속성을 가진 BTDF항 추가 투과도가 필요재질 내부 특성이 균일하다고가정하면 깊이가 필요 Wikipedia:Bidirectional_scattering_distribution_function
4. 실시간 투명 렌더링 깊이 값을 근사하여 투명도 결정 깊이 텍스처를 이용 텍스처 스페이스 SH를 이용한 근사법 제안
5. 깊이 텍스처를 이용 Translucent Shadow Map 1. 깊이 맵을 이용 라이트의 시점에서 깊이 렌더링(그림자 맵과 동일) 임의의 점의 라이트 거리와 TSM에 저장된 거리 차이 2. 두 채널을 이용 R에는 거리, G는 Far에서의 거리를 Write 블랜드는Min 결과적으로는 가까운 거리는 R, 먼 거리는 1-G 두 값 차이를 이용하여 깊이 계산 http://www.gamerendering.com/2009/09/25/render-thickness/
6. 깊이 텍스처를 이용 단점 렌더링 패스 증가로 인한 성능 이슈 해상도로 인한 실루엣 알리아싱 문제 Convex한 물체에만 유효
10. Spherical Harmonics 구면 조화함수 컨셉은푸리에 변환이나 라플라스 변환 같은 값의 도메인을 이동하는 계열과 유사하게 생각하면 됨 계수가 많을 수록 입력 값과 유사해짐낮은 주파수 영역대가 근사값에 큰 역할을 함 압축하는 의도라고 생각해도 크게 틀리지 않음
11. Spherical Harmonics 구면 조화함수 그래픽스 응용 입력 구형 이미지 => SH 계수 SH계수 => 구형이미지 계수가 많다면 입력 이미지를 복원하겠지만, 전역광의 경우 의도적으로 블러링하여 사용하기 때문에 그냥 적은 개수의 계수를 사용하면 블러링한 결과와 동일 GOOD 연산이 가볍고 적은 개수의 계수로도 훌륭한 품질의 결과물이 나와서 실시간 렌더링에서 많이 사용 http://www.cs.berkeley.edu/~ravir/
12. SH를 이용한 투명 재질 컨셉: SH를 이용하여 방향성 있는 투명도를 구하자 절차 깊이 계산이 필요한 위치에서 방향 별 깊이 값을 연산(불투명도) SH계수를 이용하여 압축 (손실은 있으나 내부 산란 특성을 고려하면-투명도의 저주파성- 오히려 블러링 생략의 이득) 렌더링시노멀을 이용해 방향성 있는 투명도 얻기
13. SH를 이용한 투명 재질 http://www.youtube.com/watch?v=_UMpeSEAwik
14. SH를 이용한 투명 재질 버텍스 단위 계산 퍼 픽셀로 계산하기 위해선 float 텍스처 여러 장이 필요함 투명 재질의 내부 산란 특성 때문에 높은 해상도의 데이터는 불필요 버텍스의스트림에버텍스의SH계수를 전달 (3개의 texture coordinate가 필요)
15. SH를 이용한 투명 재질 버텍스에서 전 방향의 두께를 구함 빛의 입사에 따라 깊이 값이 달라지므로 임의의 개수의 ray를 발사해서 구하기 필요하다면 다층의 길이를 합산 가능 단순 합산이 물리적으로는 맞지 않을 수도 있으나 convex하지 않은 객체도 근사 가능
16. SH를 이용한 투명 재질 대 부분 노멀 방향에서 좌우로 퍼지는 모양을 하고 있음 탄젠트 스페이스로 계산 값의 엔트로피 감소 SH계수로 변환 시 좀 더 손실이 적음
17. SH를 이용한 투명 재질 계산한 깊이 값으로 SH계수 구하기 정확한 깊이 값을 구하는 게 목표는 아니므로 적당히 노멀라이징 실제로는 깊이 보다는 투명도가 필요한 것
19. 장점 스키닝 객체에도 적용이 가능하다 빛의 방향을 탄젠트 스페이스 좌표로 옮기면 끝 애니메이션 객체에도 적용 가능하다 어클루더가 움직이기 때문에 물리적으로 올바르지 않지만 방향성을 정상적이기 때문에 납득할 만한 품질
20. 장점 버텍스셰이더에서 간단한 SH만으로 계산 가능 저사양에서도 전혀 부담 없는 연산 비용 Convex가 아닌 객체도 쉽게 구할 수 있음 GDC2011:Dice도 같은 조건이지만 convex 언급한 것은 AO를 통해서 굽는 방식적인 부분 때문으로 TSM의 한계와는 다른 이슈(현 방식의 SH 상수항만 사용하면 Dice와 동일) 납득할만한 퀄리티