[0212 박민수]환경 매핑

3,068 views

Published on

환경 매핑

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,068
On SlideShare
0
From Embeds
0
Number of Embeds
14
Actions
Shares
0
Downloads
20
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

[0212 박민수]환경 매핑

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

×