//透明度混合
//使用當前偏移的透明度作為混合因子,與已經儲存在綠色緩衝中的顏色進行混合。得到顏色。
//使用混合命令blend
//可以得到真正的半透明效果
//關閉深度寫入會造成錯誤排序的情況
//本列只計算環境光和漫反射
shader "unity shader book/chapter 8/alphablend"
_alphascale("alpha scale",range(0,1))=1//控制透明度
}subshader //透明度混合佇列transparent 設定shader不受投影器projector影響
pass
zwrite off//關閉深度寫入
blend srcalpha oneminussrcalpha//開啟混合模式 將源顏色的混合因子設為srcalpha,把目標顏色(已經存在顏色緩衝中)的因子設定oneminussrcalpha,得到半透明效果
cgprogram
#pragma vertex vert
#pragma fragment frag
#include "lighting.cginc"
//定義變數
fixed3 _color;
sampler2d _maintex;
float4 _maintex_st;
fixed _alphascale;
//定義頂點著色器的輸入和輸出結構體
struct a2v ;
struct v2f ;
v2f vert(a2v v)
fixed4 frag(v2f i) :sv_target
endcg}}
fallback off
}
透明度混合
透明度混合 可以實現半透明效果。使用當前片元的透明度作為混合因子,與已經儲存在顏色緩衝中的顏色值進行混合,得到新的顏色。同時需要關閉深度寫入,注意渲染順序問題。混合命令 blend 這個命令在設定的同時也開啟了混合模式,開啟之後才能使用混合。混合是乙個逐片元操作。常用語義 blend off 關閉混...
shader 透明度混合
透明度混合是實現了真正的半透效果。它會以當前片元透明度作為混合因子,與已經儲存在顏色緩衝區中的顏色進行混合,得到新的顏色。同時要關掉深度寫入,小心物體的渲染順序。用blend srcfactor dstfactor來進行混合。這個命令在設定混合因子的同時也開啟了混合模式,否則不會有混合效果,因為開啟...
UnityShader 透明度混合
關閉深度寫入帶來的問題 開啟深度寫入的半透明效果 shaderlab的混合命令 透明度混合 實現 開啟深度寫入的半透明效果 實現 透明度混合可以得到真正的半透明效果。它會使用當前片元的透明度作為混合因子,與已經儲存在顏色緩衝中的顏色值進行混合,得到新的顏色。但是,透明度混合需要關閉深度寫入,這使得我...