Unity 특정 레이어 레이어 객체 렌더링 순서 조정

요구사항 설명

특정 수준의 개체는 항상 다른 수준 앞에 렌더링됩니다.

첫 번째 아이디어는 확실히 재료의 셰이더를 사용하는 것입니다. 이 두 레벨의 객체가 서로 다른 재료를 사용하는 경우 재료의 렌더링 대기열을 조정할 수 있습니다.

또한 머티리얼을 변경하지 않고 유지하는 또 다른 방법은 RenderPipelineAsset을 조정하여 렌더링 특성을 높이고 레벨에 따라 조정하는 것입니다.

여기서 레벨은 객체의 레이어를 나타냅니다.

파일

레이어 작성 템플릿 지정

Urp를 사용하여 UniversalRenderPipelineAsset_Renderer를 열고 기능 추가

파일

지정된 레벨에 대한 기본 렌더링을 끄고 기능을 사용하십시오.

파일

PlayerBack이 Player 뒤에 있어야 한다고 가정하고 PlayerBack 레이어를 먼저 렌더링한 다음

대기열은 광고된 레이어의 재료 렌더링 대기열과 일치합니다.
레이어 마스크는 렌더링할 대상 레이어를 선택합니다.
깊이를 쓰지 않고 템플릿을 작성합니다.
파일

대상 레이어는 레이어 작성 후 템플릿 테스트를 수행합니다.

대상 레이어는 레이어를 작성한 후 스텐실 테스트를 수행하고 대상 레이어에서만 렌더링합니다(쓰기 레이어만 스텐실 테스트를 통과할 수 있기 때문입니다).

여기서 깊이 테스트는 항상 통과하고 깊이도 동시에 작성됩니다. 목적은 일반 레이어에 대한 깊이 테스트를 통과하는 것입니다(검은색이 나타나면 일반 레이어를 다시 렌더링해야 하기 때문입니다).
파일

파일

일반 레이어

일반 레이어는 정상적으로 렌더링되는데 깊이가 이미 작성되어 있으므로 지정된 레이어에 렌더링할 수 있고, 지정된 레이어만 템플릿에 작성되므로 다른 렌더링 레벨을 방해하지 않습니다(지정된 레이어를 강조 표시하는 원리). 레이어는 애플리케이션 템플릿 테스트이기도 합니다)

파일

효과

빨간색 플레이어, 흰색 PlayerBack, PlayerBack은 항상 Player 뒤에 있습니다.

파일

추천

출처blog.csdn.net/euphorias/article/details/124517505