[0212 박민수]환경 매핑

Post on 24-Jun-2015

2.141 Views

Category:

Technology

4 Downloads

Preview:

Click to see full reader

DESCRIPTION

환경 매핑

TRANSCRIPT

환경 매핑

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

감사합니다 .

top related