SlideShare a Scribd company logo
1 of 38
환경 매핑 2011/02/12 박민수(엠에스박) Devrookie
목차 환경 매핑 반사 환경 매핑 굴절 환경 매핑 프레넬 효과와 색 분광 기타 아이디어 Q&A
환경 매핑 환경 매핑은 오브젝트 주변의 배경들이 반사된 모습을 표현하는 기법이다. 이 기법을 통해 크롬(금속)과 같아 보이는 효과를 얻을 수 있다.
환경 매핑 이론상 오브젝트 주변의 모든 물체를 무한한 거리까지 처리해야 한다. 오브젝트 주변 모든 방향에 대해서 반사되는 부분을 구해야 한다.
환경 매핑 큐브맵 텍스쳐6장을 정육면체로 보고 처리할 수 있게  인코딩 되어 있는 맵
환경 매핑 큐브맵 3D 개념이 들어간 텍스쳐 이기 때문에 텍스쳐 좌표 또한 3D 좌표이다. <s , t , r> 방향벡터
환경 매핑 큐브맵 아래 그림과 같이 중심점에서 정육면체에 대해서 방향벡터를 구하고 그 방향벡터를 타고 가다가 만나는 정육면체 부분의 텍셀을 얻어온다.
환경 매핑 큐브맵 정확한 계산을 위해서는 동적으로 움직이는 물체가 있다면 큐브맵을 갱신해 주어야 한다. 완벽한 계산이 필요없다면 주변 배경정도를 미리 큐브맵으로 뽑아놓고 사용하면 된다.
환경 매핑 큐브맵 오브젝트에 반사되는 벡터를 구하고 이 벡터를 큐브맵의텍셀을 얻어오는 좌표로 이용한다. 텍셀을 얻어올 때는 직접 계산해도 되고 HLSL에 있는 texCUBE()를 이용해도 된다.
환경 매핑 반사 벡터
환경 매핑 알아둘 것 기본적인 환경 매핑의 이론은 주변 환경만 매핑시키고 자기 자신을 매핑시키지 못한다. 평평한 오브젝트 보다는 커브가 있는 오브젝트에 더 효과가 좋다. 환경 맵 하나를 이용해서 다양한 물체들에 환경 매핑을 시켜도 사람들은 잘 알아차리지 못한다.
반사 환경 매핑 반사 벡터를 구해서 환경 매핑을 하는 기법
반사 환경 매핑 버텍스쉐이더에서 카메라에서 오브젝트를 바라봤을 때의 반사 벡터를 구해서 픽셀 쉐이더에 넘겨준다. 픽셀 쉐이더에서는 기존 Diffuse맵과 넘어온 반사 벡터를 이용해 구한 환경 맵의텍셀을 구해 적절히 합성해준다.
반사 환경 매핑 버텍스쉐이더 오브젝트의 위치와 조명, Diffuse 텍스쳐의 좌표를 구하고 반사벡터를 구해서 넘겨준다.
반사 환경 매핑 버텍스쉐이더 월드 좌표상의 위치와 노말벡터를 구하고 카메라 위치에서 오브젝트를 향하는 벡터와 노말 벡터를 이용해 반사벡터를 구한다. HLSL의 reflect(Incident, Normal) 사용.
반사 환경 매핑 픽셀 쉐이더 큐브맵과Diffuse맵에서텍셀을 얻어오고 적절히 선형 보간해주어서 결과값을 얻어낸다.
반사 환경 매핑
굴절 환경 매핑 굴절 벡터를 구해서 환경 매핑을 하는 기법
굴절 환경 매핑 굴절 빛이 서로 다른 매질의 경계선을 지나갈 때 빛이 지나가는 속도의 차이가 생겨 발생하는 현상
굴절 환경 매핑 스넬의 법칙
굴절 환경 매핑 스넬의 법칙
굴절 환경 매핑 스넬의 법칙
굴절 환경 매핑 굴절 벡터 구하기
굴절 환경 매핑 굴절률
굴절 환경 매핑 굴절 굴절된 벡터를 구해서 큐브맵의텍셀을 구할 때 이용한다.
굴절 환경 매핑 굴절 제대로 구하면 다음과 같은 모양이 되겠으나 테스트 해봐서 퀄리티에 큰 지장이 없다면 그냥 위에 방법을 이용
굴절 환경 매핑 버텍스쉐이더& 픽셀 쉐이더 반사 환경 매핑과 굴절 환경 매핑의 차이는 반사 벡터를 구하던 부분이 굴절 벡터를 구하는 부분으로 바뀌는 것 뿐이다. HLSL의 refract(Incident, Normal, Ratio) 사용
굴절 환경 매핑
프레넬 효과와 색 분광 프레넬 효과는 위에서 구했던 반사와 굴절을 동시에 적용하는 것을 말한다. 환경 매핑에서는 반사 벡터로 얻어온 텍셀과 굴절 벡터로 얻어온 텍셀을 합성해준다.
프레넬 효과와 색 분광 프레넬 효과는 반사와 굴절을 어느정도 비율로 합성하는 지가 중요하다. 실제 공식을 사용하기 편하게 간소화 공식이 있다. 이 값을 이용해 선형 보간하면 된다. ( 예제에서는 그냥 적당히 값을 줌.. )
프레넬 효과와 색 분광 색 분광은 색의 파장의 차이에 의해 굴절률이 달라져 일어나는 물리적 현상이다.
프레넬 효과와 색 분광 색 분광 효과를 적용하려면 각 색에 대해서 (RGB) 굴절 벡터를 구해주고 각각 매핑 되는 택셀의 색을 빼내어 합성한다.
프레넬 효과와 색 분광
프레넬 효과와 색 분광
기타 아이디어 컨트롤 맵 환경 매핑이 되는 곳을 표시한 맵 픽셀 쉐이더에서 컨트롤 맵의 값을 읽어와 환경 매핑을 할 것인가 말 것인가 결정하는 기법인듯.
Q&A
참고자료 http://http.developer.nvidia.com/CgTutorial/cg_tutorial_chapter07.html http://msdn.microsoft.com/en-us/library/bb173368(v=VS.85).aspx http://xna-uk.net/blogs/randomchaos/archive/2009/01/06/basic-hlsl-lighting-techniques-episode-6-environment-maps-reflection-amp-refraction.aspx
감사합니다.

