disabling terrain diffuse lighting in surface shader
I want to write a very basic toon shader that i can use on a terrain object using unity's default terrain tools. the general goal is to keep the splatmap functionality but remove all of unity's default lightmap/shadow/diffuse lighting so i'd be left with an unlit but splatmapped terrain which i could then do some frag and vertex shading on.
The problem i'm having is that i can't seem to stop the default diffuse lighting from happening. i'm using a modified version of unity's default nature/terrain/diffuse shader but no mater how much of it i remove, there will always be diffuse lighting. I tried using #pragma params like noshadow, noambient, nolightmap, etc. but none of them have any effect.
CGINCLUDE
#pragma surface surf Lambert vertex:SplatmapVert nolightmap noambient noshadow novertexlights nodirlightmap nodynlightmap finalcolor:SplatmapFinalColor finalgbuffer:SplatmapFinalGBuffer
//#pragma multi_compile_fog
#include "TerrainSplatmapCommon.cginc"
void surf(Input IN, inout SurfaceOutput o)
{
half4 splat_control;
half weight;
fixed4 mixedDiffuse;
fixed3 mixedNormal = fixed3(1.0f,1.0f,1.0f);
SplatmapMix(IN, splat_control, weight, mixedDiffuse, mixedNormal);
o.Albedo = mixedDiffuse.rgb;
o.Alpha = 0.5f;
}
ENDCG
Category {
Tags {
"Queue" = "Geometry-99"
"RenderType" = "Opaque"
}
// TODO: Seems like "#pragma target 3.0 _TERRAIN_NORMAL_MAP" can't fallback correctly on less capable devices?
// Use two sub-shaders to simulate different features for different targets and still fallback correctly.
SubShader { // for sm3.0+ targets
CGPROGRAM
#pragma target 3.0
#pragma multi_compile __ _TERRAIN_NORMAL_MAP
ENDCG
}
SubShader { // for sm2.0 targets
CGPROGRAM
ENDCG
}
here i set the alpha to 0.5 to test if some of the code works. the entire terrain becomes darker, but there's still very ugly default lighting which i would like to remove somehow.
Is there a good way to approach this? should i be writing the shader and splatmap stuff from scratch? is there a way to use just low-level vertex and frag shaders while not having to rewrite splatmaps from scratch?