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

More Related Content

PPTX
Uncharted4 part1
PPTX
리얼타임 렌더링 - 조명 입문편 -
PPTX
Gamma and linear color-space
PDF
언차티드4 테크아트 파트2 mipFog
PPT
GameMath-Chapter 07 조명
PPTX
제노블레이도 2 ray marching을사용한 구름 표현
PPTX
Convolution 종류 설명
PDF
언차티드4 테크아트 파트4 Special Case Materials - Moss & Wetness & Glass
Uncharted4 part1
리얼타임 렌더링 - 조명 입문편 -
Gamma and linear color-space
언차티드4 테크아트 파트2 mipFog
GameMath-Chapter 07 조명
제노블레이도 2 ray marching을사용한 구름 표현
Convolution 종류 설명
언차티드4 테크아트 파트4 Special Case Materials - Moss & Wetness & Glass

What's hot (20)

PPTX
[0529 박민근] 전역조명(global illumination)
PDF
[데브루키] Color space gamma correction
PDF
언차티드4 테크아트 파트3 MicroShadowBRDF Term
PPTX
크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)
PPTX
Deferred decal
PDF
Real-Time Global Illumination Techniques
PPTX
니시카와젠지의 3 d게임 팬을 위한「gravity daze」그래픽스 강좌
PDF
언차티드4 테크아트 파트1 톤맵핑&색보정
PPTX
D2 Hdr
PDF
[GPU Gems3] Chapter 28. Practical Post Process Depth Of Field
PDF
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근
PPT
[0618 석재호]용기에담긴액체를위한굴절매핑
PPT
[0604 석재호]광택성사전필터링
PPTX
120413 making noises
PPTX
Data Visualization and t-SNE
PPTX
High dynamic range
PDF
06_HDR 소개
PDF
Motion blur
PDF
09_motionblur
PPTX
[1023 박민수] 깊이_버퍼_그림자_1
[0529 박민근] 전역조명(global illumination)
[데브루키] Color space gamma correction
언차티드4 테크아트 파트3 MicroShadowBRDF Term
크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)
Deferred decal
Real-Time Global Illumination Techniques
니시카와젠지의 3 d게임 팬을 위한「gravity daze」그래픽스 강좌
언차티드4 테크아트 파트1 톤맵핑&색보정
D2 Hdr
[GPU Gems3] Chapter 28. Practical Post Process Depth Of Field
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근
[0618 석재호]용기에담긴액체를위한굴절매핑
[0604 석재호]광택성사전필터링
120413 making noises
Data Visualization and t-SNE
High dynamic range
06_HDR 소개
Motion blur
09_motionblur
[1023 박민수] 깊이_버퍼_그림자_1
Ad

Similar to 11_SH를 이용한 실시간 투명 근사법 (20)

