From fcf83dbf9effab3bd98bad2b83b2468b7eb05cfd Mon Sep 17 00:00:00 2001 From: Tim Foley Date: Fri, 9 Jun 2017 11:34:21 -0700 Subject: Initial import of code. --- tests/hlsl/dxsdk/BasicHLSLFX11/BasicHLSLFX11.fx | 181 ++++++++++++++++++++++++ 1 file changed, 181 insertions(+) create mode 100644 tests/hlsl/dxsdk/BasicHLSLFX11/BasicHLSLFX11.fx (limited to 'tests/hlsl/dxsdk/BasicHLSLFX11') diff --git a/tests/hlsl/dxsdk/BasicHLSLFX11/BasicHLSLFX11.fx b/tests/hlsl/dxsdk/BasicHLSLFX11/BasicHLSLFX11.fx new file mode 100644 index 000000000..1ecc1930a --- /dev/null +++ b/tests/hlsl/dxsdk/BasicHLSLFX11/BasicHLSLFX11.fx @@ -0,0 +1,181 @@ +//TEST_IGNORE_FILE: +//-------------------------------------------------------------------------------------- +// File: BasicHLSL11.fx +// +// The effect file for the BasicHLSL sample. +// +// Copyright (c) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + + +//-------------------------------------------------------------------------------------- +// Global variables +//-------------------------------------------------------------------------------------- +float4 g_MaterialAmbientColor; // Material's ambient color +float4 g_MaterialDiffuseColor; // Material's diffuse color +int g_nNumLights; + +float3 g_LightDir[3]; // Light's direction in world space +float4 g_LightDiffuse[3]; // Light's diffuse color +float4 g_LightAmbient; // Light's ambient color + +Texture2D g_MeshTexture; // Color texture for mesh + +float g_fTime; // App's time in seconds +float4x4 g_mWorld; // World matrix for object +float4x4 g_mWorldViewProjection; // World * View * Projection matrix + +//-------------------------------------------------------------------------------------- +// DepthStates +//-------------------------------------------------------------------------------------- +DepthStencilState EnableDepth +{ + DepthEnable = TRUE; + DepthWriteMask = ALL; + DepthFunc = LESS_EQUAL; +}; + +//-------------------------------------------------------------------------------------- +// Texture samplers +//-------------------------------------------------------------------------------------- +SamplerState MeshTextureSampler +{ + Filter = MIN_MAG_MIP_LINEAR; + AddressU = Wrap; + AddressV = Wrap; +}; + + +//-------------------------------------------------------------------------------------- +// Vertex shader output structure +//-------------------------------------------------------------------------------------- +struct VS_OUTPUT +{ + float4 Position : SV_POSITION; // vertex position + float4 Diffuse : COLOR0; // vertex diffuse color (note that COLOR0 is clamped from 0..1) + float2 TextureUV : TEXCOORD0; // vertex texture coords +}; + + +//-------------------------------------------------------------------------------------- +// This shader computes standard transform and lighting +//-------------------------------------------------------------------------------------- +VS_OUTPUT RenderSceneVS( float4 vPos : POSITION, + float3 vNormal : NORMAL, + float2 vTexCoord0 : TEXCOORD, + uniform int nNumLights, + uniform bool bTexture, + uniform bool bAnimate ) +{ + VS_OUTPUT Output; + float3 vNormalWorldSpace; + + float4 vAnimatedPos = vPos; + + // Animation the vertex based on time and the vertex's object space position + if( bAnimate ) + vAnimatedPos += float4(vNormal, 0) * (sin(g_fTime+5.5)+0.5)*5; + + // Transform the position from object space to homogeneous projection space + Output.Position = mul(vAnimatedPos, g_mWorldViewProjection); + + // Transform the normal from object space to world space + vNormalWorldSpace = normalize(mul(vNormal, (float3x3)g_mWorld)); // normal (world space) + + // Compute simple directional lighting equation + float3 vTotalLightDiffuse = float3(0,0,0); + for(int i=0; i