与透明度测试相比,Blend.PNG改变了部分代码。 Tags的Queue标签设置为Transparent,RenderType标签允许将Shader分类到预定义的组中,我们通过ZWriteOff关闭深度写入,Blend设置两个混合因子。
在片段中,我们返回的Color 值包含Alpha 值。
着色器“Unlit/AlphaBlend”
{
特性{
_Color("主色调",颜色)=(1,1,1,1)
_MainTex("MainTex", 2D)="白色"{}
_AlphaScale("阿尔法比例", 范围(0,1))=1
}
子着色器{
标签{"队列"="透明""IgnoreProjector"="True""RenderType"="透明"}
经过{
标签{"LightMode"="ForwardBase"}
Z 注销
混合SrcAlpha OneMinusSrcAlpha
CG程序
#pragma 顶点vert
#pragma 片段片段
#include "Lighting.cginc"
固定4_颜色;
采样器2D _MainTex;
float4 _MainTex_ST;
修复_AlphaScale;
结构a2v {
float4 顶点: 位置;
固定3 正常: 正常;
float4 texcoord : TEXCOORD0;
};
结构体v2f {
float4 位置: SV_POSITION;
float3 worldNormal : TEXCOORD0;
float3 worldPos : TEXCOORD1;
float2 uv : TEXCOORD2;
};
v2f 垂直(a2v v) {
v2f o;
o.pos=UnityObjectToClipPos(v.vertex);
o.worldNormal=UnityObjectToWorldNormal(v.normal);
o.worldPos=mul(unity_ObjectToWorld, v.vertex);
o.uv=TRANSFORM_TEX(v.texcoord, _MainTex);
返回o;
}
固定4碎片(v2f i):SV_Target{
固定3 worldNormal=标准化(i.worldNormal);
fixed3 worldLightDir=标准化(UnityWorldSpaceLightDir(i.worldPos));
固定4 texColor=tex2D(_MainTex, i.uv);
固定3反照率=texColor.rgb * _Color.rgb;
固定3漫反射=_LightColor0.rgb * 反照率* max(0, dot(worldNormal, worldLightDir));
固定3环境=UNITY_LIGHTMODEL_AMBIENT *反照率;
返回fixed4(漫反射+环境光,texColor.a * _AlphaScale);
}
ENDCG
}
}
}AplhaBlendTest.PNG透明度混合双面渲染
向后剔除是默认设置,远离相机的一侧将不会被渲染。
Cull Front 是面向相机的并且不渲染。
经过{
标签{"LightMode"="ForwardBase"}
剔除前通{
标签{"LightMode"="ForwardBase"}
文章分享结束,深入解析:图形渲染核心技术与Shader应用和的答案你都知道了吗?欢迎再次光临本站哦!
【深入解析:图形渲染核心技术与Shader应用】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
着色器真是太神奇了,能让屏幕上的物体栩栩如生!
有18位网友表示赞同!
想学学怎么做 Shader,感觉可以做很多酷炫的效果。
有8位网友表示赞同!
Shader 可以让人们创造出各种惊人的视觉效果,世界变得更梦幻了。
有12位网友表示赞同!
学习 Shader 应该很有挑战吧?但成果一定非常炫目!
有12位网友表示赞同!
有没有 Shader 教程可以推荐?我想了解一下它的工作原理。
有11位网友表示赞同!
Shader 的应用范围很广,游戏、动画、影视等等都能用到。
有18位网友表示赞同!
我听说现在的一些手机已经可以用 Shader 生成超酷的图片效果了。
有11位网友表示赞同!
对 Shader 感兴趣但不太懂编程,有没有什么简单入门的方法?
有6位网友表示赞同!
玩游戏的时候总是感叹着色器的水平,细节做的太棒了!
有8位网友表示赞同!
Shader 的开发需要大量的数学知识,听起来就很头疼啊。
有11位网友表示赞同!
想跟大家交流一下 Shader 相关知识,大家可以多多分享经验。
有7位网友表示赞同!
学习 Shader 可以拓展我的创造力,很有吸引力!
有10位网友表示赞同!
希望将来有更多人能够用 Shader 创作出精彩的作品!
有10位网友表示赞同!
Shader 的未来发展方向是什么?期待看到它带来更多惊喜。
有18位网友表示赞同!
shader 技术进步很快,感觉未来会应用得越来越广泛了
有20位网友表示赞同!
对于非专业人士来说,也许学习 Shader 会比较吃力,但还是很有价值的尝试
有18位网友表示赞同!
shader 就像魔法一样,可以把代码变成美丽的画面!
有7位网友表示赞同!
想了解一下 shader 的应用不仅仅局限于游戏领域吗?
有19位网友表示赞同!
越来越多人开始关注 shader 技术,这意味着这个领域的未来很美好!
有19位网友表示赞同!