PDF
[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기
PDF
Brdf기반 사전정의 스킨 셰이더
PPTX
Microfacet brdf
PPTX
Cheap realisticskinshading kor
PDF
언리얼 엔진 4용 커스텀 천 재질
PPT
Devrookie GI 20111008
PPTX
구세대 엔진 신데렐라 만들기 최종본 유트브2
PDF
물리기반렌더링 알레고리드믹 한국어 번역
PDF
[shaderx5] 4.6 Real-Time Soft Shadows with Shadow Accumulation
PPTX
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다 공개용
PDF
Valient killzone ps4 lighting
PPTX
Lighting model
PDF
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
PDF
[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기
PPTX
Fast skin shading
PPTX
9강 camera advanced light2
PPTX
물리 기반 셰이더의 이해
PPTX
물은 왜 물처럼 보이는 걸까?
PPTX
10_Human Skin Rendering
PPT
GameMath-Chapter 08 고급렌더링
[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기
Brdf기반 사전정의 스킨 셰이더
Microfacet brdf
Cheap realisticskinshading kor
언리얼 엔진 4용 커스텀 천 재질
Devrookie GI 20111008
구세대 엔진 신데렐라 만들기 최종본 유트브2
물리기반렌더링 알레고리드믹 한국어 번역
[shaderx5] 4.6 Real-Time Soft Shadows with Shadow Accumulation
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다 공개용
Valient killzone ps4 lighting
Lighting model
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기
Fast skin shading
9강 camera advanced light2
물리 기반 셰이더의 이해
물은 왜 물처럼 보이는 걸까?
10_Human Skin Rendering
GameMath-Chapter 08 고급렌더링
Ad

More from noerror (20)

PPTX
15_TextureAtlas
PPTX
11_웹서비스활용
PDF
NDC08_실시간비주얼그래프편집
PDF
NDC12_Lockless게임서버설계와구현
PPTX
KCGS11_실시간 피사계 심도 렌더링 개선 기법
PDF
11_통계 자료분석 입문
PPTX
11_빠른 개발 가능한 레벨 편집 시스템
PDF
ICON08_게임 애니메이션 최적화 기법
PDF
08_Marching Cube Terrains
PDF
08_게임 물리 프로그래밍 가이드
PDF
08_플래시 맛보기
PDF
08_애니메이션고등학교 게임과 특강
PDF
08_Wxwidgets 소개
PDF
07_PhysX 강체물리 입문
PDF
07_스케일폼 소개
PDF
07_Visual Shader Editor
PDF
06_게임엔진 활용팁
PDF
06_게임엔진구성
PDF
06_자동차물리입문(1)
PDF
06_앰비언트어클루전 소개
15_TextureAtlas
11_웹서비스활용
NDC08_실시간비주얼그래프편집
NDC12_Lockless게임서버설계와구현
KCGS11_실시간 피사계 심도 렌더링 개선 기법
11_통계 자료분석 입문
11_빠른 개발 가능한 레벨 편집 시스템
ICON08_게임 애니메이션 최적화 기법
08_Marching Cube Terrains
08_게임 물리 프로그래밍 가이드
08_플래시 맛보기
08_애니메이션고등학교 게임과 특강
08_Wxwidgets 소개
07_PhysX 강체물리 입문
07_스케일폼 소개
07_Visual Shader Editor
06_게임엔진 활용팁
06_게임엔진구성
06_자동차물리입문(1)
06_앰비언트어클루전 소개

11_SH를 이용한 실시간 투명 근사법

  • 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 Map1. 깊이 맵을 이용라이트의 시점에서 깊이 렌더링(그림자 맵과 동일)임의의 점의 라이트 거리와 TSM에 저장된 거리 차이2. 두 채널을 이용R에는 거리, G는 Far에서의 거리를 Write블랜드는Min결과적으로는 가까운 거리는 R, 먼 거리는 1-G두 값 차이를 이용하여 깊이 계산http://www.gamerendering.com/2009/09/25/render-thickness/
  • 6. 깊이 텍스처를 이용단점렌더링 패스 증가로 인한 성능 이슈해상도로 인한 실루엣 알리아싱 문제Convex한 물체에만 유효
  • 7. DICE(GDC2011)GDC2011:Approximating Translucencyfor a Fast, Cheap and Convincing Subsurface Scattering Look쉽고 빠른 근사가 목표
  • 8. DICE(GDC2011)표면의 투과도를 미리 Bake텍스처 스페이스에서 계산 (픽셀 별로)표면의 노멀 반대 방향으로Ambient Occlusion 계산하는 방식으로 계산값을 인버스 하면 투명도의 근사값을 구함
  • 9. DICE(GDC2011)재질의 특성에 맞도록 투과를 계산표면의 투과도를 곱해서 최종 투과 라이트 값을 구함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계수 구하기정확한 깊이 값을 구하는 게 목표는 아니므로 적당히 노멀라이징실제로는 깊이 보다는 투명도가 필요한 것
  • 18. 장점빛의 방향에 따른 투명도가 적용된다
  • 19. 장점스키닝 객체에도 적용이 가능하다빛의 방향을 탄젠트 스페이스 좌표로 옮기면 끝애니메이션 객체에도 적용 가능하다어클루더가 움직이기 때문에 물리적으로 올바르지 않지만 방향성을 정상적이기 때문에 납득할 만한 품질
  • 20. 장점버텍스셰이더에서 간단한 SH만으로 계산 가능저사양에서도 전혀 부담 없는 연산 비용Convex가 아닌 객체도 쉽게 구할 수 있음GDC2011:Dice도 같은 조건이지만 convex 언급한 것은 AO를 통해서 굽는 방식적인 부분 때문으로 TSM의 한계와는 다른 이슈(현 방식의 SH 상수항만 사용하면 Dice와 동일)납득할만한 퀄리티