/************************************************************** * HLAG Effect * * Author: anonymous * **************************************************************/ #target 3D vertex_shader (position :V_POSITION, uv :V_UV, in_normal :V_NORMAL) { parameter local mWorldViewProjection :matrix; parameter local mWorld :matrix; parameter global lightDirection :float3[DIRECTION] = float3(-0.577, 0.577, -0.577); parameter global lightDiffuseColor :float4[COLOR] = float4(1,1,1,0); var normal :float3; var diffuseIntensity :float; normal = mul33(in_normal.xyz, mWorld); diffuseIntensity = max(dot(normalize(normal), lightDirection), 0); output.position = mul44(position, mWorldViewProjection); output.f_diffuse = diffuseIntensity * lightDiffuseColor; output.f_uv = uv; } fragment_shader (f_diffuse :float4, f_uv :float4) { parameter global lightAmbientColor :float4[COLOR] = float4(0.1,0.1,0.1,1); texture albedo = [diffuse-bricks]; var albedoColor :float4; albedoColor = sample(albedo, f_uv.xy); return saturate(albedoColor * f_diffuse + albedoColor * lightAmbientColor); }