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

22
용용용 용용 용용용 용용용 용용 용용용 용용 용용용용 용용 용용용용 용용용용용용 용용 용용용 용용용 용용용용 용용 용용용 GPG 용용용 1 용 5.11

Upload: jaeho-seok

Post on 26-May-2015

595 views

Category:

Documents


0 download

TRANSCRIPT

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

용기에 담긴 액체를 용기에 담긴 액체를 위한 굴절매핑위한 굴절매핑

프레젠테이션 미적 감각의 소유자데브루키

꿜라 석재호

GPG 스터디 1 권 5.11

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

챕터 소개챕터 소개

불투명한 용기 안에 담긴 액체의 굴절매핑을실시간으로 수행하기 위한 실용적인 방법 소개

굴절 , 반사 , 프레넬 항의 계산 방법 리뷰

초면효과 , 입자상 물질 등 현실감 향상을 위한방법 소개

관측자는 용기 외부에 , 용기는 불투명하다고 가정

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

도 입도 입

해당 기법에 쓰인 조명 방정식은굴절과 반사 , 프레넬 항으로 이루어진전형적인 방정식

프레넬 항에 따라 굴절과 반사의 비율 결정

Result = Fresnel * refraction + (1 – Fresnel) * reflection

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

굴절률 항굴절률 항Snell 의 법칙 이용 - 정점 단위로 시선벡터 굴절스넬의 법칙 ? – 매질에 따라 내부에서 진행중인

파동의 속도가 달라지는데 이로 인해 서로 다른 매질 간에 파동이 진행할 때 진행방향이 굴절된다 .

이 때에 굴절률은 각 매질의 굴절률이 아닌두 매질간의 상대적인 굴절률 비에 의존한다

http://physica.gsnu.ac.kr/phtml/optics/light/refract/refract.html 스넬의 법칙이 잘 설명된 곳

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

굴절률 항굴절률 항

상대굴절률 = --------------------------------

정해져 있으므로 상수로 만들어 쓸 수 있다Ex) 공기에서 물로의 굴절률은 1.333

스넬의 법칙과 굴절률에 대한 더 자세한 내용은역시 박민수님의 “ 환경매핑” 데브루키 발표자료를 ..

진입할 매질의 굴절률

기존 매질의 굴절률

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

굴절률 항굴절률 항

수면 법선

@1

@2

n1

n2

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

용기와의 교차용기와의 교차

앞서 정리하면 ,스넬의 법칙에 의해 굴절된 광선을 구한 후행해지는 계산은 기존의 환경매핑 방식과 동일

벡터에 대한 환경맵 텍스쳐 좌표 매핑 공식만맞게 쓰면 됩니다

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

용기와의 교차용기와의 교차

특정 형태의 용기 내부가 빛의 굴절에 의해 왜곡된 모습을 그리려면 굴절된 광선이 용기와 교차하는 점을 구해야 함

>> 포물면 / 반구체 교차판정을 통하면 간단히 사발 모양 용기 표현이 가능하다 또한 이 방식은 시점이 이동하더라도 항상 제대로 된 결과를 보여준다

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

용기와의 교차용기와의 교차

직육면체 모양 용기의 경우

하나의 굴절된 광선으로 다섯 면에 대해각각 교차판정 수행 , 평면상의 교차지점 얻는다

이 교점을 굴절 맵 텍스쳐의 좌표로 변환한다( 책에서는 굴절맵으로 한 장의 텍스쳐 이용 )

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

용기 내부의 조명용기 내부의 조명

용기 내부의 조명은

미리 적용해서 굴절맵에 그리면 됩니다 . 끝

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

프레넬 항프레넬 항

Result = Fresnel * refraction + (1 – Fresnel) * reflection

프레넬 항의 역할 수면에 대한 시야 각도에 따라 굴절된 빛과 반사된 빛의 비율을 결정하는 항 ( 수면과 눈높이가 비슷할 때 물 속이 보이지 않고 , 물 위에 서서 내려다볼 때 투명해 보이는 것을 떠올리시면 됩니다 )

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

프레넬 항프레넬 항

Result = Fresnel * refraction + (1 – Fresnel) * reflection위의 식처럼 굴절항과 반사항 사이의 혼합계수로쓰이기도 하고

그냥 반사맵과 프레넬 항을 곱해서 쓰는 것으로제대로 된 결과를 내는 경우도 있다고책에서 소개하고 있습니다

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

프레넬 항프레넬 항

프레넬 항을 구하기 위한 함수는 0 에서 1 사이범위를 가지는 사인 , 사인 제곱 , 코사인 또는코사인 제곱 함수로 정할 수 있음

수면 법선 벡터와 시선 벡터의 내적을 계산해그 코사인 항을 프레넬 항으로 쓰는 것이 한 예

이 프레넬 항들을 정점 당 구해서 선형보간을 하거나 , 픽셀 단위로 계산할 수 있다

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

하드웨어 렌더링하드웨어 렌더링

이 파트는앞선 과정을 통해 경계 ( 수면 ) 메시의 정점마다해당되는 텍스쳐 좌표를 구한 후OpenGL 환경 하에서 굴절맵과 반사맵 텍스쳐를 블렌딩하는 방법을 소개하고 있습니다

지금에는 셰이더 내에서 두 텍셀 색상을 보간 혼합하는 간단한 과정으로 대체 가능하다보여집니다

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

초면초면 (caustics)(caustics)

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

초면 초면 에 실례합니다 에 실례합니다 .. .. 아아 .. .. 이 말장난 해버리고 싶어지네요이 말장난 해버리고 싶어지네요

시점 대신 광원 벡터를 이용

동적 방식과 정적 방식을 생각할 수 있다광원으로부터의 광선 벡터가 굴절되어용기 내부와 교차되는 점을 동일하게 구한다

광선의 강도를 ‘초면 맵’에 누적시킨다

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

초면 초면 에 이런 개그 죄송합니다에 이런 개그 죄송합니다 ....

동적 초면 맵

광원으로부터의 광선 벡터가 굴절되어용기 내부와 교차되는 점을 전과 동일하게 구한다

점에 닿는 광선의 강도를 ‘초면 맵’에 누적시킨다

초면 맵과 굴절 맵을 결합시킨다

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

초면 초면 ……………………

정적 초면 맵

미리 만든 초면 맵을 매 프레임마다 스크롤 해서 굴절 맵과 결합한다

초면 맵에 대한 계산 부하가 없어 효율적

젤다의 전설 – 시간의 오카리나 Zora’s Domain 레벨에서 호수 표현에 쓰였다는GPG 의 친절한 소개글이 ..

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

입자상 물질입자상 물질 (particulate matter)(particulate matter)

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

입자상 물질입자상 물질 (particulate matter)(particulate matter)

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

입자상 물질입자상 물질 은 드립거리가 없네요 은 드립거리가 없네요 .. .. 원통하다원통하다 ....

굴절광선과 용기의 교차판정 시 굴절광선이 매질 내에서 이동하는 거리를 구한다( 수면 메시 정점에서 용기 면에 닿는 벡터 길이 )

이 거리를 정점에서 물의 색을 혼합하는 데사용하면 입자상 물질의 효과를 얻을 수 있다( 비행 시뮬에서 안개 색 혼합을 통해 대기 효과를얻는 것과 동일 )

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

결 론결 론

본 기법은 굴절 맵과 반사 맵에 대한 새 텍스쳐 좌표를 매번 계산할 뿐텍스쳐 자체를 갱신하지 않으므로효율적으로 동작 가능하다

라는 내용입니다