包含此页的版本:
不含此页的版本:
更新自定义渲染纹理(Render Texture) 一种特殊类型的纹理,在运行时创建和更新。要使用它们,请先创建一个新的渲染纹理,并指定要渲染到其中的摄像机之一。然后,你可以在材质中使用渲染纹理,就像使用常规纹理一样。更多信息
请参阅术语表手动,你可以编写专门的自定义渲染纹理着色器在 GPU 上运行的程序。更多信息
请参阅术语表.
为了帮助你编写自定义渲染纹理着色器,下面是两个包含实用函数和内置辅助变量的示例框架。
以下着色器示例使用颜色乘以颜色填充纹理。为自定义渲染纹理编写着色器时,必须执行以下作:
#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
{
HLSLPROGRAM
#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);
}
ENDHLSL
}
}
}
以下示例是可用于初始化自定义渲染纹理的材质的着色器。为初始化材质编写着色器时,必须执行以下步骤:
#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
{
HLSLPROGRAM
#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);
}
ENDHLSL
}
}
}