커스텀 렌더 텍스처를 수동으로 업데이트하기 위해 특수한 커스텀 렌더 텍스처 셰이더를 작성할 수 있습니다.
커스텀 렌더 텍스처 셰이더를 작성하는 데 도움이 되도록 유틸리티 함수와 빌트인 도우미 변수가 포함된 두 가지 예시 프레임워크를 제공합니다.
다음은 컬러를 곱한 컬러로 텍스처를 채우는 셰이더 예시입니다. 커스텀 렌더 텍스처용 셰이더를 작성할 때는 다음을 수행해야 합니다.
#include "UnityCustomRenderTexture.cginc".CustomRenderTextureVertexShader 사용v2f_customrendertexture 사용Shader "CustomRenderTexture/Simple"
{
Properties
{
_Color ("Color", Color) = (1,1,1,1)
_Tex("InputTex", 2D) = "white" {}
}
SubShader
{
Lighting Off
Blend One Zero
Pass
{
CGPROGRAM
#include "UnityCustomRenderTexture.cginc"
#pragma vertex CustomRenderTextureVertexShader
#pragma fragment frag
#pragma target 3.0
float4 _Color;
sampler2D _Tex;
float4 frag(v2f_customrendertexture IN) : COLOR
{
return _Color * tex2D(_Tex, IN.localTexcoord.xy);
}
ENDCG
}
}
}
다음 예시는 커스텀 렌더 텍스처를 초기화하는 데 사용할 수 있는 머티리얼의 셰이더입니다. 초기화 머티리얼용 셰이더를 작성하는 경우 다음 단계를 반드시 수행해야 합니다.
#include "UnityCustomRenderTexture.cginc"
제공된 버텍스 셰이더 CustomRenderTextureVertexShader 사용
픽셀 셰이더에 제공된 입력 구조 v2f_customrendertexture 사용
Shader "CustomRenderTexture/CustomTextureInit"
{
Properties
{
_Color ("Color", Color) = (1,1,1,1)
_Tex("InputTex", 2D) = "white" {}
}
SubShader
{
Lighting Off
Blend One Zero
Pass
{
CGPROGRAM
#include "UnityCustomRenderTexture.cginc"
#pragma vertex InitCustomRenderTextureVertexShader
#pragma fragment frag
#pragma target 3.0
float4 _Color;
sampler2D _Tex;
float4 frag(v2f_init_customrendertexture IN) : COLOR
{
return _Color * tex2D(_Tex, IN.texcoord.xy);
}
ENDCG
}
}
}