求个会shader帮忙改下,shader真是令人头痛
unity3d吧
全部回复
仅看楼主
level 3
以下是我用shader把游戏画面改成灰白色,但是问题来了,原本正常粒子特效却不能透明层也被被渲染了,该怎么改把应该透明去掉,还有为什么天空盒不起作用[阴险]
2020年06月20日 13点06分 1
level 3
Shader "Unlit/ThermalimagingShader" {
Properties {
_MainTex ("Base (RGB)", 2D) = "white" {}
}
SubShader {
Tags { "RenderType"="Opaque" }
LOD 200
//Lighting Off
//关闭掉光照,模型贴图不再受光照影响,
//Blend One SrcAlpha
CGPROGRAM
#pragma surface surf Lambert
sampler2D _MainTex;
struct Input {
float2 uv_MainTex;
};
这是我现在用的shader o.Alpha改过但是没有什么效果
void surf (Input IN, inout SurfaceOutput o) {
half4 c = tex2D (_MainTex, IN.uv_MainTex);
//if(c.a == 0) discard;
//if (c.a == 0 ) return;
if (c.a > 0)
{
o.Albedo = c.rgb;
float luminosity = 0.299 * 1.3 * o.Albedo.r
+ 0.587 * 1.3 * o.Albedo.g
+ 0.114 * 1.3 * o.Albedo.b ;
o.Albedo = lerp(c.rgb, luminosity, 1.0);
o.Alpha = c.a;
}
}
ENDCG
}
FallBack "Diffuse"
}
2020年06月20日 13点06分 2
level 1
使用commandbuffer做,另外surf函数缺少a为0的分支
2020年06月24日 09点06分 3
level 9
这个估计是要写个灰度滤镜吧
2020年11月30日 08点11分 5
level 7
你是把所有shader替换成你这个了么?
****lend srcalpha oneminussrcalpha
其实直接写OnRender 或者post effect就可以了
2020年12月01日 05点12分 6
level 5
没用的,都是搞起好耍的。吃饱了去劳动。
2020年12月05日 11点12分 7
1