Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

[0618 석재호]용기에담긴액체를위한굴절매핑

1,166 views

Published on

  • Be the first to comment

  • Be the first to like this

[0618 석재호]용기에담긴액체를위한굴절매핑

  1. 1. 용기에 담긴 액체를 위한 굴절매핑 프레젠테이션 미적 감각의 소유자 데브루키 꿜라 석재호 GPG 스터디 1 권 5.11
  2. 2. 챕터 소개 <ul><li>불투명한 용기 안에 담긴 액체의 굴절매핑을 </li></ul><ul><li>실시간으로 수행하기 위한 실용적인 방법 소개 </li></ul><ul><li>굴절 , 반사 , 프레넬 항의 계산 방법 리뷰 </li></ul><ul><li>초면효과 , 입자상 물질 등 현실감 향상을 위한 </li></ul><ul><li>방법 소개 </li></ul><ul><li>관측자는 용기 외부에 , 용기는 불투명하다고 가정 </li></ul>
  3. 3. 도 입 <ul><li>해당 기법에 쓰인 조명 방정식은 </li></ul><ul><li>굴절과 반사 , 프레넬 항으로 이루어진 </li></ul><ul><li>전형적인 방정식 </li></ul><ul><li>프레넬 항에 따라 굴절과 반사의 비율 결정 </li></ul><ul><li>Result = Fresnel * refraction </li></ul><ul><li>+ (1 – Fresnel) * reflection </li></ul>
  4. 4. 굴절률 항 <ul><li>Snell 의 법칙 이용 - 정점 단위로 시선벡터 굴절 </li></ul><ul><li>스넬의 법칙 ? – 매질에 따라 내부에서 진행중인 </li></ul><ul><li> 파동의 속도가 달라지는데 </li></ul><ul><li> 이로 인해 서로 다른 매질 간에 </li></ul><ul><li> 파동이 진행할 때 진행방향이 </li></ul><ul><li> 굴절된다 . </li></ul><ul><li>이 때에 굴절률은 각 매질의 굴절률이 아닌 </li></ul><ul><li>두 매질간의 상대적인 굴절률 비에 의존한다 </li></ul><ul><li>http://physica.gsnu.ac.kr/phtml/optics/light/refract/refract.html 스넬의 법칙이 잘 설명된 곳 </li></ul>
  5. 5. 굴절률 항 <ul><li>상대굴절률 = -------------------------------- </li></ul><ul><li>정해져 있으므로 상수로 만들어 쓸 수 있다 </li></ul><ul><li>Ex) 공기에서 물로의 굴절률은 1.333 </li></ul><ul><li>스넬의 법칙과 굴절률에 대한 더 자세한 내용은 </li></ul><ul><li>역시 박민수님의 “환경매핑” 데브루키 발표자료를 .. </li></ul>진입할 매질의 굴절률 기존 매질의 굴절률
  6. 6. 굴절률 항 <ul><li>수면 법선 </li></ul>@1 @2 n1 n2
  7. 7. 용기와의 교차 <ul><li>앞서 정리하면 , </li></ul><ul><li>스넬의 법칙에 의해 굴절된 광선을 구한 후 </li></ul><ul><li>행해지는 계산은 </li></ul><ul><li>기존의 환경매핑 방식과 동일 </li></ul><ul><li>벡터에 대한 환경맵 텍스쳐 좌표 매핑 공식만 </li></ul><ul><li>맞게 쓰면 됩니다 </li></ul>
  8. 8. 용기와의 교차 <ul><li>특정 형태의 용기 내부가 빛의 굴절에 의해 </li></ul><ul><li>왜곡된 모습을 그리려면 </li></ul><ul><li>굴절된 광선이 용기와 교차하는 점을 구해야 함 </li></ul><ul><li>>> 포물면 / 반구체 교차판정을 통하면 </li></ul><ul><li>간단히 사발 모양 용기 표현이 가능하다 </li></ul><ul><li>또한 이 방식은 시점이 이동하더라도 </li></ul><ul><li>항상 제대로 된 결과를 보여준다 </li></ul>
  9. 9. 용기와의 교차 <ul><li>직육면체 모양 용기의 경우 </li></ul><ul><li>하나의 굴절된 광선으로 다섯 면에 대해 </li></ul><ul><li>각각 교차판정 수행 , 평면상의 교차지점 얻는다 </li></ul><ul><li>이 교점을 굴절 맵 텍스쳐의 좌표로 변환한다 </li></ul><ul><li>( 책에서는 굴절맵으로 한 장의 텍스쳐 이용 ) </li></ul>
  10. 10. 용기 내부의 조명 <ul><li>용기 내부의 조명은 </li></ul><ul><li>미리 적용해서 굴절맵에 그리면 됩니다 . 끝 </li></ul>
  11. 11. 프레넬 항 <ul><li>Result = Fresnel * refraction </li></ul><ul><li>+ (1 – Fresnel) * reflection </li></ul><ul><li>프레넬 항의 역할 </li></ul><ul><li>수면에 대한 시야 각도에 따라 </li></ul><ul><li>굴절된 빛과 반사된 빛의 비율을 결정하는 항 </li></ul><ul><li>( 수면과 눈높이가 비슷할 때 물 속이 보이지 </li></ul><ul><li>않고 , 물 위에 서서 내려다볼 때 투명해 보이는 </li></ul><ul><li>것을 떠올리시면 됩니다 ) </li></ul>
  12. 12. 프레넬 항 <ul><li>Result = Fresnel * refraction </li></ul><ul><li>+ (1 – Fresnel) * reflection </li></ul><ul><li>위의 식처럼 굴절항과 반사항 사이의 혼합계수로 </li></ul><ul><li>쓰이기도 하고 </li></ul><ul><li>그냥 반사맵과 프레넬 항을 곱해서 쓰는 것으로 </li></ul><ul><li>제대로 된 결과를 내는 경우도 있다고 </li></ul><ul><li>책에서 소개하고 있습니다 </li></ul>
  13. 13. 프레넬 항 <ul><li>프레넬 항을 구하기 위한 함수는 0 에서 1 사이 </li></ul><ul><li>범위를 가지는 사인 , 사인 제곱 , 코사인 또는 </li></ul><ul><li>코사인 제곱 함수로 정할 수 있음 </li></ul><ul><li>수면 법선 벡터와 시선 벡터의 내적을 계산해 </li></ul><ul><li>그 코사인 항을 프레넬 항으로 쓰는 것이 한 예 </li></ul><ul><li>이 프레넬 항들을 정점 당 구해서 선형보간을 </li></ul><ul><li>하거나 , 픽셀 단위로 계산할 수 있다 </li></ul>
  14. 14. 하드웨어 렌더링 <ul><li>이 파트는 </li></ul><ul><li>앞선 과정을 통해 경계 ( 수면 ) 메시의 정점마다 </li></ul><ul><li>해당되는 텍스쳐 좌표를 구한 후 </li></ul><ul><li>OpenGL 환경 하에서 굴절맵과 반사맵 텍스쳐를 </li></ul><ul><li>블렌딩하는 방법을 소개하고 있습니다 </li></ul><ul><li>지금에는 셰이더 내에서 두 텍셀 색상을 </li></ul><ul><li>보간 혼합하는 간단한 과정으로 대체 가능하다 </li></ul><ul><li>보여집니다 </li></ul>
  15. 15. 초면 (caustics)
  16. 16. 초면 에 실례합니다 .. 아 .. 이 말장난 해버리고 싶어지네요 <ul><li>시점 대신 광원 벡터를 이용 </li></ul><ul><li>동적 방식과 정적 방식을 생각할 수 있다 </li></ul><ul><li>광원으로부터의 광선 벡터가 굴절되어 </li></ul><ul><li>용기 내부와 교차되는 점을 동일하게 구한다 </li></ul><ul><li>광선의 강도를 ‘초면 맵’에 누적시킨다 </li></ul>
  17. 17. 초면 에 이런 개그 죄송합니다 .. <ul><li>동적 초면 맵 </li></ul><ul><li>광원으로부터의 광선 벡터가 굴절되어 </li></ul><ul><li>용기 내부와 교차되는 점을 전과 동일하게 구한다 </li></ul><ul><li>점에 닿는 광선의 강도를 ‘초면 맵’에 누적시킨다 </li></ul><ul><li>초면 맵과 굴절 맵을 결합시킨다 </li></ul>
  18. 18. 초면 ………… <ul><li>정적 초면 맵 </li></ul><ul><li>미리 만든 초면 맵을 매 프레임마다 </li></ul><ul><li>스크롤 해서 굴절 맵과 결합한다 </li></ul><ul><li>초면 맵에 대한 계산 부하가 없어 효율적 </li></ul><ul><li>젤다의 전설 – 시간의 오카리나 </li></ul><ul><li>Zora’s Domain 레벨에서 호수 표현에 쓰였다는 </li></ul><ul><li>GPG 의 친절한 소개글이 .. </li></ul>
  19. 19. 입자상 물질 (particulate matter)
  20. 20. 입자상 물질 (particulate matter)
  21. 21. 입자상 물질 은 드립거리가 없네요 .. 원통하다 .. <ul><li>굴절광선과 용기의 교차판정 시 </li></ul><ul><li>굴절광선이 매질 내에서 이동하는 거리를 구한다 </li></ul><ul><li>( 수면 메시 정점에서 용기 면에 닿는 벡터 길이 ) </li></ul><ul><li>이 거리를 정점에서 물의 색을 혼합하는 데 </li></ul><ul><li>사용하면 입자상 물질의 효과를 얻을 수 있다 </li></ul><ul><li>( 비행 시뮬에서 안개 색 혼합을 통해 대기 효과를 </li></ul><ul><li>얻는 것과 동일 ) </li></ul>
  22. 22. 결 론 <ul><li>본 기법은 굴절 맵과 반사 맵에 대한 </li></ul><ul><li>새 텍스쳐 좌표를 매번 계산할 뿐 </li></ul><ul><li>텍스쳐 자체를 갱신하지 않으므로 </li></ul><ul><li>효율적으로 동작 가능하다 </li></ul><ul><li>라는 내용입니다 </li></ul>

×