More Related Content

What's hot

2017 12 09_데브루키_리얼타임 렌더링_입문편(3차원 그래픽스[저자 : 한정현] 참조)
2017 12 09_데브루키_리얼타임 렌더링_입문편(3차원 그래픽스[저자 : 한정현] 참조)2017 12 09_데브루키_리얼타임 렌더링_입문편(3차원 그래픽스[저자 : 한정현] 참조)
2017 12 09_데브루키_리얼타임 렌더링_입문편(3차원 그래픽스[저자 : 한정현] 참조)Sukwoo Lee
 
크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)
크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)
크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)민웅 이
 
노말 맵핑(Normal mapping)
노말 맵핑(Normal mapping)노말 맵핑(Normal mapping)
노말 맵핑(Normal mapping)QooJuice
 
Real-Time Global Illumination Techniques
Real-Time Global Illumination TechniquesReal-Time Global Illumination Techniques
Real-Time Global Illumination TechniquesJangho Lee
 
게임 개발을 위한 렌더링 기법 한성환
게임 개발을 위한 렌더링 기법   한성환게임 개발을 위한 렌더링 기법   한성환
게임 개발을 위한 렌더링 기법 한성환Yggdrasil610
 
제노블레이도 2 ray marching을사용한 구름 표현
제노블레이도 2 ray marching을사용한 구름 표현제노블레이도 2 ray marching을사용한 구름 표현
제노블레이도 2 ray marching을사용한 구름 표현민웅 이
 
[0529 박민근] 전역조명(global illumination)
[0529 박민근] 전역조명(global illumination)[0529 박민근] 전역조명(global illumination)
[0529 박민근] 전역조명(global illumination)MinGeun Park
 
3D 컴퓨터 그래픽스 기초
3D 컴퓨터 그래픽스 기초3D 컴퓨터 그래픽스 기초
3D 컴퓨터 그래픽스 기초Seung Joon Choi
 
구세대 엔진 신데렐라 만들기 최종본 유트브2
구세대 엔진 신데렐라 만들기 최종본 유트브2구세대 엔진 신데렐라 만들기 최종본 유트브2
구세대 엔진 신데렐라 만들기 최종본 유트브2Kyoung Seok(경석) Ko(고)
 
2018.02.03 이미지 텍스처링
2018.02.03 이미지 텍스처링2018.02.03 이미지 텍스처링
2018.02.03 이미지 텍스처링Sukwoo Lee
 
자동 동적 3차원 입체시각
자동 동적 3차원 입체시각자동 동적 3차원 입체시각
자동 동적 3차원 입체시각민웅 이
 
