欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > Unity图形学之Blend指令

Unity图形学之Blend指令

2025/9/14 23:43:24 来源:https://blog.csdn.net/woshiyuyanjia/article/details/143788875  浏览:    关键词:Unity图形学之Blend指令

1.渲染流程:Blend 决定了要渲染的像素和Gbuffer里像素到底怎么取舍

2.Blend 公式:

3.factor可以取值的内容有:

One   1
Zero   :0
SrcColor  :   要渲染的像素
SrcAlpha  : 要渲染像素的 a  通道。
DstColor : 已经渲染在gbuffer 里面的像素
DstAlpha : 已经渲染在gbuffer 里面的像素  a 通道
OneMinusSrcColor  :  1- 将要渲染的像素
OneMinusSrcAlpha :  1-将要渲染的像素 a 通道
OneMinusDstColor : 1-已经渲染在gbuffer 里面的像素
OneMinusDstAlpha:  1-已经渲染在gbuffer 里面的像素 a 通道。

4.实例演示:

Shader "Hidden/Blend"
{Properties{_MainTex ("Texture", 2D) = "white" {}}SubShader{// No culling or depth//Cull Off ZWrite Off ZTest Always//将要渲染的像素*将要渲染的像素的a通道 + (1-将要渲染的像素的 a通道) * Gbuffer里面的像素值Blend SrcAlpha OneMinusSrcAlpha//Blend SrcColor ZeroPass{CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"struct appdata{float4 vertex : POSITION;float2 uv : TEXCOORD0;};struct v2f{float2 uv : TEXCOORD0;float4 vertex : SV_POSITION;};v2f vert (appdata v){v2f o;o.vertex = UnityObjectToClipPos(v.vertex);o.uv = v.uv;return o;}sampler2D _MainTex;fixed4 frag (v2f i) : SV_Target{fixed4 col = tex2D(_MainTex, i.uv);// just invert the colors//col.rgb = 1 - col.rgb;return col;}ENDCG}}
}

5.BlendOp指令:

BlendOp  :  指定  将要渲染像素   和   gbuffer 里面的像素 逻辑运算 。
当这个指令 存在  ,Blend  这个指令 就会被忽略 。
Shader "Hidden/Blend"
{Properties{_MainTex ("Texture", 2D) = "white" {}}SubShader{// No culling or depth//Cull Off ZWrite Off ZTest Always//将要渲染的像素*将要渲染的像素的a通道 + (1-将要渲染的像素的 a通道) * Gbuffer里面的像素值Blend SrcAlpha OneMinusSrcAlpha//Blend SrcColor ZeroBlendOp MinPass{CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"struct appdata{float4 vertex : POSITION;float2 uv : TEXCOORD0;};struct v2f{float2 uv : TEXCOORD0;float4 vertex : SV_POSITION;};v2f vert (appdata v){v2f o;o.vertex = UnityObjectToClipPos(v.vertex);o.uv = v.uv;return o;}sampler2D _MainTex;fixed4 frag (v2f i) : SV_Target{fixed4 col = tex2D(_MainTex, i.uv);// just invert the colors//col.rgb = 1 - col.rgb;return col;}ENDCG}}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词