안녕 개발형제들! 오늘은 포그에 대해 적어보려고해..!!
우리 게임은 매일 포탈을 타고 이곳저곳 다니면서 재료를 구해서 장사하는 게임이야! 그래서 다양한 맵이 존재해
다양한 맵환경을 만드는게 재미있지만 또 힘들기도 해서 공통적으로 쓸 수 있는 시각 효과들을 많이 만들어두려고 하고 있어!
그중에 하나 만들어본 포그효과를 적어볼게.
우선 나는 유니티 URP를 사용중이야.. 아쉽게도 HDRP에 있는 볼류매트릭 포그는 사용 할 수 없어 ㅠㅠ(최신버전은 지원할지도..?) 어쩃든 그래서 그냥 야메로 만들어보았어...
우선 결과물부터 보면 이런 느낌이야

(막상 짤 만들고 보니까 좀 무섭네 ㅋㅋ 무서운 맵 만들때 참고해야겠다.)
구현 방법은 간단해!
1. 안개 쉐이더를 만든다
2. 파티클로 뿌린다.
생각해본 *핵심* 요소는 두 가지 인데, 하나는 쉐이더가. 하나는 파티클이 해결 해 줄 거야.

쉐이더부터 설명하자면 이런 그림이야. 아주 간단하지? Unlit을 기본으로 하고, 여기서 다른 건 중요하지 않고,
경계면(oqaue와 닿는 부분)에 알파 값 fade 주기..!! 이게 첫 번째 *핵심*이야
보통 안개 효과는 경계가 생기면 어색해지잖아? 그래서 불투명 오브젝트와 닿는 면에 fade를 주는거야! 간단한 빼기로 구현 할 수 있어.
Scene Depth에서 렌더러 자체의 뎁스 값(Screen Position 노드의 A값)을 빼주고 보간을 통해서, 페이드 효과를 줄 수 있었어.
(이걸 반대로 하면(결과 값에 one minus) 물 쉐이더 만들 때 포말 효과를 만들 수 있음 ㅋㅋ)
아 그리고 나는 파티클을 이용해서 뿌려주려고 버텍스컬러를 곱해줬어, 이렇게 해야 파티클 컬러와 쓰까져!
여기까지가 쉐이더 끝.

다음은 파티클 렌더러 설정에서 렌더 기준을 View포인트로 잡았어. 이건 빌보드 렌더링이랑 똑같은 효과를 주거든. 이게 두 번째 *핵심*이야
물론 쉐이더에서 만들어도 되지만 난 파티클 쓸 거라 여기서 설정했어!
나머지는 색깔 넣고 모양 정하고~ 입맛에 맞게 조리하면 끗!

이미지는 걍 큼직하게 할라고 요런식 으로 포토샵에서 브러쉬로 그렸어 ㅎㅎ 어차피 연하게 여러 번 겹칠 거라서 대충 그려도 괜찮더라ㅋㅋ.
이 방식은 볼류매트릭포그처럼 레이마칭 기반의
그래픽 구현보다 예쁘거나, 자연스럽거나, 빛을 산란 시켜주거나, 자연스럽거나.. 그런 건 없지만...(칙쇼 ㅋㅋ 치명적이네 ㅋㅋ)
대신..성능은 훨씬 잘 나오는 것 같아.
또 캐릭터가 포그 평면을 통과할때 약~간의 티가 날 수는 있어. 근데 이건 중첩도 올리고 투명도 낮추니까 괜찮더라 ㅎㅎ




다양한 맵에 적용한 이미지 몇 장 올리고 마무리할게!
이 외에도 다양한 텍스쳐나 컬러로 많은 표현을 할 수 있어! 예를들면 역병구름? 아니면 역병구름 같은?역병 구름 이라던지...역병 구름 같은 역병 구름...
댓글 영역