589 lines
15 KiB
HLSL
589 lines
15 KiB
HLSL
|
//-----------------------------------------------------------------------------
|
||
|
// BasicEffect.fx
|
||
|
//
|
||
|
// Microsoft XNA Community Game Platform
|
||
|
// Copyright (C) Microsoft Corporation. All rights reserved.
|
||
|
//-----------------------------------------------------------------------------
|
||
|
|
||
|
#include "Macros.fxh"
|
||
|
|
||
|
|
||
|
DECLARE_TEXTURE(Texture, 0);
|
||
|
|
||
|
|
||
|
BEGIN_CONSTANTS
|
||
|
|
||
|
float4 DiffuseColor _vs(c0) _ps(c1) _cb(c0);
|
||
|
float3 EmissiveColor _vs(c1) _ps(c2) _cb(c1);
|
||
|
float3 SpecularColor _vs(c2) _ps(c3) _cb(c2);
|
||
|
float SpecularPower _vs(c3) _ps(c4) _cb(c2.w);
|
||
|
|
||
|
float3 DirLight0Direction _vs(c4) _ps(c5) _cb(c3);
|
||
|
float3 DirLight0DiffuseColor _vs(c5) _ps(c6) _cb(c4);
|
||
|
float3 DirLight0SpecularColor _vs(c6) _ps(c7) _cb(c5);
|
||
|
|
||
|
float3 DirLight1Direction _vs(c7) _ps(c8) _cb(c6);
|
||
|
float3 DirLight1DiffuseColor _vs(c8) _ps(c9) _cb(c7);
|
||
|
float3 DirLight1SpecularColor _vs(c9) _ps(c10) _cb(c8);
|
||
|
|
||
|
float3 DirLight2Direction _vs(c10) _ps(c11) _cb(c9);
|
||
|
float3 DirLight2DiffuseColor _vs(c11) _ps(c12) _cb(c10);
|
||
|
float3 DirLight2SpecularColor _vs(c12) _ps(c13) _cb(c11);
|
||
|
|
||
|
float3 EyePosition _vs(c13) _ps(c14) _cb(c12);
|
||
|
|
||
|
float3 FogColor _ps(c0) _cb(c13);
|
||
|
float4 FogVector _vs(c14) _cb(c14);
|
||
|
|
||
|
float4x4 World _vs(c19) _cb(c15);
|
||
|
float3x3 WorldInverseTranspose _vs(c23) _cb(c19);
|
||
|
|
||
|
MATRIX_CONSTANTS
|
||
|
|
||
|
float4x4 WorldViewProj _vs(c15) _cb(c0);
|
||
|
|
||
|
END_CONSTANTS
|
||
|
|
||
|
|
||
|
#include "Structures.fxh"
|
||
|
#include "Common.fxh"
|
||
|
#include "Lighting.fxh"
|
||
|
|
||
|
|
||
|
// Vertex shader: basic.
|
||
|
VSOutput VSBasic(VSInput vin)
|
||
|
{
|
||
|
VSOutput vout;
|
||
|
|
||
|
CommonVSOutput cout = ComputeCommonVSOutput(vin.Position);
|
||
|
SetCommonVSOutputParams;
|
||
|
|
||
|
return vout;
|
||
|
}
|
||
|
|
||
|
|
||
|
// Vertex shader: no fog.
|
||
|
VSOutputNoFog VSBasicNoFog(VSInput vin)
|
||
|
{
|
||
|
VSOutputNoFog vout;
|
||
|
|
||
|
CommonVSOutput cout = ComputeCommonVSOutput(vin.Position);
|
||
|
SetCommonVSOutputParamsNoFog;
|
||
|
|
||
|
return vout;
|
||
|
}
|
||
|
|
||
|
|
||
|
// Vertex shader: vertex color.
|
||
|
VSOutput VSBasicVc(VSInputVc vin)
|
||
|
{
|
||
|
VSOutput vout;
|
||
|
|
||
|
CommonVSOutput cout = ComputeCommonVSOutput(vin.Position);
|
||
|
SetCommonVSOutputParams;
|
||
|
|
||
|
vout.Diffuse *= vin.Color;
|
||
|
|
||
|
return vout;
|
||
|
}
|
||
|
|
||
|
|
||
|
// Vertex shader: vertex color, no fog.
|
||
|
VSOutputNoFog VSBasicVcNoFog(VSInputVc vin)
|
||
|
{
|
||
|
VSOutputNoFog vout;
|
||
|
|
||
|
CommonVSOutput cout = ComputeCommonVSOutput(vin.Position);
|
||
|
SetCommonVSOutputParamsNoFog;
|
||
|
|
||
|
vout.Diffuse *= vin.Color;
|
||
|
|
||
|
return vout;
|
||
|
}
|
||
|
|
||
|
|
||
|
// Vertex shader: texture.
|
||
|
VSOutputTx VSBasicTx(VSInputTx vin)
|
||
|
{
|
||
|
VSOutputTx vout;
|
||
|
|
||
|
CommonVSOutput cout = ComputeCommonVSOutput(vin.Position);
|
||
|
SetCommonVSOutputParams;
|
||
|
|
||
|
vout.TexCoord = vin.TexCoord;
|
||
|
|
||
|
return vout;
|
||
|
}
|
||
|
|
||
|
|
||
|
// Vertex shader: texture, no fog.
|
||
|
VSOutputTxNoFog VSBasicTxNoFog(VSInputTx vin)
|
||
|
{
|
||
|
VSOutputTxNoFog vout;
|
||
|
|
||
|
CommonVSOutput cout = ComputeCommonVSOutput(vin.Position);
|
||
|
SetCommonVSOutputParamsNoFog;
|
||
|
|
||
|
vout.TexCoord = vin.TexCoord;
|
||
|
|
||
|
return vout;
|
||
|
}
|
||
|
|
||
|
|
||
|
// Vertex shader: texture + vertex color.
|
||
|
VSOutputTx VSBasicTxVc(VSInputTxVc vin)
|
||
|
{
|
||
|
VSOutputTx vout;
|
||
|
|
||
|
CommonVSOutput cout = ComputeCommonVSOutput(vin.Position);
|
||
|
SetCommonVSOutputParams;
|
||
|
|
||
|
vout.TexCoord = vin.TexCoord;
|
||
|
vout.Diffuse *= vin.Color;
|
||
|
|
||
|
return vout;
|
||
|
}
|
||
|
|
||
|
|
||
|
// Vertex shader: texture + vertex color, no fog.
|
||
|
VSOutputTxNoFog VSBasicTxVcNoFog(VSInputTxVc vin)
|
||
|
{
|
||
|
VSOutputTxNoFog vout;
|
||
|
|
||
|
CommonVSOutput cout = ComputeCommonVSOutput(vin.Position);
|
||
|
SetCommonVSOutputParamsNoFog;
|
||
|
|
||
|
vout.TexCoord = vin.TexCoord;
|
||
|
vout.Diffuse *= vin.Color;
|
||
|
|
||
|
return vout;
|
||
|
}
|
||
|
|
||
|
|
||
|
// Vertex shader: vertex lighting.
|
||
|
VSOutput VSBasicVertexLighting(VSInputNm vin)
|
||
|
{
|
||
|
VSOutput vout;
|
||
|
|
||
|
CommonVSOutput cout = ComputeCommonVSOutputWithLighting(vin.Position, vin.Normal, 3);
|
||
|
SetCommonVSOutputParams;
|
||
|
|
||
|
return vout;
|
||
|
}
|
||
|
|
||
|
|
||
|
// Vertex shader: vertex lighting + vertex color.
|
||
|
VSOutput VSBasicVertexLightingVc(VSInputNmVc vin)
|
||
|
{
|
||
|
VSOutput vout;
|
||
|
|
||
|
CommonVSOutput cout = ComputeCommonVSOutputWithLighting(vin.Position, vin.Normal, 3);
|
||
|
SetCommonVSOutputParams;
|
||
|
|
||
|
vout.Diffuse *= vin.Color;
|
||
|
|
||
|
return vout;
|
||
|
}
|
||
|
|
||
|
|
||
|
// Vertex shader: vertex lighting + texture.
|
||
|
VSOutputTx VSBasicVertexLightingTx(VSInputNmTx vin)
|
||
|
{
|
||
|
VSOutputTx vout;
|
||
|
|
||
|
CommonVSOutput cout = ComputeCommonVSOutputWithLighting(vin.Position, vin.Normal, 3);
|
||
|
SetCommonVSOutputParams;
|
||
|
|
||
|
vout.TexCoord = vin.TexCoord;
|
||
|
|
||
|
return vout;
|
||
|
}
|
||
|
|
||
|
|
||
|
// Vertex shader: vertex lighting + texture + vertex color.
|
||
|
VSOutputTx VSBasicVertexLightingTxVc(VSInputNmTxVc vin)
|
||
|
{
|
||
|
VSOutputTx vout;
|
||
|
|
||
|
CommonVSOutput cout = ComputeCommonVSOutputWithLighting(vin.Position, vin.Normal, 3);
|
||
|
SetCommonVSOutputParams;
|
||
|
|
||
|
vout.TexCoord = vin.TexCoord;
|
||
|
vout.Diffuse *= vin.Color;
|
||
|
|
||
|
return vout;
|
||
|
}
|
||
|
|
||
|
|
||
|
// Vertex shader: one light.
|
||
|
VSOutput VSBasicOneLight(VSInputNm vin)
|
||
|
{
|
||
|
VSOutput vout;
|
||
|
|
||
|
CommonVSOutput cout = ComputeCommonVSOutputWithLighting(vin.Position, vin.Normal, 1);
|
||
|
SetCommonVSOutputParams;
|
||
|
|
||
|
return vout;
|
||
|
}
|
||
|
|
||
|
|
||
|
// Vertex shader: one light + vertex color.
|
||
|
VSOutput VSBasicOneLightVc(VSInputNmVc vin)
|
||
|
{
|
||
|
VSOutput vout;
|
||
|
|
||
|
CommonVSOutput cout = ComputeCommonVSOutputWithLighting(vin.Position, vin.Normal, 1);
|
||
|
SetCommonVSOutputParams;
|
||
|
|
||
|
vout.Diffuse *= vin.Color;
|
||
|
|
||
|
return vout;
|
||
|
}
|
||
|
|
||
|
|
||
|
// Vertex shader: one light + texture.
|
||
|
VSOutputTx VSBasicOneLightTx(VSInputNmTx vin)
|
||
|
{
|
||
|
VSOutputTx vout;
|
||
|
|
||
|
CommonVSOutput cout = ComputeCommonVSOutputWithLighting(vin.Position, vin.Normal, 1);
|
||
|
SetCommonVSOutputParams;
|
||
|
|
||
|
vout.TexCoord = vin.TexCoord;
|
||
|
|
||
|
return vout;
|
||
|
}
|
||
|
|
||
|
|
||
|
// Vertex shader: one light + texture + vertex color.
|
||
|
VSOutputTx VSBasicOneLightTxVc(VSInputNmTxVc vin)
|
||
|
{
|
||
|
VSOutputTx vout;
|
||
|
|
||
|
CommonVSOutput cout = ComputeCommonVSOutputWithLighting(vin.Position, vin.Normal, 1);
|
||
|
SetCommonVSOutputParams;
|
||
|
|
||
|
vout.TexCoord = vin.TexCoord;
|
||
|
vout.Diffuse *= vin.Color;
|
||
|
|
||
|
return vout;
|
||
|
}
|
||
|
|
||
|
|
||
|
// Vertex shader: pixel lighting.
|
||
|
VSOutputPixelLighting VSBasicPixelLighting(VSInputNm vin)
|
||
|
{
|
||
|
VSOutputPixelLighting vout;
|
||
|
|
||
|
CommonVSOutputPixelLighting cout = ComputeCommonVSOutputPixelLighting(vin.Position, vin.Normal);
|
||
|
SetCommonVSOutputParamsPixelLighting;
|
||
|
|
||
|
vout.Diffuse = float4(1, 1, 1, DiffuseColor.a);
|
||
|
|
||
|
return vout;
|
||
|
}
|
||
|
|
||
|
|
||
|
// Vertex shader: pixel lighting + vertex color.
|
||
|
VSOutputPixelLighting VSBasicPixelLightingVc(VSInputNmVc vin)
|
||
|
{
|
||
|
VSOutputPixelLighting vout;
|
||
|
|
||
|
CommonVSOutputPixelLighting cout = ComputeCommonVSOutputPixelLighting(vin.Position, vin.Normal);
|
||
|
SetCommonVSOutputParamsPixelLighting;
|
||
|
|
||
|
vout.Diffuse.rgb = vin.Color.rgb;
|
||
|
vout.Diffuse.a = vin.Color.a * DiffuseColor.a;
|
||
|
|
||
|
return vout;
|
||
|
}
|
||
|
|
||
|
|
||
|
// Vertex shader: pixel lighting + texture.
|
||
|
VSOutputPixelLightingTx VSBasicPixelLightingTx(VSInputNmTx vin)
|
||
|
{
|
||
|
VSOutputPixelLightingTx vout;
|
||
|
|
||
|
CommonVSOutputPixelLighting cout = ComputeCommonVSOutputPixelLighting(vin.Position, vin.Normal);
|
||
|
SetCommonVSOutputParamsPixelLighting;
|
||
|
|
||
|
vout.Diffuse = float4(1, 1, 1, DiffuseColor.a);
|
||
|
vout.TexCoord = vin.TexCoord;
|
||
|
|
||
|
return vout;
|
||
|
}
|
||
|
|
||
|
|
||
|
// Vertex shader: pixel lighting + texture + vertex color.
|
||
|
VSOutputPixelLightingTx VSBasicPixelLightingTxVc(VSInputNmTxVc vin)
|
||
|
{
|
||
|
VSOutputPixelLightingTx vout;
|
||
|
|
||
|
CommonVSOutputPixelLighting cout = ComputeCommonVSOutputPixelLighting(vin.Position, vin.Normal);
|
||
|
SetCommonVSOutputParamsPixelLighting;
|
||
|
|
||
|
vout.Diffuse.rgb = vin.Color.rgb;
|
||
|
vout.Diffuse.a = vin.Color.a * DiffuseColor.a;
|
||
|
vout.TexCoord = vin.TexCoord;
|
||
|
|
||
|
return vout;
|
||
|
}
|
||
|
|
||
|
|
||
|
// Pixel shader: basic.
|
||
|
float4 PSBasic(PSInput pin) : SV_Target0
|
||
|
{
|
||
|
float4 color = pin.Diffuse;
|
||
|
|
||
|
ApplyFog(color, pin.Specular.w);
|
||
|
|
||
|
return color;
|
||
|
}
|
||
|
|
||
|
|
||
|
// Pixel shader: no fog.
|
||
|
float4 PSBasicNoFog(PSInputNoFog pin) : SV_Target0
|
||
|
{
|
||
|
return pin.Diffuse;
|
||
|
}
|
||
|
|
||
|
|
||
|
// Pixel shader: texture.
|
||
|
float4 PSBasicTx(PSInputTx pin) : SV_Target0
|
||
|
{
|
||
|
float4 color = SAMPLE_TEXTURE(Texture, pin.TexCoord) * pin.Diffuse;
|
||
|
|
||
|
ApplyFog(color, pin.Specular.w);
|
||
|
|
||
|
return color;
|
||
|
}
|
||
|
|
||
|
|
||
|
// Pixel shader: texture, no fog.
|
||
|
float4 PSBasicTxNoFog(PSInputTxNoFog pin) : SV_Target0
|
||
|
{
|
||
|
return SAMPLE_TEXTURE(Texture, pin.TexCoord) * pin.Diffuse;
|
||
|
}
|
||
|
|
||
|
|
||
|
// Pixel shader: vertex lighting.
|
||
|
float4 PSBasicVertexLighting(PSInput pin) : SV_Target0
|
||
|
{
|
||
|
float4 color = pin.Diffuse;
|
||
|
|
||
|
AddSpecular(color, pin.Specular.rgb);
|
||
|
ApplyFog(color, pin.Specular.w);
|
||
|
|
||
|
return color;
|
||
|
}
|
||
|
|
||
|
|
||
|
// Pixel shader: vertex lighting, no fog.
|
||
|
float4 PSBasicVertexLightingNoFog(PSInput pin) : SV_Target0
|
||
|
{
|
||
|
float4 color = pin.Diffuse;
|
||
|
|
||
|
AddSpecular(color, pin.Specular.rgb);
|
||
|
|
||
|
return color;
|
||
|
}
|
||
|
|
||
|
|
||
|
// Pixel shader: vertex lighting + texture.
|
||
|
float4 PSBasicVertexLightingTx(PSInputTx pin) : SV_Target0
|
||
|
{
|
||
|
float4 color = SAMPLE_TEXTURE(Texture, pin.TexCoord) * pin.Diffuse;
|
||
|
|
||
|
AddSpecular(color, pin.Specular.rgb);
|
||
|
ApplyFog(color, pin.Specular.w);
|
||
|
|
||
|
return color;
|
||
|
}
|
||
|
|
||
|
|
||
|
// Pixel shader: vertex lighting + texture, no fog.
|
||
|
float4 PSBasicVertexLightingTxNoFog(PSInputTx pin) : SV_Target0
|
||
|
{
|
||
|
float4 color = SAMPLE_TEXTURE(Texture, pin.TexCoord) * pin.Diffuse;
|
||
|
|
||
|
AddSpecular(color, pin.Specular.rgb);
|
||
|
|
||
|
return color;
|
||
|
}
|
||
|
|
||
|
|
||
|
// Pixel shader: pixel lighting.
|
||
|
float4 PSBasicPixelLighting(PSInputPixelLighting pin) : SV_Target0
|
||
|
{
|
||
|
float4 color = pin.Diffuse;
|
||
|
|
||
|
float3 eyeVector = normalize(EyePosition - pin.PositionWS.xyz);
|
||
|
float3 worldNormal = normalize(pin.NormalWS);
|
||
|
|
||
|
ColorPair lightResult = ComputeLights(eyeVector, worldNormal, 3);
|
||
|
|
||
|
color.rgb *= lightResult.Diffuse;
|
||
|
|
||
|
AddSpecular(color, lightResult.Specular);
|
||
|
ApplyFog(color, pin.PositionWS.w);
|
||
|
|
||
|
return color;
|
||
|
}
|
||
|
|
||
|
|
||
|
// Pixel shader: pixel lighting + texture.
|
||
|
float4 PSBasicPixelLightingTx(PSInputPixelLightingTx pin) : SV_Target0
|
||
|
{
|
||
|
float4 color = SAMPLE_TEXTURE(Texture, pin.TexCoord) * pin.Diffuse;
|
||
|
|
||
|
float3 eyeVector = normalize(EyePosition - pin.PositionWS.xyz);
|
||
|
float3 worldNormal = normalize(pin.NormalWS);
|
||
|
|
||
|
ColorPair lightResult = ComputeLights(eyeVector, worldNormal, 3);
|
||
|
|
||
|
color.rgb *= lightResult.Diffuse;
|
||
|
|
||
|
AddSpecular(color, lightResult.Specular);
|
||
|
ApplyFog(color, pin.PositionWS.w);
|
||
|
|
||
|
return color;
|
||
|
}
|
||
|
|
||
|
|
||
|
VertexShader VSArray[20] =
|
||
|
{
|
||
|
compile vs_2_0 VSBasic(),
|
||
|
compile vs_2_0 VSBasicNoFog(),
|
||
|
compile vs_2_0 VSBasicVc(),
|
||
|
compile vs_2_0 VSBasicVcNoFog(),
|
||
|
compile vs_2_0 VSBasicTx(),
|
||
|
compile vs_2_0 VSBasicTxNoFog(),
|
||
|
compile vs_2_0 VSBasicTxVc(),
|
||
|
compile vs_2_0 VSBasicTxVcNoFog(),
|
||
|
|
||
|
compile vs_2_0 VSBasicVertexLighting(),
|
||
|
compile vs_2_0 VSBasicVertexLightingVc(),
|
||
|
compile vs_2_0 VSBasicVertexLightingTx(),
|
||
|
compile vs_2_0 VSBasicVertexLightingTxVc(),
|
||
|
|
||
|
compile vs_2_0 VSBasicOneLight(),
|
||
|
compile vs_2_0 VSBasicOneLightVc(),
|
||
|
compile vs_2_0 VSBasicOneLightTx(),
|
||
|
compile vs_2_0 VSBasicOneLightTxVc(),
|
||
|
|
||
|
compile vs_2_0 VSBasicPixelLighting(),
|
||
|
compile vs_2_0 VSBasicPixelLightingVc(),
|
||
|
compile vs_2_0 VSBasicPixelLightingTx(),
|
||
|
compile vs_2_0 VSBasicPixelLightingTxVc(),
|
||
|
};
|
||
|
|
||
|
|
||
|
int VSIndices[32] =
|
||
|
{
|
||
|
0, // basic
|
||
|
1, // no fog
|
||
|
2, // vertex color
|
||
|
3, // vertex color, no fog
|
||
|
4, // texture
|
||
|
5, // texture, no fog
|
||
|
6, // texture + vertex color
|
||
|
7, // texture + vertex color, no fog
|
||
|
|
||
|
8, // vertex lighting
|
||
|
8, // vertex lighting, no fog
|
||
|
9, // vertex lighting + vertex color
|
||
|
9, // vertex lighting + vertex color, no fog
|
||
|
10, // vertex lighting + texture
|
||
|
10, // vertex lighting + texture, no fog
|
||
|
11, // vertex lighting + texture + vertex color
|
||
|
11, // vertex lighting + texture + vertex color, no fog
|
||
|
|
||
|
12, // one light
|
||
|
12, // one light, no fog
|
||
|
13, // one light + vertex color
|
||
|
13, // one light + vertex color, no fog
|
||
|
14, // one light + texture
|
||
|
14, // one light + texture, no fog
|
||
|
15, // one light + texture + vertex color
|
||
|
15, // one light + texture + vertex color, no fog
|
||
|
|
||
|
16, // pixel lighting
|
||
|
16, // pixel lighting, no fog
|
||
|
17, // pixel lighting + vertex color
|
||
|
17, // pixel lighting + vertex color, no fog
|
||
|
18, // pixel lighting + texture
|
||
|
18, // pixel lighting + texture, no fog
|
||
|
19, // pixel lighting + texture + vertex color
|
||
|
19, // pixel lighting + texture + vertex color, no fog
|
||
|
};
|
||
|
|
||
|
|
||
|
PixelShader PSArray[10] =
|
||
|
{
|
||
|
compile ps_2_0 PSBasic(),
|
||
|
compile ps_2_0 PSBasicNoFog(),
|
||
|
compile ps_2_0 PSBasicTx(),
|
||
|
compile ps_2_0 PSBasicTxNoFog(),
|
||
|
|
||
|
compile ps_2_0 PSBasicVertexLighting(),
|
||
|
compile ps_2_0 PSBasicVertexLightingNoFog(),
|
||
|
compile ps_2_0 PSBasicVertexLightingTx(),
|
||
|
compile ps_2_0 PSBasicVertexLightingTxNoFog(),
|
||
|
|
||
|
compile ps_2_0 PSBasicPixelLighting(),
|
||
|
compile ps_2_0 PSBasicPixelLightingTx(),
|
||
|
};
|
||
|
|
||
|
|
||
|
int PSIndices[32] =
|
||
|
{
|
||
|
0, // basic
|
||
|
1, // no fog
|
||
|
0, // vertex color
|
||
|
1, // vertex color, no fog
|
||
|
2, // texture
|
||
|
3, // texture, no fog
|
||
|
2, // texture + vertex color
|
||
|
3, // texture + vertex color, no fog
|
||
|
|
||
|
4, // vertex lighting
|
||
|
5, // vertex lighting, no fog
|
||
|
4, // vertex lighting + vertex color
|
||
|
5, // vertex lighting + vertex color, no fog
|
||
|
6, // vertex lighting + texture
|
||
|
7, // vertex lighting + texture, no fog
|
||
|
6, // vertex lighting + texture + vertex color
|
||
|
7, // vertex lighting + texture + vertex color, no fog
|
||
|
|
||
|
4, // one light
|
||
|
5, // one light, no fog
|
||
|
4, // one light + vertex color
|
||
|
5, // one light + vertex color, no fog
|
||
|
6, // one light + texture
|
||
|
7, // one light + texture, no fog
|
||
|
6, // one light + texture + vertex color
|
||
|
7, // one light + texture + vertex color, no fog
|
||
|
|
||
|
8, // pixel lighting
|
||
|
8, // pixel lighting, no fog
|
||
|
8, // pixel lighting + vertex color
|
||
|
8, // pixel lighting + vertex color, no fog
|
||
|
9, // pixel lighting + texture
|
||
|
9, // pixel lighting + texture, no fog
|
||
|
9, // pixel lighting + texture + vertex color
|
||
|
9, // pixel lighting + texture + vertex color, no fog
|
||
|
};
|
||
|
|
||
|
|
||
|
int ShaderIndex = 0;
|
||
|
|
||
|
|
||
|
Technique BasicEffect
|
||
|
{
|
||
|
Pass
|
||
|
{
|
||
|
VertexShader = (VSArray[VSIndices[ShaderIndex]]);
|
||
|
PixelShader = (PSArray[PSIndices[ShaderIndex]]);
|
||
|
}
|
||
|
}
|