8 2透明度混合 關閉寫入

2021-10-23 05:41:15 字數 874 閱讀 9959

//透明度混合

//使用當前偏移的透明度作為混合因子,與已經儲存在綠色緩衝中的顏色進行混合。得到顏色。

//使用混合命令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的混合命令 透明度混合 實現 開啟深度寫入的半透明效果 實現 透明度混合可以得到真正的半透明效果。它會使用當前片元的透明度作為混合因子,與已經儲存在顏色緩衝中的顏色值進行混合,得到新的顏色。但是,透明度混合需要關閉深度寫入,這使得我...