Shade-C uses deferred rendering so all the lighting is done by post-processing shaders which means that you don't have to do any of this in the object shader.

It also uses a default material which allows you to create a shader by just commenting / uncommenting #defines and it supports custom pixel- and vertexshader
which can be used for example to enable vertex displacement - like for vegetation shaders wink

Well, this probably sounds a bit complicated now, but it really isn't laugh

you set some material settings like this:
Code:
//assign skins
#define SKIN_ALBEDO (skin1.xyz) //diffusemap
#define SKIN_NORMAL (skin2.xyz) //normalmap
#define SKIN_GLOSS (skin2.w) //glossmap
//...

#define NORMALMAPPING //do normalmapping?

#define GLOSSMAP //entity has glossmap?
#define GLOSSSTRENGTH 0 //glossmap channel will be set to this value if GLOSSMAP is not defined


and create a custom vertex shader for the animation:
Code:
#define CUSTOM_VS_POSITION
float4 Custom_VS_Position(vsIn In)
{
	float3 P = mul(In.Pos, matWorld);
	float force_x = vecSkill1.x; 
	float force_y = vecSkill1.y;
	
	float speed = sin(vecTime.w * vecSkill1.z);
	
	In.Pos.z += speed * force_x;
	
	return mul(In.Pos,matWorldViewProj);
}


You don't have to worry about the lighting, normalmapping, shadowmapping, etc.
that's all done by the default material and the deferred rendering wink


POTATO-MAN saves the day! - Random