Version: Unity 6.0 (6000.0)
언어 : 한국어
빌트인 렌더 파이프라인에서 빌트인 셰이더 함수 사용
빌트인 렌더 파이프라인의 HLSL 셰이더 예시

GrabPass 커맨드로 현재 프레임버퍼 가져오기

GrabPass는 프레임 버퍼의 콘텐츠를 텍스처로 가져오는 특수한 패스 유형을 생성하는 커맨드입니다. 이 텍스처는 후속 패스에서 고급 이미지 기반 효과를 만들기 위해 사용할 수 있습니다.

이 커맨드는 CPU 및 GPU 프레임 시간을 모두 크게 늘릴 수 있습니다. 일반적으로 빠른 프로토타이핑을 위해 이 커맨드를 사용하지 않고 다른 방법으로 효과를 구현하는 것이 좋습니다. 이 커맨드를 사용하는 경우, 이 커맨드의 사용량을 줄이거나, 해당하는 경우 이름이 지정된 텍스처로 화면을 가져오는 서명을 사용하여 화면 가져오기 작업의 수를 최대한 줄이십시오.

GrabPass는 프레임 버퍼에서만 작동합니다. 이 커맨드를 사용하여 다른 렌더 타겟의 콘텐츠나 뎁스 버퍼 등을 가져올 수는 없습니다.

예제

빌트인 렌더 파이프라인에 대한 이 예시는 GrabPass를 사용하여 렌더 타겟의 컬러를 반전하는 방법을 보여 줍니다. 이 방법은 이 효과를 구현하는 효율적인 방법이 아니며, GrabPass 사용법을 보여 주기 위한 것일 뿐입니다. 반전 블렌드 모드를 사용하면 같은 효과를 더 효율적으로 구현할 수 있습니다.

Shader "GrabPassInvert"
{
    SubShader
    {
        // Draw after all opaque geometry
        Tags { "Queue" = "Transparent" }

        // Grab the screen behind the object into _BackgroundTexture
        GrabPass
        {
            "_BackgroundTexture"
        }

        // Render the object with the texture generated above, and invert the colors
        Pass
        {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag
            #include "UnityCG.cginc"

            struct v2f
            {
                float4 grabPos : TEXCOORD0;
                float4 pos : SV_POSITION;
            };

            v2f vert(appdata_base v) {
                v2f o;
                // use UnityObjectToClipPos from UnityCG.cginc to calculate 
                // the clip-space of the vertex
                o.pos = UnityObjectToClipPos(v.vertex);

                // use ComputeGrabScreenPos function from UnityCG.cginc
                // to get the correct texture coordinate
                o.grabPos = ComputeGrabScreenPos(o.pos);
                return o;
            }

            sampler2D _BackgroundTexture;

            half4 frag(v2f i) : SV_Target
            {
                half4 bgcolor = tex2Dproj(_BackgroundTexture, i.grabPos);
                return 1 - bgcolor;
            }
            ENDCG
        }

    }
}

추가 리소스

빌트인 렌더 파이프라인에서 빌트인 셰이더 함수 사용
빌트인 렌더 파이프라인의 HLSL 셰이더 예시
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961