Self-Shadowing problems on MacBook Pro

Hey there!

Take a look at this screenshot from Unity 3.3 Pro on Mac OSX. alt text

Almost every surface produces artifacts and moir that look like self-shadowing problems.

Fiddling with the project quality settings (shadow cascades etc.) does not remove them, adjusting the light's bias does not help and neither does changing the shaders...

The MacBook Pro, the screenshot was taken on, has an NVidia 9600M GT graphics card.

Any ideas what could cause those? It is really hard to work on the shadows on this system.

OK, I just found the problem to be an old Vertex-Lit shader… If I remove this one shader file from the project, the problems are gone. I’ll try to look deeper into it if I have the time.

Thanks to all!


Edit for Joseph:

Here is the shader’s code. I don’t know where we got it from initially. Most likely a left-over from a previous version of the built-in shaders package Unity provides on their website, or from the community wiki. Maybe you can identify the code that caused the problem.

Shader "VertexLit" {
Properties {
	_Color ("Main Color", Color) = (1,1,1,1)
	_SpecColor ("Spec Color", Color) = (1,1,1,1)
	_Emission ("Emmisive Color", Color) = (0,0,0,0)
	_Shininess ("Shininess", Range (0.01, 1)) = 0.7
	_MainTex ("Base (RGB)", 2D) = "white" {}
}

SubShader {
	// Normal rendering pass
	Pass {
		Material {
			Diffuse [_Color]
			Ambient [_Color]
			Shininess [_Shininess]
			Specular [_SpecColor]
			Emission [_Emission]
		} 
		Lighting On
		SeparateSpecular On
		SetTexture [_MainTex] {
			Combine texture * primary DOUBLE, texture * primary
		} 
	}
	
	// Pass to render object as a shadow caster
	Pass {
		Name "ShadowCaster"
		Tags { "LightMode" = "ShadowCaster" }
		
		Fog {Mode Off}
		ZWrite On ZTest Less Cull Off
		//Offset [_ShadowBias], [_ShadowBiasSlope]

CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma multi_compile SHADOWS_NATIVE SHADOWS_CUBE
#pragma fragmentoption ARB_precision_hint_fastest
#include "UnityCG.cginc"

struct v2f { 
	V2F_SHADOW_CASTER;
};

v2f vert( appdata_base v )
{
	v2f o;
	TRANSFER_SHADOW_CASTER(o)
	return o;
}

float4 frag( v2f i ) : COLOR
{
	SHADOW_CASTER_FRAGMENT(i)
}
ENDCG

	}
	
	// Pass to render object as a shadow collector
	Pass {
		Name "ShadowCollector"
		Tags { "LightMode" = "ShadowCollector" }
		
		Fog {Mode Off}
		ZWrite On ZTest Less

CGPROGRAM
// Upgrade NOTE: excluded shader from Xbox360; has structs without semantics (struct appdata members vertex)
#pragma exclude_renderers xbox360
#pragma vertex vert
#pragma fragment frag
#pragma fragmentoption ARB_precision_hint_fastest

#define SHADOW_COLLECTOR_PASS
#include "UnityCG.cginc"

struct appdata {
	float4 vertex;
};

struct v2f {
	V2F_SHADOW_COLLECTOR;
};

v2f vert (appdata v)
{
	v2f o;
	TRANSFER_SHADOW_COLLECTOR(o)
	return o;
}

half4 frag (v2f i) : COLOR
{
	SHADOW_COLLECTOR_FRAGMENT(i)
}
ENDCG

	}
}
}

Try adjusting your far clip distance on your camera.