在做一些店铺的旗帜标志时候,经常遇见需要一个双面材质,而且正面的字和反面的字要看起来都是对的
类似这个图的正面和反面就不对(这是 diffuse+culloff 不剔除)
我想要的是
第一受光照影响,第二正面反面都是一个酒字。而不是背面是镜像
看资料里说
Surface Shader 和 CG 其他部分一样,代码也是要写在 CGPROGRAM 和 ENDCG 之间。但区别是,它必须写在 SubShader 内部,而不能写在 Pass 内部。Surface Shader 自己会自动生成所需的各个 Pass
那么这里要自己处理各个 pass 不知道能不能用 surface shader 实现,我的想法就是正面一个 pass 剔除背面 只显示正面,并且正常显示 uv 过来的贴图,反面一个 pass,只显示背面,然后 uv 坐标中的横向坐标 u 用
1 减一下,再贴图就行了,用顶点片段着色器我还不知道咋混合灯光效果。
贴一个不加光的
Shader "Custom/DDiffuse2Pass"
{
Properties
{
_Color("Main Color", Color) = (1,1,1,1)
_MainTex("Base (RGB)", 2D) = "white" {}
}
SubShader
{
Tags{ "Queue" = "OPAQUE"}
Pass
{
Cull Back
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct appdata_t {
float4 vertex : POSITION;
float2 texcoord : TEXCOORD0;
};
struct v2f { float4 vertex : SV_POSITION; half2 texcoord : TEXCOORD0; UNITY_FOG_COORDS(1) }; sampler2D _MainTex; float4 _MainTex_ST; fixed4 _Color; v2f vert(appdata_t v) { v2f o; o.vertex = UnityObjectToClipPos(v.vertex); o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex); UNITY_TRANSFER_FOG(o,o.vertex); return o; } fixed4 frag(v2f i) : SV_Target { float2 uv2 = float2(i.texcoord.x, i.texcoord.y); fixed4 col = tex2D(_MainTex, uv2) * _Color; UNITY_APPLY_FOG(i.fogCoord, col); return col; } ENDCG } Pass { Cull Front CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" struct appdata_t { float4 vertex : POSITION; float2 texcoord : TEXCOORD0; }; struct v2f { float4 vertex : SV_POSITION; half2 texcoord : TEXCOORD0; UNITY_FOG_COORDS(1) }; sampler2D _MainTex; float4 _MainTex_ST; fixed4 _Color; v2f vert(appdata_t v) { v2f o; o.vertex = UnityObjectToClipPos(v.vertex); o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex); UNITY_TRANSFER_FOG(o,o.vertex); return o; } fixed4 frag(v2f i) : SV_Target { float2 uv2 = float2(1 - i.texcoord.x, i.texcoord.y); fixed4 col = tex2D(_MainTex, uv2) * _Color; UNITY_APPLY_FOG(i.fogCoord, col); //col.Albedo = .rgb; //col.Alpha = .a; return col; } ENDCG } } FallBack "Diffuse"
}
背面变成
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于