rain rendering

65
Rain Rendering -이론편- 2013.05.04 Devrookie 엠에스박

Upload: minsu-park

Post on 13-Jul-2015

525 views

Category:

Technology


7 download

TRANSCRIPT

Page 1: Rain rendering

Rain

Rendering

-이론편-2013.05.04

Devrookie

엠에스박

Page 2: Rain rendering

• 들어가기전에

• 비 현상

• 빗줄기

• 물 튀는 현상

• 기타

Page 3: Rain rendering

들어가기전에

갑자기 자연현상이 만들어보고 싶었다.

그냥 막연하게 비나 내리게 해볼까로 시작했다.

그런데 너무 늦게 정해서…

직접 예제를 만들어볼 시간이 부족했다.

Page 4: Rain rendering

들어가기전에

그래서 이번 발표는 이론적인 부분 위주로…

다음 발표때는 같은 주제로 하되 직접 만들어본

경험담을 발표하겠습니다. ㅠㅠ

Page 5: Rain rendering

• 들어가기전에

• 비 현상

• 빗줄기

• 물 튀는 현상, 물결

• 기타

Page 6: Rain rendering

비 현상

비 오는걸 제대로 표현하는 것은 쉽지 않다.

의외로 하나씩 정리해 보면 고려해야 될 게 많

다.

하지만 잘 만들면 멋진 장면을 만들 수 있다.

Page 7: Rain rendering

비 현상

비 렌더링을 하지 않은 장면

Page 8: Rain rendering

비 현상

비 렌더링을 한 장면

Page 10: Rain rendering

비 현상

빗줄기

Page 11: Rain rendering

비 현상

구름

Page 12: Rain rendering

비 현상

무지개

Page 13: Rain rendering

비 현상

번개

Page 14: Rain rendering

비 현상

물 웅덩이, 물 튀는 현상

Page 15: Rain rendering

비 현상

물 흘러내림

Page 16: Rain rendering

비 현상

안개

Page 17: Rain rendering

비 현상

글로우

Page 18: Rain rendering

• 들어가기전에

• 비 현상

• 빗줄기

• 물 튀는 현상, 물결

• 기타

Page 19: Rain rendering

빗줄기

대표적인 구현 방법

• 텍스쳐 애니메이션

• 파티클

Page 20: Rain rendering

빗줄기

텍스쳐 애니메이션

• 화면상에 후처리로 랜더링

• 카메라에 더블 콘을 씌우고 매핑

• 다중 레이어를 이용한 처리

Page 21: Rain rendering

빗줄기

텍스쳐 애니메이션

폭풍우 같은 동적인 처리가 어렵다.

부분적인 조명처리가 어렵다.

Page 22: Rain rendering

빗줄기

더블 콘

Page 23: Rain rendering

빗줄기

다중 레이어

레이어당 패턴이 겹치지 않고

속도도 다르게 처리

다양한 처리 후 혼합하여 후처리 적용

Page 24: Rain rendering

빗줄기

다중 레이어

Page 25: Rain rendering

빗줄기

파티클

파티클 하나당 스프라이트 하나로 구현

퀄리티는 좋지만 많으면 많아질 수록 부하

CPU 연산, GPU 연산 증가

Page 26: Rain rendering

빗줄기

파티클

파티클당 계산만 달리하면 다양한 효과 연출 가

파티클에 조명 처리 또한 편하다.

Page 27: Rain rendering

빗줄기

파티클

• CPU 에서 생성, 계산

• CPU 에서 생성, GPU 계산

• GPU 에서 생성, 계산 (Geometry Shader)

Page 28: Rain rendering

빗줄기

파티클

Page 29: Rain rendering

빗줄기

빗줄기 생성

Page 30: Rain rendering

빗줄기

빗줄기 생성

Page 31: Rain rendering

빗줄기

빗줄기 생성

Page 32: Rain rendering

빗줄기

빗줄기 생성

http://www1.cs.columbia.edu/CAVE/databases/

rain_streak_db/rain_streak.php

미리 뽑혀있는 텍스쳐들이 있다. !!

Page 33: Rain rendering

빗줄기

Nvidia DirectX10 예제

텍스쳐 300장 가량을 DirectX10의 Texture

Array에 담아 놓고 각도에 맞는 텍스쳐를 가져

와 적용시켜 준다.

Page 34: Rain rendering

빗줄기

Nvidia DirectX10 예제

Page 35: Rain rendering

빗줄기

Nvidia DirectX10 예제

조명과의 거리를 계산하여 파티클에 적용한다.

조명 근처에 있는 빗방울에 빛이 적용된다.

Page 36: Rain rendering

빗줄기

Nvidia DirectX10 예제

