Making a simple cg program work in unity

Hi,

I’ve been wanting to learn more about shaders and I started on the CG Tutorial at:

http://http.developer.nvidia.com/CgTutorial

I am trying to make the first example shader work within unity, but I seem to be missing some information involving shader lab.
This is the given example:

struct C2E1v_Output {

  float4 position : POSITION;

  float4 color    : COLOR;

};

C2E1v_Output C2E1v_green(float2 position : POSITION)

{

  C2E1v_Output OUT;

  OUT.position = float4(position, 0, 1);

  OUT.color    = float4(0, 1, 0, 1);  // RGBA green

  return OUT;

}

And this is the unity shader I tried but doesn’t work:

Shader "Testing shaders/Test 1" {
	Properties {
		_MainColor ("Base Color", Color) = (0,1,0,1)
	}
	SubShader {	
		CGPROGRAM 
		#pragma C2E1v_Output C2E1v_green
		struct C2E1v_Output 
		{
	  		float4 position : POSITION;
	  		float4 color    : COLOR;
		};

		C2E1v_Output C2E1v_green(float2 position : POSITION)
		{
			C2E1v_Output OUT;
			OUT.position = float4(position, 0, 1);
			OUT.color    = _MainColor;
	 		return OUT;
	 	}
			
		ENDCG
	} 
	FallBack "Diffuse"
}

Here is a 2 to where I am on the tutorial.

Some help would be much appreciated.

ShaderLab uses a completely different, more primitive system, from back before could you program graphics cards. I suspect that’s when it was first developed. Some of the set-up code is the same, but the actual coding only sets modes and inputs. ShaderLab can be ignored if you just want cg shaders.

Maybe start with a working Unity shader. The Unity shader page with all the soldiers has some (the last example has vert+frag shaders.) Then downloading the built-in unity shaders gives the code for more. The guts are regular cg/HLSL code. And the set-up code is standard cg with different words and some magic (if you request certain items, Unity auto-computes and sends them.)