diff options
Diffstat (limited to 'tests/hlsl/dxsdk/Direct3D11TutorialsFX11/Tutorial13/Tutorial13.fx')
| -rw-r--r-- | tests/hlsl/dxsdk/Direct3D11TutorialsFX11/Tutorial13/Tutorial13.fx | 191 |
1 files changed, 0 insertions, 191 deletions
diff --git a/tests/hlsl/dxsdk/Direct3D11TutorialsFX11/Tutorial13/Tutorial13.fx b/tests/hlsl/dxsdk/Direct3D11TutorialsFX11/Tutorial13/Tutorial13.fx deleted file mode 100644 index a6f09ecc7..000000000 --- a/tests/hlsl/dxsdk/Direct3D11TutorialsFX11/Tutorial13/Tutorial13.fx +++ /dev/null @@ -1,191 +0,0 @@ -//TEST_IGNORE_FILE: -//-------------------------------------------------------------------------------------- -// File: Tutorial13.fx -// -// Copyright (c) Microsoft Corporation. All rights reserved. -//-------------------------------------------------------------------------------------- - - -//-------------------------------------------------------------------------------------- -// 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 Explode; -}; - -struct VS_INPUT -{ - float3 Pos : POSITION; - float3 Norm : NORMAL; - float2 Tex : TEXCOORD0; -}; - -struct GSPS_INPUT -{ - float4 Pos : SV_POSITION; - float3 Norm : TEXCOORD0; - float2 Tex : TEXCOORD1; -}; - -//-------------------------------------------------------------------------------------- -// DepthStates -//-------------------------------------------------------------------------------------- -DepthStencilState EnableDepth -{ - DepthEnable = TRUE; - DepthWriteMask = ALL; - DepthFunc = LESS_EQUAL; -}; - -BlendState NoBlending -{ - AlphaToCoverageEnable = FALSE; - BlendEnable[0] = FALSE; -}; - - -//-------------------------------------------------------------------------------------- -// Vertex Shader -//-------------------------------------------------------------------------------------- -GSPS_INPUT VS( VS_INPUT input ) -{ - GSPS_INPUT output = (GSPS_INPUT)0; - - output.Pos = mul( float4(input.Pos,1), World ); - output.Norm = mul( input.Norm, (float3x3)World ); - output.Tex = input.Tex; - - return output; -} - - -//-------------------------------------------------------------------------------------- -// Geometry Shader -//-------------------------------------------------------------------------------------- -[maxvertexcount(12)] -void GS( triangle GSPS_INPUT input[3], inout TriangleStream<GSPS_INPUT> TriStream ) -{ - GSPS_INPUT output; - - // - // Calculate the face normal - // - float3 faceEdgeA = input[1].Pos - input[0].Pos; - float3 faceEdgeB = input[2].Pos - input[0].Pos; - float3 faceNormal = normalize( cross(faceEdgeA, faceEdgeB) ); - float3 ExplodeAmt = faceNormal*Explode; - - // - // Calculate the face center - // - float3 centerPos = (input[0].Pos.xyz + input[1].Pos.xyz + input[2].Pos.xyz)/3.0; - float2 centerTex = (input[0].Tex + input[1].Tex + input[2].Tex)/3.0; - centerPos += faceNormal*Explode; - - // - // Output the pyramid - // - for( int i=0; i<3; i++ ) - { - output.Pos = input[i].Pos + float4(ExplodeAmt,0); - output.Pos = mul( output.Pos, View ); - output.Pos = mul( output.Pos, Projection ); - output.Norm = input[i].Norm; - output.Tex = input[i].Tex; - TriStream.Append( output ); - - int iNext = (i+1)%3; - output.Pos = input[iNext].Pos + float4(ExplodeAmt,0); - output.Pos = mul( output.Pos, View ); - output.Pos = mul( output.Pos, Projection ); - output.Norm = input[iNext].Norm; - output.Tex = input[iNext].Tex; - TriStream.Append( output ); - - output.Pos = float4(centerPos,1) + float4(ExplodeAmt,0); - output.Pos = mul( output.Pos, View ); - output.Pos = mul( output.Pos, Projection ); - output.Norm = faceNormal; - output.Tex = centerTex; - TriStream.Append( output ); - - TriStream.RestartStrip(); - } - - for( int i=2; i>=0; i-- ) - { - output.Pos = input[i].Pos + float4(ExplodeAmt,0); - output.Pos = mul( output.Pos, View ); - output.Pos = mul( output.Pos, Projection ); - output.Norm = -input[i].Norm; - output.Tex = input[i].Tex; - TriStream.Append( output ); - } - TriStream.RestartStrip(); -} - - -//-------------------------------------------------------------------------------------- -// Pixel Shader -//-------------------------------------------------------------------------------------- -float4 PS( GSPS_INPUT input) : SV_Target -{ - // Calculate lighting assuming light color is <1,1,1,1> - float fLighting = saturate( dot( input.Norm, vLightDir ) ); - - // Load the diffuse texture and multiply by the lighting amount - float4 cDiffuse = g_txDiffuse.Sample( samLinear, input.Tex ) * fLighting; - cDiffuse.a = 1; - - // return diffuse - return cDiffuse; -} - - -//-------------------------------------------------------------------------------------- -// Technique -//-------------------------------------------------------------------------------------- -technique11 Render -{ - pass P0 - { - SetVertexShader( CompileShader( vs_4_0, VS() ) ); - SetGeometryShader( CompileShader( gs_4_0, GS() ) ); - SetPixelShader( CompileShader( ps_4_0, PS() ) ); - - SetBlendState( NoBlending, float4( 0.0f, 0.0f, 0.0f, 0.0f ), 0xFFFFFFFF ); - SetDepthStencilState( EnableDepth, 0 ); - } -} - - |
