[0212 박민수]환경 매핑

38
환환 환환 2011/02/12 박박박 ( 박박박박 ) Devrookie

Upload: moonlightms

Post on 24-Jun-2015

2.144 views

Category:

Technology


4 download

DESCRIPTION

환경 매핑

TRANSCRIPT

Page 1: [0212 박민수]환경 매핑

환경 매핑

2011/02/12박민수 ( 엠에스박 )Devrookie

Page 2: [0212 박민수]환경 매핑

목차

환경 매핑 반사 환경 매핑 굴절 환경 매핑 프레넬 효과와 색 분광 기타 아이디어 Q&A

Page 3: [0212 박민수]환경 매핑

환경 매핑

환경 매핑은 오브젝트 주변의 배경들이 반사된 모습을 표현하는 기법이다 .

이 기법을 통해 크롬 ( 금속 ) 과 같아 보이는 효과를 얻을 수 있다 .

Page 4: [0212 박민수]환경 매핑

환경 매핑

이론상 오브젝트 주변의 모든 물체를 무한한 거리까지 처리해야 한다 .

오브젝트 주변 모든 방향에 대해서 반사되는 부분을 구해야 한다 .

Page 5: [0212 박민수]환경 매핑

환경 매핑

큐브 맵 텍스쳐 6 장을 정육면체로 보고 처리할 수 있게

인코딩 되어 있는 맵

Page 6: [0212 박민수]환경 매핑

환경 매핑

큐브 맵 3D 개념이 들어간 텍스쳐 이기 때문에 텍스쳐

좌표 또한 3D 좌표이다 .

<s , t , r> 방향벡터

Page 7: [0212 박민수]환경 매핑

환경 매핑

큐브 맵 아래 그림과 같이 중심점에서 정육면체에 대해서

방향벡터를 구하고 그 방향벡터를 타고 가다가 만나는 정육면체 부분의 텍셀을 얻어온다 .

Page 8: [0212 박민수]환경 매핑

환경 매핑

큐브 맵 정확한 계산을 위해서는 동적으로 움직이는 물체가

있다면 큐브 맵을 갱신해 주어야 한다 .

완벽한 계산이 필요없다면 주변 배경정도를 미리 큐브 맵으로 뽑아놓고 사용하면 된다 .

Page 9: [0212 박민수]환경 매핑

환경 매핑

큐브 맵 오브젝트에 반사되는 벡터를 구하고 이 벡터를

큐브 맵의 텍셀을 얻어오는 좌표로 이용한다 .

텍셀을 얻어올 때는 직접 계산해도 되고 HLSL 에 있는 texCUBE() 를 이용해도 된다 .

Page 10: [0212 박민수]환경 매핑

환경 매핑

반사 벡터

Page 11: [0212 박민수]환경 매핑

환경 매핑

알아둘 것 기본적인 환경 매핑의 이론은 주변 환경만

매핑시키고 자기 자신을 매핑시키지 못한다 .

평평한 오브젝트 보다는 커브가 있는 오브젝트에 더 효과가 좋다 .

환경 맵 하나를 이용해서 다양한 물체들에 환경 매핑을 시켜도 사람들은 잘 알아차리지 못한다 .

Page 12: [0212 박민수]환경 매핑

반사 환경 매핑

반사 벡터를 구해서 환경 매핑을 하는 기법

Page 13: [0212 박민수]환경 매핑

반사 환경 매핑

버텍스 쉐이더에서 카메라에서 오브젝트를 바라봤을 때의 반사 벡터를 구해서 픽셀 쉐이더에 넘겨준다 .

픽셀 쉐이더에서는 기존 Diffuse 맵과 넘어온 반사 벡터를 이용해 구한 환경 맵의 텍셀을 구해 적절히 합성해준다 .

Page 14: [0212 박민수]환경 매핑

반사 환경 매핑

버텍스 쉐이더

오브젝트의 위치와 조명 , Diffuse 텍스쳐의 좌표를 구하고 반사벡터를 구해서 넘겨준다 .

Page 15: [0212 박민수]환경 매핑

반사 환경 매핑

버텍스 쉐이더