니시카와젠지의 3 d게임 팬을 위한「gravity daze」그래픽스 강좌
니시카와젠지의 3 d게임 팬을 위한「gravity daze」그래픽스 강좌니시카와젠지의 3 d게임 팬을 위한「gravity daze」그래픽스 강좌
니시카와젠지의 3 d게임 팬을 위한「gravity daze」그래픽스 강좌민웅 이
 
스키닝 애니메이션
스키닝 애니메이션스키닝 애니메이션
스키닝 애니메이션sung suk seo
 
Deferred decal
Deferred decalDeferred decal
Deferred decal민웅 이
 
9강 camera advanced light2
9강 camera advanced light29강 camera advanced light2
9강 camera advanced light2JP Jung
 
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술Ki Hyunwoo
 
6강 light shadow 기초
6강 light shadow 기초6강 light shadow 기초
6강 light shadow 기초JP Jung
 
7강 shader basic lighting_배포용 삭제버전
7강 shader basic lighting_배포용 삭제버전7강 shader basic lighting_배포용 삭제버전
7강 shader basic lighting_배포용 삭제버전JP Jung
 
Game Visual Art Technologies
Game Visual Art TechnologiesGame Visual Art Technologies
Game Visual Art TechnologiesSangYun Yi
 

What's hot (20)

2017 12 09_데브루키_리얼타임 렌더링_입문편(3차원 그래픽스[저자 : 한정현] 참조)
2017 12 09_데브루키_리얼타임 렌더링_입문편(3차원 그래픽스[저자 : 한정현] 참조)2017 12 09_데브루키_리얼타임 렌더링_입문편(3차원 그래픽스[저자 : 한정현] 참조)
2017 12 09_데브루키_리얼타임 렌더링_입문편(3차원 그래픽스[저자 : 한정현] 참조)
 
크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)
크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)
크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)
 
노말 맵핑(Normal mapping)
노말 맵핑(Normal mapping)노말 맵핑(Normal mapping)
노말 맵핑(Normal mapping)
 
Real-Time Global Illumination Techniques
Real-Time Global Illumination TechniquesReal-Time Global Illumination Techniques
Real-Time Global Illumination Techniques
 
게임 개발을 위한 렌더링 기법 한성환
게임 개발을 위한 렌더링 기법   한성환게임 개발을 위한 렌더링 기법   한성환
게임 개발을 위한 렌더링 기법 한성환
 
제노블레이도 2 ray marching을사용한 구름 표현
제노블레이도 2 ray marching을사용한 구름 표현제노블레이도 2 ray marching을사용한 구름 표현
제노블레이도 2 ray marching을사용한 구름 표현
 
[0529 박민근] 전역조명(global illumination)
[0529 박민근] 전역조명(global illumination)[0529 박민근] 전역조명(global illumination)
[0529 박민근] 전역조명(global illumination)
 
3D 컴퓨터 그래픽스 기초
3D 컴퓨터 그래픽스 기초3D 컴퓨터 그래픽스 기초
3D 컴퓨터 그래픽스 기초
 
구세대 엔진 신데렐라 만들기 최종본 유트브2
구세대 엔진 신데렐라 만들기 최종본 유트브2구세대 엔진 신데렐라 만들기 최종본 유트브2
구세대 엔진 신데렐라 만들기 최종본 유트브2
 
2018.02.03 이미지 텍스처링
2018.02.03 이미지 텍스처링2018.02.03 이미지 텍스처링
2018.02.03 이미지 텍스처링
 
자동 동적 3차원 입체시각
자동 동적 3차원 입체시각자동 동적 3차원 입체시각
자동 동적 3차원 입체시각
 
니시카와젠지의 3 d게임 팬을 위한「gravity daze」그래픽스 강좌
니시카와젠지의 3 d게임 팬을 위한「gravity daze」그래픽스 강좌니시카와젠지의 3 d게임 팬을 위한「gravity daze」그래픽스 강좌
니시카와젠지의 3 d게임 팬을 위한「gravity daze」그래픽스 강좌
 
스키닝 애니메이션
스키닝 애니메이션스키닝 애니메이션
스키닝 애니메이션
 
Deferred decal
Deferred decalDeferred decal
Deferred decal
 
9강 camera advanced light2
9강 camera advanced light29강 camera advanced light2
9강 camera advanced light2
 
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
 
6강 light shadow 기초
6강 light shadow 기초6강 light shadow 기초
6강 light shadow 기초
 
