티스토리 뷰

Programming/UnrealEngine

Z-Depth Fog 만들기

글그리 2020. 5. 28. 20:17

z-depth fog는 높이에 따라 안개를 생성하는 것으로 높은 건물, 깊은 지하를 표현할 때 사용할 수 있는 기법이다.

 

사진처럼 사선으로 바라보는 깊은 지하를 그리기 위해서는 생각보다 오브젝트의 크기가 커야되는데, 짧은 오브젝트의 바닥면이 보인다면 깊이감이 줄어들 것이다. z-depth fog를 적용시키면 오브젝트의 크기도 크지않게 만들고 깊이감도 줄 수 있다.

 

과정

Post Process Volume 사용한다.

 

에디터에서 월드에 Post Process Volume을 추가하고 unbound를 체크한다. volume의 크기에 상관없이 모든 world에 해당 process가 적용되도록 하는 옵션이다.

 

content browser에서 material을 만든다.

 

Material Domain을 Post Process로 설정한다. Post Process domain은 Emissive Color만을 출력하며, 이 값을 Lerp연산을 통해 보간시켜서 z-depth fog 효과를 줄것이다.

 

Lerp


Linear Interpolaration의 약자로 선형보간이라는 뜻인데 입력된 두 값을 alpha비율로 섞어서 출력한다. A, B, Alpha 값을 계산해서 입력하고, 출력을 Emissive Color로 전달하면 된다.

 

A

Scene Texture를 그대로 사용한다. 색깔을 보간할거기 때문에 RGB값으로 Mask해서 사용한다.

 

B

Fog의 색깔을 입력한다. 이 값은 나중에 쉽게 변경할 수 있도록 parameter로 만든다.

 

Alpha

z-depth fog이기 때문에 start depth에서 pixel의 z좌표를 뺀 값을 사용한다. RGB는 UE4에서 vector의 XYZ와 같은 의미이기 때문에 B값을 Mask한 것을 볼 수있다. clamp의 출력은 lerp의 alpha로 들어간다.

 

만든 post process material을 instance로 만들고 post process volume에 추가한다.

 

결과

z-depth fog off z-depth fog on

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함