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