7강 shader basic lighting_배포용 삭제버전
7강 shader basic lighting_배포용 삭제버전7강 shader basic lighting_배포용 삭제버전
7강 shader basic lighting_배포용 삭제버전
 
Motion blur
Motion blurMotion blur
Motion blur
 
Game Visual Art Technologies
Game Visual Art TechnologiesGame Visual Art Technologies
Game Visual Art Technologies
 

Viewers also liked

Viewers also liked (6)

기업환경오염지도
기업환경오염지도기업환경오염지도
기업환경오염지도
 
ecoecho
ecoechoecoecho
ecoecho
 
Jade2
Jade2Jade2
Jade2
 
Creating a Positive Classroom Environment
Creating a Positive Classroom EnvironmentCreating a Positive Classroom Environment
Creating a Positive Classroom Environment
 
Save Environment PPT
Save Environment PPTSave Environment PPT
Save Environment PPT
 
Internal and external business environment
Internal and external business environmentInternal and external business environment
Internal and external business environment
 

Similar to [0212 박민수]환경 매핑

Screen space reflection
Screen space reflectionScreen space reflection
Screen space reflectionBongseok Cho
 
GameMath-Chapter 08 고급렌더링
GameMath-Chapter 08 고급렌더링GameMath-Chapter 08 고급렌더링
GameMath-Chapter 08 고급렌더링Mark Choi
 
Depth buffershadow
Depth buffershadowDepth buffershadow
Depth buffershadowMoonLightMS
 
[0618 석재호]용기에담긴액체를위한굴절매핑
[0618 석재호]용기에담긴액체를위한굴절매핑[0618 석재호]용기에담긴액체를위한굴절매핑
[0618 석재호]용기에담긴액체를위한굴절매핑Jaeho Seok
 
247 deview 2013 이미지 분석 - 민재식
247 deview 2013 이미지 분석 - 민재식247 deview 2013 이미지 분석 - 민재식
247 deview 2013 이미지 분석 - 민재식NAVER D2
 
[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기
[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기
[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기동석 김
 
Real-time near-field global illumination based on a voxel model
Real-time near-field global illumination based on a voxel modelReal-time near-field global illumination based on a voxel model
Real-time near-field global illumination based on a voxel modelJaeyun Lee
 
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019devCAT Studio, NEXON
 
[Paper Review] A Middlebury Benchmark & Context-Aware Synthesis for Video Fra...
[Paper Review] A Middlebury Benchmark & Context-Aware Synthesis for Video Fra...[Paper Review] A Middlebury Benchmark & Context-Aware Synthesis for Video Fra...
[Paper Review] A Middlebury Benchmark & Context-Aware Synthesis for Video Fra...Hyeongmin Lee
 
Texture Modeling a Procedual Approach #01
Texture Modeling a Procedual Approach #01Texture Modeling a Procedual Approach #01
Texture Modeling a Procedual Approach #01CARROTCG
 
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1jdo
 
Gpg2권]4 9 하늘상자
Gpg2권]4 9 하늘상자Gpg2권]4 9 하늘상자
Gpg2권]4 9 하늘상자Young-jun Jeong
 
Voxel based game_optimazation_relelase
Voxel based game_optimazation_relelaseVoxel based game_optimazation_relelase
Voxel based game_optimazation_relelaseYEONG-CHEON YOU
 
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법강 민우
 
강화학습과 LV&A 그리고 Navigation Agent
강화학습과 LV&A 그리고 Navigation Agent강화학습과 LV&A 그리고 Navigation Agent
강화학습과 LV&A 그리고 Navigation AgentYeChan(Paul) Kim
 
위성이미지 객체 검출 대회 - 1등
위성이미지 객체 검출 대회 - 1등위성이미지 객체 검출 대회 - 1등
위성이미지 객체 검출 대회 - 1등DACON AI 데이콘
 
Lighting in Stingray
Lighting in StingrayLighting in Stingray
Lighting in StingrayJaehoon Lee
 

Similar to [0212 박민수]환경 매핑 (19)

Screen space reflection
Screen space reflectionScreen space reflection
Screen space reflection
 
GameMath-Chapter 08 고급렌더링
GameMath-Chapter 08 고급렌더링GameMath-Chapter 08 고급렌더링
GameMath-Chapter 08 고급렌더링
 
7_조명.pptx
7_조명.pptx7_조명.pptx
7_조명.pptx
 
Depth buffershadow
Depth buffershadowDepth buffershadow
Depth buffershadow
 