월드 좌표상의 위치와 노말벡터를 구하고 카메라 위치에서 오브젝트를 향하는 벡터와 노말 벡터를 이용해 반사벡터를 구한다 .

HLSL 의 reflect(Incident, Normal) 사용 .

Page 16: [0212 박민수]환경 매핑

반사 환경 매핑

픽셀 쉐이더

큐브 맵과 Diffuse 맵에서 텍셀을 얻어오고 적절히 선형 보간해주어서 결과값을 얻어낸다 .

Page 17: [0212 박민수]환경 매핑

반사 환경 매핑

Page 18: [0212 박민수]환경 매핑

굴절 환경 매핑

굴절 벡터를 구해서 환경 매핑을 하는 기법

Page 19: [0212 박민수]환경 매핑

굴절 환경 매핑

굴절 빛이 서로 다른 매질의 경계선을 지나갈 때 빛이

지나가는 속도의 차이가 생겨 발생하는 현상

Page 20: [0212 박민수]환경 매핑

굴절 환경 매핑

스넬의 법칙

Page 21: [0212 박민수]환경 매핑

굴절 환경 매핑

스넬의 법칙

Page 22: [0212 박민수]환경 매핑

굴절 환경 매핑

스넬의 법칙

Page 23: [0212 박민수]환경 매핑

굴절 환경 매핑

굴절 벡터 구하기

Page 24: [0212 박민수]환경 매핑

굴절 환경 매핑

굴절률

Page 25: [0212 박민수]환경 매핑

굴절 환경 매핑

굴절

굴절된 벡터를 구해서 큐브 맵의 텍셀을 구할 때 이용한다 .

Page 26: [0212 박민수]환경 매핑

굴절 환경 매핑

굴절

제대로 구하면 다음과 같은 모양이 되겠으나 테스트 해봐서 퀄리티에 큰 지장이 없다면 그냥 위에 방법을 이용

Page 27: [0212 박민수]환경 매핑

굴절 환경 매핑

버텍스 쉐이더 & 픽셀 쉐이더

반사 환경 매핑과 굴절 환경 매핑의 차이는 반사 벡터를 구하던 부분이 굴절 벡터를 구하는 부분으로 바뀌는 것 뿐이다 .

HLSL 의 refract(Incident, Normal, Ratio) 사용

Page 28: [0212 박민수]환경 매핑

굴절 환경 매핑

Page 29: [0212 박민수]환경 매핑

프레넬 효과와 색 분광

프레넬 효과는 위에서 구했던 반사와 굴절을 동시에 적용하는 것을 말한다 .

환경 매핑에서는 반사 벡터로 얻어온 텍셀과 굴절 벡터로 얻어온 텍셀을 합성해준다 .

Page 30: [0212 박민수]환경 매핑

프레넬 효과와 색 분광

프레넬 효과는 반사와 굴절을 어느정도 비율로 합성하는 지가 중요하다 .

실제 공식을 사용하기 편하게 간소화 공식이 있다 .

이 값을 이용해 선형 보간하면 된다 . ( 예제에서는 그냥 적당히 값을 줌 .. )

Page 31: [0212 박민수]환경 매핑

프레넬 효과와 색 분광

색 분광은 색의 파장의 차이에 의해 굴절률이 달라져 일어나는 물리적 현상이다 .

Page 32: [0212 박민수]환경 매핑

프레넬 효과와 색 분광

색 분광 효과를 적용하려면 각 색에 대해서 (RGB) 굴절 벡터를 구해주고 각각 매핑 되는 택셀의 색을 빼내어 합성한다 .

Page 33: [0212 박민수]환경 매핑

프레넬 효과와 색 분광

Page 34: [0212 박민수]환경 매핑

프레넬 효과와 색 분광

Page 35: [0212 박민수]환경 매핑

기타 아이디어

컨트롤 맵 환경 매핑이 되는 곳을 표시한 맵

픽셀 쉐이더에서 컨트롤 맵의 값을 읽어와 환경 매핑을 할 것인가 말 것인가 결정하는 기법인듯 .

Page 36: [0212 박민수]환경 매핑

Q&A

Page 38: [0212 박민수]환경 매핑

감사합니다 .