SlideShare une entreprise Scribd logo
1  sur  21
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 Map 1. 깊이 맵을 이용 라이트의 시점에서 깊이 렌더링(그림자 맵과 동일) 임의의 점의 라이트 거리와 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와 동일) 납득할만한 퀄리티
질문/답

Contenu connexe

Tendances

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

Tendances (20)

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

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

10_Human Skin Rendering
10_Human Skin Rendering10_Human Skin Rendering
10_Human Skin Renderingnoerror
 
GameMath-Chapter 08 고급렌더링
GameMath-Chapter 08 고급렌더링GameMath-Chapter 08 고급렌더링
GameMath-Chapter 08 고급렌더링Mark Choi
 
구세대 엔진 신데렐라 만들기 최종본 유트브2
구세대 엔진 신데렐라 만들기 최종본 유트브2구세대 엔진 신데렐라 만들기 최종본 유트브2
구세대 엔진 신데렐라 만들기 최종본 유트브2Kyoung Seok(경석) Ko(고)
 
Devtree lightmapping unity5_2_1stday
Devtree lightmapping unity5_2_1stdayDevtree lightmapping unity5_2_1stday
Devtree lightmapping unity5_2_1stdaySangYun Yi
 
Game Visual Art Technologies
Game Visual Art TechnologiesGame Visual Art Technologies
Game Visual Art TechnologiesSangYun Yi
 
Lighting in Stingray
Lighting in StingrayLighting in Stingray
Lighting in StingrayJaehoon Lee
 

Similaire à 11_SH를 이용한 실시간 투명 근사법 (6)

10_Human Skin Rendering
10_Human Skin Rendering10_Human Skin Rendering
10_Human Skin Rendering
 
GameMath-Chapter 08 고급렌더링
GameMath-Chapter 08 고급렌더링GameMath-Chapter 08 고급렌더링
GameMath-Chapter 08 고급렌더링
 
구세대 엔진 신데렐라 만들기 최종본 유트브2
구세대 엔진 신데렐라 만들기 최종본 유트브2구세대 엔진 신데렐라 만들기 최종본 유트브2
구세대 엔진 신데렐라 만들기 최종본 유트브2
 
Devtree lightmapping unity5_2_1stday
Devtree lightmapping unity5_2_1stdayDevtree lightmapping unity5_2_1stday
Devtree lightmapping unity5_2_1stday
 
Game Visual Art Technologies
Game Visual Art TechnologiesGame Visual Art Technologies
Game Visual Art Technologies
 
Lighting in Stingray
Lighting in StingrayLighting in Stingray
Lighting in Stingray
 

Plus de noerror

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

Plus de noerror (20)

15_TextureAtlas
15_TextureAtlas15_TextureAtlas
15_TextureAtlas
 
11_웹서비스활용
11_웹서비스활용11_웹서비스활용
11_웹서비스활용
 
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
 
NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현
 
KCGS11_실시간 피사계 심도 렌더링 개선 기법
KCGS11_실시간 피사계 심도 렌더링 개선 기법KCGS11_실시간 피사계 심도 렌더링 개선 기법
KCGS11_실시간 피사계 심도 렌더링 개선 기법
 
11_통계 자료분석 입문
11_통계 자료분석 입문11_통계 자료분석 입문
11_통계 자료분석 입문
 
11_빠른 개발 가능한 레벨 편집 시스템
11_빠른 개발 가능한 레벨 편집 시스템11_빠른 개발 가능한 레벨 편집 시스템
11_빠른 개발 가능한 레벨 편집 시스템
 
ICON08_게임 애니메이션 최적화 기법
ICON08_게임 애니메이션 최적화 기법ICON08_게임 애니메이션 최적화 기법
ICON08_게임 애니메이션 최적화 기법
 
08_Marching Cube Terrains
08_Marching Cube Terrains08_Marching Cube Terrains
08_Marching Cube Terrains
 
08_게임 물리 프로그래밍 가이드
08_게임 물리 프로그래밍 가이드08_게임 물리 프로그래밍 가이드
08_게임 물리 프로그래밍 가이드
 
08_플래시 맛보기
08_플래시 맛보기08_플래시 맛보기
08_플래시 맛보기
 
08_애니메이션고등학교 게임과 특강
08_애니메이션고등학교 게임과 특강08_애니메이션고등학교 게임과 특강
08_애니메이션고등학교 게임과 특강
 
08_Wxwidgets 소개
08_Wxwidgets 소개08_Wxwidgets 소개
08_Wxwidgets 소개
 
07_PhysX 강체물리 입문
07_PhysX 강체물리 입문07_PhysX 강체물리 입문
07_PhysX 강체물리 입문
 
07_스케일폼 소개
07_스케일폼 소개07_스케일폼 소개
07_스케일폼 소개
 
07_Visual Shader Editor
07_Visual Shader Editor07_Visual Shader Editor
07_Visual Shader Editor
 
06_게임엔진 활용팁
06_게임엔진 활용팁06_게임엔진 활용팁
06_게임엔진 활용팁
 
06_게임엔진구성
06_게임엔진구성06_게임엔진구성
06_게임엔진구성
 
06_자동차물리입문(1)
06_자동차물리입문(1)06_자동차물리입문(1)
06_자동차물리입문(1)
 
06_앰비언트어클루전 소개
06_앰비언트어클루전 소개06_앰비언트어클루전 소개
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 Map 1. 깊이 맵을 이용 라이트의 시점에서 깊이 렌더링(그림자 맵과 동일) 임의의 점의 라이트 거리와 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와 동일) 납득할만한 퀄리티