[0618 석재호]용기에담긴액체를위한굴절매핑
[0618 석재호]용기에담긴액체를위한굴절매핑[0618 석재호]용기에담긴액체를위한굴절매핑
[0618 석재호]용기에담긴액체를위한굴절매핑
 
247 deview 2013 이미지 분석 - 민재식
247 deview 2013 이미지 분석 - 민재식247 deview 2013 이미지 분석 - 민재식
247 deview 2013 이미지 분석 - 민재식
 
[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기
[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기
[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기
 
Real-time near-field global illumination based on a voxel model
Real-time near-field global illumination based on a voxel modelReal-time near-field global illumination based on a voxel model
Real-time near-field global illumination based on a voxel model
 
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
 
[Paper Review] A Middlebury Benchmark & Context-Aware Synthesis for Video Fra...
[Paper Review] A Middlebury Benchmark & Context-Aware Synthesis for Video Fra...[Paper Review] A Middlebury Benchmark & Context-Aware Synthesis for Video Fra...
[Paper Review] A Middlebury Benchmark & Context-Aware Synthesis for Video Fra...
 
Texture Modeling a Procedual Approach #01
Texture Modeling a Procedual Approach #01Texture Modeling a Procedual Approach #01
Texture Modeling a Procedual Approach #01
 
OpenCV preview
OpenCV previewOpenCV preview
OpenCV preview
 
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1
 
Gpg2권]4 9 하늘상자
Gpg2권]4 9 하늘상자Gpg2권]4 9 하늘상자
Gpg2권]4 9 하늘상자
 
Voxel based game_optimazation_relelase
Voxel based game_optimazation_relelaseVoxel based game_optimazation_relelase
Voxel based game_optimazation_relelase
 
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법
 
강화학습과 LV&A 그리고 Navigation Agent
강화학습과 LV&A 그리고 Navigation Agent강화학습과 LV&A 그리고 Navigation Agent
강화학습과 LV&A 그리고 Navigation Agent
 
위성이미지 객체 검출 대회 - 1등
위성이미지 객체 검출 대회 - 1등위성이미지 객체 검출 대회 - 1등
위성이미지 객체 검출 대회 - 1등
 
Lighting in Stingray
Lighting in StingrayLighting in Stingray
Lighting in Stingray
 

