I've been using Unity 3 Beta for the iPhone. I applied Unity's Toon/Basic Outline Shader on my character, which rendered correctly on iPhone 3Gs (OpenGL ES2.0) emulation. Yet when I built the application on my 3Gs phone, the cube map worked but not the outline.
Here's the CG code that I'm currently using.
CGPROGRAM
#pragma vertex vert
struct appdata {
float4 vertex;
float3 normal;
};
struct v2f {
float4 pos : POSITION;
float4 color : COLOR;
float fog : FOGC;
};
uniform float _Outline;
uniform float4 _OutlineColor;
v2f vert(appdata v) {
v2f o;
o.pos = mul(glstate.matrix.mvp, v.vertex);
float3 norm = mul ((float3x3)glstate.matrix.modelview[0], v.normal);
norm.x *= glstate.matrix.projection[0][0];
norm.y *= glstate.matrix.projection[1][1];
o.pos.xy += norm.xy * o.pos.z * _Outline;
o.fog = o.pos.z;
o.color = _OutlineColor;
return o;
}
ENDCG
Please help me figure out why I get outlines in the emulation mode but not in the actual build.