새소식

인기 검색어

게임 개발/유니티

HDRP 환경에서 TextMeshPro의 Distance field overlay 쉐이더 사용

  • -

HDRP에서 TextMeshPro의 Distance field overlay 쉐이더가 제대로 지원되지 않아 투명하게 표시된다.

만약 데미지등의 표시를 위해 3d 스페이스에서 숫자를 가리지 않고 표시하려면 어떻게 해야 할까?

 

첫 번째 방법

수동으로 카메라 앞을 가리는 물체를 감지하고, 그 물체들 맨 앞으로 글자를 옮긴다음, 옮긴 만큼 다시 글자의 크기를 조정해주는 방법.

결과

내 작업물에 시도해 본 결과, 포스트 프로세싱등과의 충돌 문제로 글자가 제대로 표시되지 않는 경우가 많다.

 

두 번째 방법

카메라 스태킹. 오직 데미지 숫자만을 촬영하는 카메라를 따로 만든다(레이어 이용). 그리고 원래 메인 카메라에서는 해당 레이어를 렌더링 레이어에서 제외한다.

결과

마찬가지로 포스트프로세싱과 엮인 문제들이 많았다. 그리고 무엇보다 퍼포먼스에 임팩트가 갔다.

아마 포스트 프로세싱 부분은 해당 카메라를 포스트 프로세싱에서 제외시켜주면 해결될 것 같았으나, 퍼포먼스 이슈 때문에 이 방식은 빠르게 포기했다.

 

세 번째 방법

Custom Pass Volume 사용. 포스트 프로세싱 이후에 인젝션 하는 방식.

결과

큰 퍼포먼스 이슈 없이 잘 작동한다.

다만, 이전에는 deffered rendering only로 했었는데, forawrd rendering을 사용해야만 해서 both(deffered, forward 둘 다) 사용하게 되었다. 아마 이 부분에서 퍼포먼스에 임팩트가 있을 듯 하다.

그렇다고 절대 forward only로 설정을 바꾸지는 말아라.(환경에 따라 크게 퍼포먼스에 임팩트가 갈 수 있다)

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.