All pastes #410066 Raw Edit

Cody Brocious

public c v1 · immutable
#410066 ·published 2007-03-26 02:36 UTC
rendered paste body
//// Constant Buffer Variables//Texture2D g_txDiffuse;SamplerState samLinear{    Filter = MIN_MAG_MIP_LINEAR;    AddressU = Wrap;    AddressV = Wrap;};TextureCube g_txEnvMap;SamplerState samLinearClamp{    Filter = MIN_MAG_MIP_LINEAR;    AddressU = Clamp;    AddressV = Clamp;};cbuffer cbConstant{    float3 vLightDir = float3(-0.577,0.577,-0.577);};cbuffer cbChangesEveryFrame{    matrix World;    matrix View;    matrix Projection;    float Time;};cbuffer cbUserChanges{    float Waviness;};struct VS_INPUT{    float3 Pos          : POSITION;         //position    float3 Norm         : NORMAL;           //normal    float2 Tex          : TEXCOORD0;        //texture coordinate};struct PS_INPUT{    float4 Pos : SV_POSITION;    float3 Norm : TEXCOORD0;    float2 Tex : TEXCOORD1;    float3 ViewR : TEXCOORD2;};BlendState NoBlending{    AlphaToCoverageEnable = FALSE;    BlendEnable[0] = FALSE;};//// Vertex Shader//PS_INPUT VS( VS_INPUT input ){    PS_INPUT output = (PS_INPUT)0;        output.Pos = mul( float4(input.Pos,1), World );        output.Pos.x += sin( output.Pos.y*0.1f + Time )*Waviness;        output.Pos = mul( output.Pos, View );    output.Pos = mul( output.Pos, Projection );    output.Norm = mul( input.Norm, (float3x3)World );    output.Tex = input.Tex;        // Calculate the reflection vector    float3 viewNorm = mul( output.Norm, (float3x3)View );    output.ViewR = reflect( viewNorm, float3(0,0,-1.0) );        return output;}//// Pixel Shader//float4 PS( PS_INPUT input) : SV_Target{    // Calculate lighting assuming light color is <1,1,1,1>    float fLighting = saturate( dot( input.Norm, vLightDir ) );       // Load the environment map texture    float4 cReflect = g_txEnvMap.Sample( samLinearClamp, input.ViewR );        // Load the diffuse texture and multiply by the lighting amount    float4 cDiffuse = g_txDiffuse.Sample( samLinear, input.Tex ) * fLighting;        // Add diffuse to reflection and go    float4 cTotal = cDiffuse + cReflect;    cTotal.a = 1;    return cTotal;}//// Technique//technique10 Render{    pass P0    {        SetVertexShader( CompileShader( vs_4_0, VS() ) );        SetGeometryShader( NULL );        SetPixelShader( CompileShader( ps_4_0, PS() ) );                SetBlendState( NoBlending, float4( 0.0f, 0.0f, 0.0f, 0.0f ), 0xFFFFFFFF );    }}