在做一些店铺的旗帜标志时候,经常遇见需要一个双面材质,而且正面的字和反面的字要看起来都是对的
类似这个图的正面和反面就不对(这是 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"
}
背面变成
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于