Page 37: Rain rendering

• 들어가기전에

• 비 현상

• 빗줄기

• 물 튀는 현상, 물결

• 기타

Page 38: Rain rendering

물 튀는 현상

Page 39: Rain rendering

물 튀는 현상, 물결

대표적인 구현 방법

• 파티클

• 텍스쳐 애니메이션

• 노말맵

Page 40: Rain rendering

물 튀는 현상, 물결

파티클

물방울의 크기, 방향 이런 것 까지 고려해서 물

이 튀는걸 계산할 수는 없다.

고정적인 파티클 이펙트를 만들어 뿌려준다.

Page 41: Rain rendering

물 튀는 현상, 물결

텍스쳐 애니메이션

물결에 대해서 텍스쳐 애니메이션을 만들어 놓

적용해 주면 간단하게 라도 비가 바닥에 닿았음

느끼게 해준다.

Page 42: Rain rendering

물 튀는 현상, 물결

노말맵

Page 43: Rain rendering

물 튀는 현상, 물결

노말맵

해당 노말맵을 얻어와서 기존의 노말 계산에 추

가하여 계산한다.

더욱 입체감 있는 물결을 만들 수 있다.

Page 44: Rain rendering

물 튀는 현상, 물결

노말맵

Page 45: Rain rendering

물 튀는 현상, 물결

노말맵

Page 46: Rain rendering

물 튀는 현상, 물결

파티클이 바닥에 닿는 곳 마다 처리할 필요 없

다.

랜덤하게 뿌려줘도 이상해 보이지 않는다.

위에서 찍은 깊이 맵을 참조하여 찍는 경우도

있다.

Page 47: Rain rendering

• 들어가기전에

• 비 현상

• 빗줄기

• 물 튀는 현상, 물결

• 기타

Page 48: Rain rendering

기타

포그 & 글로우

평범한 포그를 적용하면 느낌이 살지 않는다.

조금 더 분석적인 모델이 필요하다.

http://www1.cs.columbia.edu/~bosun/sig05.ht

m

Page 49: Rain rendering

기타

포그 & 글로우

Page 50: Rain rendering

기타

포그 & 글로우

미리 뽑아놓은 수치값이 있다.

하나의 맵으로 만들고 조명계산에 사용한다.

Page 51: Rain rendering

기타

포그 & 글로우

Page 52: Rain rendering

기타

포그 & 글로우

Page 53: Rain rendering

기타

포그 & 글로우

글로우의 경우에는 조명 부분을 뿌옇게 처리하

비를 그리지 않아서 강조하는 경우도 있다.

Page 54: Rain rendering

기타

물방울

Page 55: Rain rendering

기타

물방울

제대로 반사, 굴절을 계산하려면…

장면에 대해서 환경맵을 생성해서 적용해야 한

다.

Page 56: Rain rendering

기타

물방울

흘러가는 장면을 연출을 위해서는 다음과 같이

격자를 구성하고 랜덤성, 물리 계산을 필요로

한다.

Page 57: Rain rendering

기타

물방울

Page 58: Rain rendering

기타

반사

Page 59: Rain rendering

기타

반사

조명이 적용되는 부분에 대해서 블러를 적용한

다.

Page 60: Rain rendering

기타

반사

조명을 기준으로 바닥면과 닿는 부분을 계산한

해당 위치에 조명을 그려주고 블러를 적용해 준

다.

적용하는 씬에 동적인 물체가 있다면 어색할 수

도…

Page 61: Rain rendering

기타

번개

번개가 쳤을 때 맵 부분이 밝아지는 효과를 주

려면

번개용 라이트맵을 미리 구워서 적용해 주면된

다.

Page 62: Rain rendering

결론

자연현상을 표현하는 부분도 계속 발전 중이다.

하드웨어의 발전으로 점점 더 물리적인 모델의

구현이 구체화 되고 있다.

아직까지는 범용적으로 사용할 수 없겠지만 콘

솔 등 최소사양을 높게 잡는 게임이라면 고려해

볼만하다.

Page 63: Rain rendering

결론

다음 발표때는 하나 하나 만들어 보면서 경험을

정리해서 발표하도록 하겠습니다.

들어주셔서 감사합니다.

Page 64: Rain rendering

참고자료http://www1.cs.columbia.edu/CAVE/publications/pdfs/Garg_TOG06.pdf

http://developer.amd.com/wordpress/media/2012/10/Tatarchuk-Rain.pdf

http://developer.download.nvidia.com/SDK/10/direct3d/Source/rain/doc/RainSDKWhitePaper.pdf

http://seblagarde.wordpress.com/2012/12/10/observe-rainy-world/

Page 65: Rain rendering