本文主要是介绍Unity3d_shader_Transparency(解决透明材质物体重叠穿透问题),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
解决两个透明材质物体穿透问题
// An improvement to the default Unity "Transparent/Diffuse" shader to prevent see-through artifacts.
Shader "Game/Transparent/Diffuse (improved)" {Properties {_Color("Main Color", Color) = (1, 1, 1, 1)_MainTex("Base (RGB) Trans (A)", 2D) = "white" { }}SubShader {Tags { "Queue"="Transparent" "IgnoreProjector"="False" "RenderType"="Transparent" }// First Pass: Only render alpha (A) channelPass {ColorMask ABlend SrcAlpha OneMinusSrcAlphaCGPROGRAM#pragma vertex vert#pragma fragment fragfixed4 _Color;float4 vert(float4 vertex:POSITION) : SV_POSITION {return mul(UNITY_MATRIX_MVP, vertex);}fixed4 frag() : SV_Target {return _Color;}ENDCG}// Second Pass: Now render color (RGB) channelColorMask RGBBlend SrcAlpha OneMinusSrcAlphaCGPROGRAM#pragma surface surf Lambert alphasampler2D _MainTex;fixed4 _Color;struct Input {float4 color:COLOR;float2 uv_MainTex;};void surf(Input IN, inout SurfaceOutput o) {fixed4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color;o.Albedo = c.rgb;o.Alpha = c.a;}ENDCG}Fallback "Legacy Shaders/Transparent/Diffuse"
}
【Unity】半透明なオブジェクトを綺麗に表示するシェーダを導入する - コガネブログ
https://github.com/ewersp/Shaders
https://github.com/ewersp/Shaders/blob/master/BetterTransparentDiffuse.shader
这篇关于Unity3d_shader_Transparency(解决透明材质物体重叠穿透问题)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!