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 ); }}