view Data/Shaders/Environment.fx @ 15:ee1c2510096d

Work on GUI system
author koryspansel <koryspansel@bendbroadband.com>
date Wed, 14 Sep 2011 11:04:18 -0700
parents fd55825393df
children b0f642ee22d3
line wrap: on
line source

extern uniform float4x4	kWorld;
extern uniform float4x4	kView;
extern uniform float4x4	kProjection;
extern uniform float4	kColor;
extern uniform texture	kTexture;

sampler TextureSampler = sampler_state
{
	Texture		= <kTexture>;
	MinFilter	= ANISOTROPIC;
	MagFilter	= ANISOTROPIC;
	AddressU	= CLAMP;
	AddressV	= CLAMP;
};

struct VertexOutput
{
	/*
	 * kPosition
	 */
	float4 kPosition : POSITION0;
	
	/*
	 * kTextureCoords
	 */
	float2 kTextureCoords : TEXCOORD0;
};

VertexOutput EnvironmentVS(float3 kVertexPosition : POSITION0, float3 kVertexNormal : NORMAL, float2 kTextureCoords : TEXCOORD0)
{
	float4x4 kWorldViewProjection = mul(mul(kWorld, kView), kProjection);
	
	VertexOutput kOutput;
	kOutput.kPosition		= mul(float4(kVertexPosition, 1.0f), kWorldViewProjection);
	kOutput.kTextureCoords	= kTextureCoords;

	return kOutput;
}

float4 EnvironmentPS(float2 kTextureCoords : TEXCOORD0) : COLOR0
{
	float4 kTexture = tex2D(TextureSampler, kTextureCoords);
	return  float4(kTexture.rgb * kColor.rgb, kTexture.a);
}

technique Default
{
	pass Pass0
	{
		vertexShader	= compile vs_2_0 EnvironmentVS();
		pixelShader		= compile ps_2_0 EnvironmentPS();

		ZEnable			= true;
		ZWriteEnable	= true;
		ZFunc			= LessEqual;
	}
}

technique Wire
{
	pass Pass0
	{
		vertexShader	= compile vs_2_0 EnvironmentVS();
		pixelShader		= compile ps_2_0 EnvironmentPS();

		ZEnable			= true;
		ZWriteEnable	= false;
		ZFunc			= LessEqual;
		FillMode		= Wireframe;
	}
}