Game Dev/Unity Shader

실루엣 렌더링하기. (Render Silhouette), 새 포스팅 시리즈 예고 (?) - Unity Pipeline callbacks

Septentrions 2025. 12. 4. 06:43

Scriptable Render Pipeline (SRP) 는 아래 렌더링 단계에서 스크립트를 추가하여 여러 커스터마이징이 가능하다.

- Shadows

- Prepasses

- G-buffer

- deferred lights

- opaques

- Skybox

- transparents

- post-processing

 

최근, Render Feature에 관심이 생겨 해당 부분에 대하여 포스팅을 해보려고 한다.

진입 장벽이 대단히 높다고 생각해서 차근차근 정복해보고자 한다.

 

레퍼런스 자료는 유니티 6 공식 문서이다.

Introduction to URP for advanced creators (Unity 6 edition)

https://unity.com/resources/introduction-to-urp-advanced-creators-unity-6

 

Unity 고급 사용자를 위한 유니버설 렌더 파이프라인 소개(Unity 6 에디션) | Unity

이 가이드는 숙련된 Unity 개발자와 테크니컬 아티스트가 Unity 6의 URP(유니버설 렌더 파이프라인)를 활용해 최대한 효율적으로 개발하는 방법을 안내합니다.

unity.com

렌더 피쳐로 영역 전개를 시도해보자 (?)

 

Render Pipeline Asset 들은 Renderer 에셋들을 간단히 인스펙터 상에서 교체하면서 SRP 설정을 바꿀 수 있는데

스크립트로도 가능하다. 런 타임 중에도 스크립트가 돌아가는걸 보니.. 이 파이프라인 교체 비용은 생각보다 그리 높지 않은가보다.

 

using UnityEngine;
using UnityEngine.Rendering;
using UnityEngine.Rendering.Universal;
[ExecuteAlways]
public class AutoLoadPipelineAsset : MonoBehaviour
{
    public UniversalRenderPipelineAsset pipelineAsset;
    // Start is called before the first frame update
    void OnEnable()
    {
        if (pipelineAsset)
        {
            GraphicsSettings.defaultRenderPipeline = pipelineAsset;
            QualitySettings.renderPipeline = pipelineAsset;
        }
    }
}

 

 

Render Object

렌더 오브젝트는 이미 Unity Shader 포스팅 시리즈에서 다룬적 있다.

그래도 기초적인 부분부터 먹고 들어가야 하니 리마인드 겸으로 다시 써보자.

 

우리의 캐릭터가 오브젝트에 가려져서 보이지 않을때, 좋은 방법은 실루엣을 보이게 하는 방법이 있다.

그냥 카메라 상에서는 보이면서 캐릭터들이 가려져야 실루엣이 보여야 한다.

 

(1) 우선, 오브젝트를 하나 선택해서 새로운 레이어를 등록 해주자.

(2) Renderer Data를 열어서 Filtering 부분의 Opaque Layer Mask 에서 추가한 레이어를 체크 해제하자.

체크 해제하면 더 이상 해당 오브젝트는 카메라에 보이지 않는다.

(3) Add Render Feature 를 눌러서 Render Objects를 추가하자.

 

 

 

(4) 추가한 Render Objects 를 다음 처럼 수정하자.

Material은 아무거나 자신의 것으로 넣으면 된다.

여기서 Depth 는 Greater로 되어 있는데.

타겟 오브젝트의 Depth Value가 해당 픽셀의 가장 멀리 있어야 렌더링 하겠다는 뜻이다.

즉, 카메라와 해당 오브젝트 사이에 무언가 놓여있다면 렌더링 한다는 의미이다.

 

(5)

당연하지만, 이렇게 설정하면 오브젝트에 가려져야만, 실루엣이 나오고

본래의 매트리얼은 렌더링 되지 않는다.

새롭게 Render Objects를 추가하자.

 

 

실루엣은 간단하게 Feature만 추가해서 구현할 수 있는 방법이다.

이제는 이 Render Feature를 직접 커스터마이징 하는 걸 포스팅 할 예정이다.