//**************************************************************************************// // // // BASIC STUFF // // SOME WITH A + D + S (PER-VERTEX) // // // //**************************************************************************************// void Tiny_vp (float4 position : POSITION, out float4 oPosition : POSITION, uniform float4x4 worldViewProj) { oPosition = mul(worldViewProj, position); } void OneTexture_vp(float4 position : POSITION, float2 uv : TEXCOORD0, out float4 oPosition : POSITION, out float2 oUv : TEXCOORD0, uniform float4x4 worldViewProj, uniform float scale) { oPosition = mul(worldViewProj, position); oUv = uv * scale; } void Ambient_vp(float4 position : POSITION, out float4 oPosition : POSITION, out float4 colour : COLOR, uniform float4x4 worldViewProj, uniform float4 ambient) { oPosition = mul(worldViewProj, position); colour = ambient; } void AmbientOneTexture_vp(float4 position : POSITION, float2 uv : TEXCOORD0, out float4 oPosition : POSITION, out float2 oUv : TEXCOORD0, out float4 colour : COLOR, uniform float4x4 worldViewProj, uniform float4 ambient) { oPosition = mul(worldViewProj, position); oUv = uv; colour = ambient; } void PerVertex_Vert ( float4 position : POSITION, float3 normal : NORMAL, uniform float4 lightPosition, uniform float3 eyePosition, uniform float4x4 worldviewproj, uniform float4 lightDiffuse, uniform float4 lightSpecular, uniform float exponent, out float4 oColor : COLOR, out float4 oPos : POSITION ) { oPos = mul(worldviewproj, position); float3 EyeDir = normalize(eyePosition - position.xyz); float3 LightDir = normalize(lightPosition.xyz - (position.xyz * lightPosition.w)); float3 HalfAngle = normalize(LightDir + EyeDir); float3 N = normalize(normal); float NdotL = dot(N, LightDir); float NdotH = dot(N, HalfAngle); float4 Lit = lit(NdotL,NdotH,exponent); oColor = lightDiffuse * Lit.y + lightSpecular * Lit.z; }