// Cartoon Rendering // Copyright (C) 2003 by Marco Jez struct appdata { float4 position: POSITION; float4 normal: NORMAL; }; struct vpconn { float4 position: POSITION; float4 color: COLOR0; float4 texcoord: TEXCOORD0; }; vpconn main(appdata input) { float4 eye_space_normal = mul(glstate.matrix.invtrans.modelview[0], input.normal); vpconn output; output.position = mul(glstate.matrix.mvp, input.position); output.color = glstate.material.diffuse * glstate.light[0].diffuse; output.texcoord.x = max(0, dot(normalize(glstate.light[0].position), eye_space_normal)); return output; }