[0212 박민수]환경 매핑

  • 1. 환경 매핑 2011/02/12 박민수(엠에스박) Devrookie
  • 2. 목차 환경 매핑 반사 환경 매핑 굴절 환경 매핑 프레넬 효과와 색 분광 기타 아이디어 Q&A
  • 3. 환경 매핑 환경 매핑은 오브젝트 주변의 배경들이 반사된 모습을 표현하는 기법이다. 이 기법을 통해 크롬(금속)과 같아 보이는 효과를 얻을 수 있다.
  • 4. 환경 매핑 이론상 오브젝트 주변의 모든 물체를 무한한 거리까지 처리해야 한다. 오브젝트 주변 모든 방향에 대해서 반사되는 부분을 구해야 한다.
  • 5. 환경 매핑 큐브맵 텍스쳐6장을 정육면체로 보고 처리할 수 있게 인코딩 되어 있는 맵
  • 6. 환경 매핑 큐브맵 3D 개념이 들어간 텍스쳐 이기 때문에 텍스쳐 좌표 또한 3D 좌표이다. <s , t , r> 방향벡터
  • 7. 환경 매핑 큐브맵 아래 그림과 같이 중심점에서 정육면체에 대해서 방향벡터를 구하고 그 방향벡터를 타고 가다가 만나는 정육면체 부분의 텍셀을 얻어온다.
  • 8. 환경 매핑 큐브맵 정확한 계산을 위해서는 동적으로 움직이는 물체가 있다면 큐브맵을 갱신해 주어야 한다. 완벽한 계산이 필요없다면 주변 배경정도를 미리 큐브맵으로 뽑아놓고 사용하면 된다.
  • 9. 환경 매핑 큐브맵 오브젝트에 반사되는 벡터를 구하고 이 벡터를 큐브맵의텍셀을 얻어오는 좌표로 이용한다. 텍셀을 얻어올 때는 직접 계산해도 되고 HLSL에 있는 texCUBE()를 이용해도 된다.
  • 11. 환경 매핑 알아둘 것 기본적인 환경 매핑의 이론은 주변 환경만 매핑시키고 자기 자신을 매핑시키지 못한다. 평평한 오브젝트 보다는 커브가 있는 오브젝트에 더 효과가 좋다. 환경 맵 하나를 이용해서 다양한 물체들에 환경 매핑을 시켜도 사람들은 잘 알아차리지 못한다.
  • 12. 반사 환경 매핑 반사 벡터를 구해서 환경 매핑을 하는 기법
  • 13. 반사 환경 매핑 버텍스쉐이더에서 카메라에서 오브젝트를 바라봤을 때의 반사 벡터를 구해서 픽셀 쉐이더에 넘겨준다. 픽셀 쉐이더에서는 기존 Diffuse맵과 넘어온 반사 벡터를 이용해 구한 환경 맵의텍셀을 구해 적절히 합성해준다.
  • 14. 반사 환경 매핑 버텍스쉐이더 오브젝트의 위치와 조명, Diffuse 텍스쳐의 좌표를 구하고 반사벡터를 구해서 넘겨준다.
  • 15. 반사 환경 매핑 버텍스쉐이더 월드 좌표상의 위치와 노말벡터를 구하고 카메라 위치에서 오브젝트를 향하는 벡터와 노말 벡터를 이용해 반사벡터를 구한다. HLSL의 reflect(Incident, Normal) 사용.
  • 16. 반사 환경 매핑 픽셀 쉐이더 큐브맵과Diffuse맵에서텍셀을 얻어오고 적절히 선형 보간해주어서 결과값을 얻어낸다.
  • 18. 굴절 환경 매핑 굴절 벡터를 구해서 환경 매핑을 하는 기법
  • 19. 굴절 환경 매핑 굴절 빛이 서로 다른 매질의 경계선을 지나갈 때 빛이 지나가는 속도의 차이가 생겨 발생하는 현상
  • 20. 굴절 환경 매핑 스넬의 법칙
  • 21. 굴절 환경 매핑 스넬의 법칙
  • 22. 굴절 환경 매핑 스넬의 법칙
  • 23. 굴절 환경 매핑 굴절 벡터 구하기
  • 24. 굴절 환경 매핑 굴절률
  • 25. 굴절 환경 매핑 굴절 굴절된 벡터를 구해서 큐브맵의텍셀을 구할 때 이용한다.
  • 26. 굴절 환경 매핑 굴절 제대로 구하면 다음과 같은 모양이 되겠으나 테스트 해봐서 퀄리티에 큰 지장이 없다면 그냥 위에 방법을 이용
  • 27. 굴절 환경 매핑 버텍스쉐이더& 픽셀 쉐이더 반사 환경 매핑과 굴절 환경 매핑의 차이는 반사 벡터를 구하던 부분이 굴절 벡터를 구하는 부분으로 바뀌는 것 뿐이다. HLSL의 refract(Incident, Normal, Ratio) 사용
  • 29. 프레넬 효과와 색 분광 프레넬 효과는 위에서 구했던 반사와 굴절을 동시에 적용하는 것을 말한다. 환경 매핑에서는 반사 벡터로 얻어온 텍셀과 굴절 벡터로 얻어온 텍셀을 합성해준다.
  • 30. 프레넬 효과와 색 분광 프레넬 효과는 반사와 굴절을 어느정도 비율로 합성하는 지가 중요하다. 실제 공식을 사용하기 편하게 간소화 공식이 있다. 이 값을 이용해 선형 보간하면 된다. ( 예제에서는 그냥 적당히 값을 줌.. )
  • 31. 프레넬 효과와 색 분광 색 분광은 색의 파장의 차이에 의해 굴절률이 달라져 일어나는 물리적 현상이다.
  • 32. 프레넬 효과와 색 분광 색 분광 효과를 적용하려면 각 색에 대해서 (RGB) 굴절 벡터를 구해주고 각각 매핑 되는 택셀의 색을 빼내어 합성한다.
  • 35. 기타 아이디어 컨트롤 맵 환경 매핑이 되는 곳을 표시한 맵 픽셀 쉐이더에서 컨트롤 맵의 값을 읽어와 환경 매핑을 할 것인가 말 것인가 결정하는 기법인듯.
  • 36. Q&A
  • 37. 참고자료 http://http.developer.nvidia.com/CgTutorial/cg_tutorial_chapter07.html http://msdn.microsoft.com/en-us/library/bb173368(v=VS.85).aspx http://xna-uk.net/blogs/randomchaos/archive/2009/01/06/basic-hlsl-lighting-techniques-episode-6-environment-maps-reflection-amp-refraction.aspx