www.pudn.com > SnowAccumulation.zip > DXUTShared.fx, change:2007-08-14,size:2594b


//-------------------------------------------------------------------------------------- 
// File: DXUTShared.fx 
// 
//  
//  
// Copyright (c) Microsoft Corporation. All rights reserved. 
//-------------------------------------------------------------------------------------- 
 
 
//-------------------------------------------------------------------------------------- 
// Global variables 
//-------------------------------------------------------------------------------------- 
float4 g_MaterialDiffuseColor;      // Material's diffuse color 
float3 g_LightDir;                  // Light's direction in world space 
float4x4 g_mWorld;                  // World matrix for object 
float4x4 g_mWorldViewProjection;    // World * View * Projection matrix 
 
 
 
//-------------------------------------------------------------------------------------- 
// Vertex shader output structure 
//-------------------------------------------------------------------------------------- 
struct VS_OUTPUT 
{ 
    float4 Position   : POSITION;   // vertex position  
    float4 Diffuse    : COLOR0;     // vertex diffuse color  
}; 
 
 
//-------------------------------------------------------------------------------------- 
// This shader computes standard transform and lighting 
//-------------------------------------------------------------------------------------- 
VS_OUTPUT RenderWith1LightNoTextureVS( float4 vPos : POSITION,  
                                       float3 vNormal : NORMAL ) 
{ 
    VS_OUTPUT Output; 
   
    // Transform the position from object space to homogeneous projection space 
    Output.Position = mul(vPos, g_mWorldViewProjection); 
     
    // Transform the normal from object space to world space     
    float3 vNormalWorldSpace; 
    vNormalWorldSpace = normalize(mul(vNormal, (float3x3)g_mWorld)); // normal (world space) 
     
    // Compute simple directional lighting equation 
    Output.Diffuse.rgb = g_MaterialDiffuseColor * max(0,dot(vNormalWorldSpace, g_LightDir));    
    Output.Diffuse.a = 1.0f;  
     
    return Output;     
} 
 
 
//-------------------------------------------------------------------------------------- 
float4 RenderWith1LightNoTexturePS( float4 Diffuse : COLOR0 ) : COLOR0 
{  
    return Diffuse; 
} 
 
 
//-------------------------------------------------------------------------------------- 
technique RenderWith1LightNoTexture 
{ 
    pass P0 
    {           
        VertexShader = compile vs_1_1 RenderWith1LightNoTextureVS(); 
        PixelShader  = compile ps_1_1 RenderWith1LightNoTexturePS();  
    } 
}