If you'd like to support our preservation efforts (and this wasn't cheap), please consider donating or supporting us on Patreon. Thank you!
Chess Titans
| Chess Titans |
|---|
|
Sviluppatore:
Oberon Games
|
Uno dei nuovi giochi inclusi in Windows Vista e 7.
Menu di Debug
| Da fare: Vedi se il Full Speed Render fa qualcosa |
Come la maggior parte dei giochi distribuiti con Vista e 7, ha una variabile interna g_debugEnabled.
Le opzioni incluse in questo menu sono:
- Rotate Board - Ruota la scacchiera dall'altra parte nella vista 3D, ma non fa niente nella vista 2D.
- Self Play - Visualizza una partita giocata da due giocatori computer. Se un gioco è già cominciato, il gioco ne comincierà un altro.
- Toggle Top Down View - Commuta una vista 2D dall'alto al basso, ma il ritornare alla vista 3D causerà l'impostazione grafica nell'essere impostata su quella 3D con la più pessima qualità.
- Toggle Full Speed Render - Dovrebbe far girare il gioco più velocemente su computer lenti
Supporto XInput
Una funzionalità che non è documentata da nessuna parte (nemmeno nel menu Aiuto) è il supporto XInput (Gamepad) - se il gioco rileva che un controller Xbox 360 è inserito in una porta USB, la spia P1 sul controller s'illiminerà, indicando che il controller può essere usato. Probabilmente non fu documentata perché la Microsoft pensò che le persone sono troppo abituate ad utilizzare i controlli tradizionali, ed un gamepad sarebbe stato troppo strano da utilizzare. È una piccola grandiosa funzionalità, nonostante.
Controls
| Button | Effect |
|---|---|
| Left analog stick/D-pad/Shoulder Buttons/Triggers | Moves the cursor. Oddly, they can also be used to navigate the menu bar. |
| B/Back | Undoes the previous move. |
| A/X | Selects the square the cursor is on. Moving the cursor onto a piece and pressing A/X selects it. Pressing A/X on one of the highlighted squares moves the piece there. |
| Y/Start | Opens the Game Menu. |
Shader Code
In Chess.dll, there are several portions of the shader code starting at 12B9358.
float4x4 World;
float4x4 View;
float4x4 Projection;
texture DecalTexture;
texture GradientTexture;
sampler2D DecalSampler = sampler_state
{
Texture = (DecalTexture);
MinFilter = Linear;
MagFilter = Linear;
MipFilter = Linear;
AddressU = Clamp;
AddressV = Clamp;
};
sampler2D DecalSamplerQuick = sampler_state
{
Texture = (DecalTexture);
MinFilter = Point;
MagFilter = Point;
MipFilter = Point;
AddressU = Clamp;
AddressV = Clamp;
};
sampler1D GradientSampler = sampler_state
{
Texture = (GradientTexture);
MinFilter = Linear;
MagFilter = Linear;
MipFilter = None; // oh dear god. don't use mips because it'll sample from the lowest mip level when a triangle as the same texture coords for all 3 verts
AddressU = Clamp;
};
sampler2D ScreenSampler = sampler_state
{
Texture = (DecalTexture);
MinFilter = Linear;
MagFilter = Linear;
MipFilter = Linear;
AddressU = Clamp;
AddressV = Clamp;
};
sampler2D ScreenSamplerPoint = sampler_state
{
Texture = (DecalTexture);
MinFilter = Point;
MagFilter = Point;
MipFilter = Point;
AddressU = Clamp;
AddressV = Clamp;
};
technique TWorldDecal
{
pass P0
{
WorldTransform[0] = (World);
ViewTransform = (View);
ProjectionTransform = (Projection);
Lighting = false;
ZEnable = false;
ZFunc = LessEqual;
ZWriteEnable = false;
AlphaBlendEnable = true;
SrcBlend = SrcAlpha;
DestBlend = InvSrcAlpha;
Sampler[0] = (DecalSampler);
Sampler[1] = (GradientSampler);
ColorOp[0] = SelectArg1;
ColorArg1[0] = Texture;
ColorArg2[0] = Current;
ColorOp[1] = SelectArg2;
ColorArg1[1] = Texture;
ColorArg2[1] = Current;
ColorOp[2] = Disable;
AlphaOp[0] = SelectArg1;
AlphaArg1[0] = Texture;
AlphaArg2[0] = Current;
AlphaOp[1] = Modulate;
AlphaArg1[1] = Texture;
AlphaArg2[1] = Current;
AlphaOp[2] = Disable;
VertexShader = null;
PixelShader = null;
}
}
technique TWorldDecalQuick
{
pass P0
{
WorldTransform[0] = (World);
ViewTransform = (View);
ProjectionTransform = (Projection);
Lighting = false;
ZEnable = false;
ZFunc = LessEqual;
ZWriteEnable = false;
AlphaBlendEnable = true;
SrcBlend = SrcAlpha;
DestBlend = InvSrcAlpha;
Sampler[0] = (DecalSamplerQuick);
ColorOp[0] = SelectArg1;
ColorArg1[0] = Texture;
ColorArg2[0] = Current;
ColorOp[1] = Disable;
AlphaOp[0] = SelectArg1;
AlphaArg1[0] = Texture;
AlphaArg2[0] = Current;
AlphaOp[1] = Disable;
VertexShader = null;
PixelShader = null;
}
}
technique TScreenDecal
{
pass P0
{
WorldTransform[0] = (World);
ViewTransform = (World);
ProjectionTransform = (World);
Lighting = false;
ZEnable = false;
ZFunc = Always;
ZWriteEnable = true;
AlphaBlendEnable = true;
SrcBlend = SrcAlpha;
DestBlend = InvSrcAlpha;
Sampler[0] = (ScreenSampler);
Sampler[1] = (GradientSampler);
ColorOp[0] = SelectArg1;
ColorArg1[0] = Texture;
ColorArg2[0] = Current;
ColorOp[1] = SelectArg2;
ColorArg1[1] = Texture;
ColorArg2[1] = Current;
ColorOp[2] = Disable;
AlphaOp[0] = SelectArg1;
AlphaArg1[0] = Texture;
AlphaArg2[0] = Current;
AlphaOp[1] = Modulate;
AlphaArg1[1] = Texture;
AlphaArg2[1] = Current;
AlphaOp[2] = Disable;
VertexShader = null;
PixelShader = null;
}
}
technique TScreenDecalPoint
{
pass P0
{
WorldTransform[0] = (World);
ViewTransform = (World);
ProjectionTransform = (World);
Lighting = false;
ZEnable = false;
ZFunc = Always;
ZWriteEnable = true;
AlphaBlendEnable = true;
SrcBlend = SrcAlpha;
DestBlend = InvSrcAlpha;
Sampler[0] = (ScreenSamplerPoint);
Sampler[1] = (GradientSampler);
ColorOp[0] = SelectArg1;
ColorArg1[0] = Texture;
ColorArg2[0] = Current;
ColorOp[1] = SelectArg2;
ColorArg1[1] = Texture;
ColorArg2[1] = Current;
ColorOp[2] = Disable;
AlphaOp[0] = SelectArg1;
AlphaArg1[0] = Texture;
AlphaArg2[0] = Current;
AlphaOp[1] = Modulate;
AlphaArg1[1] = Texture;
AlphaArg2[1] = Current;
AlphaOp[2] = Disable;
VertexShader = null;
PixelShader = null;
}
}
technique TScreenDecalImmediate
{
pass P0
{
WorldTransform[0] = (World);
ViewTransform = (World);
ProjectionTransform = (World);
Lighting = false;
ZEnable = false;
ZFunc = Always;
ZWriteEnable = true;
AlphaBlendEnable = true;
SrcBlend = One;
DestBlend = InvSrcAlpha;
Sampler[0] = (ScreenSampler);
Sampler[1] = (GradientSampler);
ColorOp[0] = SelectArg1;
ColorArg1[0] = Texture;
ColorArg2[0] = Current;
ColorOp[1] = SelectArg2;
ColorArg1[1] = Texture;
ColorArg2[1] = Current;
ColorOp[1] = Disable;
AlphaOp[0] = SelectArg1;
AlphaArg1[0] = Texture;
AlphaArg2[0] = Current;
AlphaOp[1] = Modulate;
AlphaArg1[1] = Texture;
AlphaArg2[1] = Current;
AlphaOp[1] = Disable;
VertexShader = null;
PixelShader = null;
}
}
float4x4 WorldViewProjection;
float4x4 WorldView;
float4x4 World;
float4x4 View;
float4x4 ViewInv;
float4x4 Projection;
texture AlbedoTexture;
texture ReflTexture;
texture EnvTexture;
float Alpha;
float EnvironmentContribution = 0.25;
float ReflectionStrength = 0.25;
float TrimReflectionStrength = 0.45;
//-----------------------------------------------------------------------------
sampler2D AlbedoSampler = sampler_state
{
Texture = (AlbedoTexture);
MipFilter = Linear;
MinFilter = Linear;
MagFilter = Linear;
AddressU = Wrap;
AddressV = Wrap;
};
sampler2D ReflSampler = sampler_state
{
Texture = (ReflTexture);
MipFilter = Point;
MinFilter = Point;
MagFilter = Point;
AddressU = Clamp;
AddressV = Clamp;
};
samplerCUBE EnvSampler = sampler_state
{
Texture = (EnvTexture);
MipFilter = Point;
MinFilter = Linear;
MagFilter = Linear;
};
//-----------------------------------------------------------------------------
struct VS_OUTPUT
{
float4 Position : POSITION; // position of the vertex
float3 Diffuse : COLOR0; // diffuse color of the vertex
float2 TexCoord : TEXCOORD0;
float4 ReflCoord : TEXCOORD1;
float3 EnvCoord : TEXCOORD2;
};
//-----------------------------------------------------------------------------
VS_OUTPUT PieceVS(
uniform float3 ka,
uniform float3 kd,
uniform bool bEnvironment,
uniform bool bReflections,
float4 Pos : POSITION,
float2 TexCoord : TEXCOORD0,
float3 Normal : NORMAL0 )
{
VS_OUTPUT Output;
// Output the vetrex position in projection space
Output.Position = mul( Pos, WorldViewProjection );
float3 viewNormal = normalize( mul( Normal, (float3x3) WorldView ) );
float3 L = mul( worldLight, (float3x3) View );
float3 N = viewNormal;
float NdotL = saturate( dot( N, L ) );
float3 ambient = ka;
float3 diffuse = kd * NdotL;
Output.Diffuse = ambient + diffuse;
Output.TexCoord = TexCoord;
// note: bReflections does nothing
Output.ReflCoord = float4( 0, 0, 0, 1 );
if ( bEnvironment )
{
float3 viewPos = normalize( mul( Pos, WorldView ) );
float3 viewReflect = reflect( viewPos, viewNormal );
float3 worldReflect = mul( viewReflect, (float3x3) ViewInv );
Output.EnvCoord = worldReflect;
}
else
{
Output.EnvCoord = float3( 0, 1, 0 );
}
return Output;
}
//-----------------------------------------------------------------------------
VS_OUTPUT StandardVS(
uniform bool bEnvironment,
uniform bool bReflections,
float4 Pos : POSITION,
float2 TexCoord : TEXCOORD0,
float3 Normal : NORMAL0 )
{
VS_OUTPUT Output;
// Output the vetrex position in projection space
Output.Position = mul( Pos, WorldViewProjection );
// note: diffuse unused
Output.Diffuse = float3( 1, 1, 1 );
Output.TexCoord = TexCoord;
if ( bReflections )
{
Output.ReflCoord.x = Output.Position.x * 0.5 + Output.Position.w * 0.5;
Output.ReflCoord.y = Output.Position.w * 0.5 - Output.Position.y * 0.5;
Output.ReflCoord.z = Output.Position.w;
Output.ReflCoord.w = Output.Position.w;
}
else
{
Output.ReflCoord = float4( 0, 0, 0, 1 );
}
if ( bEnvironment )
{
float3 viewNormal = normalize( mul( Normal, (float3x3) WorldView ) );
float3 viewPos = normalize( mul( Pos, WorldView ) );
float3 viewReflect = reflect( viewPos, viewNormal );
float3 worldReflect = mul( viewReflect, (float3x3) ViewInv );
Output.EnvCoord = worldReflect;
}
else
{
Output.EnvCoord = float3( 0, 1, 0 );
}
return Output;
}
//-----------------------------------------------------------------------------
float4 PiecePS( VS_OUTPUT In, uniform bool bAlbedo, uniform bool bEnvironment, uniform bool bReflections, uniform float reflAmount ) : COLOR0
{
// note: bReflections does nothing
if ( bAlbedo )
{
float3 Albedo = tex2D( AlbedoSampler, In.TexCoord );
if ( bEnvironment )
{
float3 Environment = texCUBE( EnvSampler, In.EnvCoord ) * reflAmount;
Albedo = Albedo * environmentTextureAmount;
return float4( In.Diffuse * Albedo + Environment, Alpha );
}
else
{
return float4( In.Diffuse * Albedo, Alpha );
}
}
else
{
if ( bEnvironment )
{
float3 Environment = texCUBE( EnvSampler, In.EnvCoord ) * reflAmount;
return float4( In.Diffuse + Environment, Alpha );
}
else
{
return float4( In.Diffuse, Alpha );
}
}
}
//-----------------------------------------------------------------------------
float4 BoardPS( VS_OUTPUT In, uniform bool bEnvironment, uniform bool bReflections ) : COLOR0
{
float3 Albedo = tex2D( AlbedoSampler, In.TexCoord );
if ( bEnvironment )
{
float3 Environment = texCUBE( EnvSampler, In.EnvCoord ) * EnvironmentContribution;
if ( bReflections )
{
float4 Reflections = tex2Dproj( ReflSampler, In.ReflCoord );
float3 c = lerp( Albedo, Reflections.xyz, Reflections.w * ReflectionStrength );
return float4( c + Environment, 1 );
}
else
{
return float4( Albedo + Environment, 1 );
}
}
else
{
if ( bReflections )
{
float4 Reflections = tex2Dproj( ReflSampler, In.ReflCoord );
float3 c = lerp( Albedo, Reflections.xyz, Reflections.w * ReflectionStrength );
return float4( c, 1 );
}
else
{
return float4( Albedo, 1 );
}
}
}
//-----------------------------------------------------------------------------
float4 TablePS( VS_OUTPUT In, uniform bool bEnvironment, uniform bool bReflections ) : COLOR0
{
// note: bReflections does nothing
float3 Albedo = tex2D( AlbedoSampler, In.TexCoord );
if ( bEnvironment )
{
float3 Environment = texCUBE( EnvSampler, In.EnvCoord ) * 0.0325;
return float4( Albedo + Environment, 1 );
}
else
{
return float4( Albedo, 1 );
}
}
//-----------------------------------------------------------------------------
float4 TrimPS( VS_OUTPUT In, uniform bool bEnvironment, uniform bool bReflections ) : COLOR0
{
float3 Albedo = trimColor;
if ( bEnvironment )
{
float3 Environment = texCUBE( EnvSampler, In.EnvCoord ) * EnvironmentContribution;
if ( bReflections )
{
float4 Reflections = tex2Dproj( ReflSampler, In.ReflCoord );
float3 c = lerp( Albedo, Reflections.xyz, Reflections.w * TrimReflectionStrength );
return float4( c + Environment, 1 );
}
else
{
return float4( Albedo + Environment, 1 );
}
}
else
{
if ( bReflections )
{
float4 Reflections = tex2Dproj( ReflSampler, In.ReflCoord );
float3 c = lerp( Albedo, Reflections.xyz, Reflections.w * TrimReflectionStrength );
return float4( c, 1 );
}
else
{
return float4( Albedo, 1 );
}
}
}
//-----------------------------------------------------------------------------
technique TWhite_EnvironmentReflections
{
pass P0
{
AlphaBlendEnable = true;
SrcBlend = SrcAlpha;
DestBlend = InvSrcAlpha;
VertexShader = compile vs_1_1 PieceVS( kaWhite, kdWhite, true, true );
PixelShader = compile ps_1_4 PiecePS( pieceAlbedo, true, true, reflWhite );
}
}
technique TBlack_EnvironmentReflections
{
pass P0
{
ZEnable = true;
ZFunc = LessEqual;
ZWriteEnable = true;
AlphaBlendEnable = true;
SrcBlend = SrcAlpha;
DestBlend = InvSrcAlpha;
VertexShader = compile vs_1_1 PieceVS( kaBlack, kdBlack, true, true );
PixelShader = compile ps_1_4 PiecePS( pieceAlbedo, true, true, reflBlack );
}
}
technique TBoard_EnvironmentReflections
{
pass P0
{
ZEnable = true;
ZFunc = LessEqual;
ZWriteEnable = true;
AlphaBlendEnable = false;
VertexShader = compile vs_1_1 StandardVS( true, true );
PixelShader = compile ps_1_4 BoardPS( true, true );
}
}
technique TTable_EnvironmentReflections
{
pass P0
{
ZEnable = true;
ZFunc = LessEqual;
ZWriteEnable = true;
AlphaBlendEnable = false;
VertexShader = compile vs_1_1 StandardVS( true, true );
PixelShader = compile ps_1_1 TablePS( true, true );
}
}
technique TTrim_EnvironmentReflections
{
pass P0
{
AlphaBlendEnable = false;
VertexShader = compile vs_1_1 StandardVS( true, true );
PixelShader = compile ps_1_4 TrimPS( true, true );
}
}
//-----------------------------------------------------------------------------
technique TWhite_Reflections
{
pass P0
{
ZEnable = true;
ZFunc = LessEqual;
ZWriteEnable = true;
AlphaBlendEnable = true;
SrcBlend = SrcAlpha;
DestBlend = InvSrcAlpha;
VertexShader = compile vs_1_1 PieceVS( kaWhite, kdWhite, false, true );
PixelShader = compile ps_1_1 PiecePS( pieceAlbedo, false, true, reflWhite );
}
}
technique TBlack_Reflections
{
pass P0
{
ZEnable = true;
ZFunc = LessEqual;
ZWriteEnable = true;
AlphaBlendEnable = true;
SrcBlend = SrcAlpha;
DestBlend = InvSrcAlpha;
VertexShader = compile vs_1_1 PieceVS( kaBlack, kdBlack, false, true );
PixelShader = compile ps_1_1 PiecePS( pieceAlbedo, false, true, reflBlack );
}
}
technique TBoard_Reflections
{
pass P0
{
ZEnable = true;
ZFunc = LessEqual;
ZWriteEnable = true;
AlphaBlendEnable = false;
VertexShader = compile vs_1_1 StandardVS( false, true );
PixelShader = compile ps_1_4 BoardPS( false, true );
}
}
technique TTable_Reflections
{
pass P0
{
ZEnable = true;
ZFunc = LessEqual;
ZWriteEnable = true;
AlphaBlendEnable = false;
VertexShader = compile vs_1_1 StandardVS( false, true );
PixelShader = compile ps_1_4 TablePS( false, true );
}
}
technique TTrim_Reflections
{
pass P0
{
ZEnable = true;
ZFunc = LessEqual;
ZWriteEnable = true;
AlphaBlendEnable = false;
VertexShader = compile vs_1_1 StandardVS( false, true );
PixelShader = compile ps_1_4 TrimPS( false, true );
}
}
//-----------------------------------------------------------------------------
technique TWhite_Environment
{
pass P0
{
ZEnable = true;
ZFunc = LessEqual;
ZWriteEnable = true;
AlphaBlendEnable = true;
SrcBlend = SrcAlpha;
DestBlend = InvSrcAlpha;
VertexShader = compile vs_1_1 PieceVS( kaWhite, kdWhite, true, false );
PixelShader = compile ps_1_4 PiecePS( pieceAlbedo, true, false, reflWhite );
}
}
technique TBlack_Environment
{
pass P0
{
ZEnable = true;
ZFunc = LessEqual;
ZWriteEnable = true;
AlphaBlendEnable = true;
SrcBlend = SrcAlpha;
DestBlend = InvSrcAlpha;
VertexShader = compile vs_1_1 PieceVS( kaBlack, kdBlack, true, false );
PixelShader = compile ps_1_4 PiecePS( pieceAlbedo, true, false, reflBlack );
}
}
technique TBoard_Environment
{
pass P0
{
ZEnable = true;
ZFunc = LessEqual;
ZWriteEnable = true;
AlphaBlendEnable = false;
VertexShader = compile vs_1_1 StandardVS( true, false );
PixelShader = compile ps_1_1 BoardPS( true, false );
}
}
technique TTable_Environment
{
pass P0
{
ZEnable = true;
ZFunc = LessEqual;
ZWriteEnable = true;
AlphaBlendEnable = false;
VertexShader = compile vs_1_1 StandardVS( true, false );
PixelShader = compile ps_1_1 TablePS( true, false );
}
}
technique TTrim_Environment
{
pass P0
{
ZEnable = true;
ZFunc = LessEqual;
ZWriteEnable = true;
AlphaBlendEnable = false;
VertexShader = compile vs_1_1 StandardVS( true, false );
PixelShader = compile ps_1_1 TrimPS( true, false );
}
}
//-----------------------------------------------------------------------------
technique TWhite
{
pass P0
{
WorldTransform[0] = (World);
ViewTransform = (View);
ProjectionTransform = (Projection);
Lighting = true;
LightEnable[0] = true;
LightType[0] = Directional;
LightDirection[0] = (-worldLight);
LightAmbient[0] = float4( 0, 0, 0, 0 );
LightDiffuse[0] = float4( 1, 1, 1, 1 );
LightSpecular[0] = float4( 1, 1, 1, 1 );
LightEnable[1] = false;
Ambient = float4( 1, 1, 1, 1 );
SpecularEnable = true;
MaterialAmbient = float4( kaWhite, 1 );
MaterialDiffuse = float4( kdWhite, 1 );
MaterialSpecular = float4( 0.15, 0.15, 0.15, 1 );
MaterialPower = 20.0;
MaterialEmissive = float4( 0, 0, 0, 0 );
// AmbientMaterialSource = Material;
// DiffuseMaterialSource = Material;
// EmissiveMaterialSource = Material;
// SpecularMaterialSource = Material;
ZEnable = true;
ZFunc = LessEqual;
ZWriteEnable = true;
AlphaBlendEnable = true;
SrcBlend = SrcAlpha;
DestBlend = InvSrcAlpha;
Sampler[0] = (AlbedoSampler);
TextureFactor = (Alpha.xxxx);
ColorOp[0] = COLOROP0;
ColorArg1[0] = Texture;
ColorArg2[0] = Current;
ColorOp[1] = Disable;
AlphaOp[0] = SelectArg1;
AlphaArg1[0] = TFactor;
AlphaArg2[0] = Current;
AlphaOp[1] = Disable;
VertexShader = null;
PixelShader = null;
}
}
technique TBlack
{
pass P0
{
WorldTransform[0] = (World);
ViewTransform = (View);
ProjectionTransform = (Projection);
Lighting = true;
LightEnable[0] = true;
LightType[0] = Directional;
LightDirection[0] = (-worldLight);
LightAmbient[0] = float4( 0, 0, 0, 0 );
LightDiffuse[0] = float4( 1, 1, 1, 1 );
LightSpecular[0] = float4( 1, 1, 1, 1 );
LightEnable[1] = false;
Ambient = float4( 1, 1, 1, 1 );
SpecularEnable = true;
MaterialAmbient = float4( kaBlack, 1 );
MaterialDiffuse = float4( kdBlack, 1 );
MaterialSpecular = float4( 0.25, 0.25, 0.25, 1 );
MaterialPower = 20.0;
MaterialEmissive = float4( 0, 0, 0, 0 );
// AmbientMaterialSource = Material;
// DiffuseMaterialSource = Material;
// EmissiveMaterialSource = Material;
// SpecularMaterialSource = Material;
ZEnable = true;
ZFunc = LessEqual;
ZWriteEnable = true;
AlphaBlendEnable = true;
SrcBlend = SrcAlpha;
DestBlend = InvSrcAlpha;
Sampler[0] = (AlbedoSampler);
TextureFactor = (Alpha.xxxx);
ColorOp[0] = COLOROP0;
ColorArg1[0] = Texture;
ColorArg2[0] = Current;
ColorOp[1] = Disable;
AlphaOp[0] = SelectArg1;
AlphaArg1[0] = TFactor;
AlphaArg2[0] = Current;
AlphaOp[1] = Disable;
VertexShader = null;
PixelShader = null;
}
}
technique TBoard
{
pass P0
{
WorldTransform[0] = (World);
ViewTransform = (View);
ProjectionTransform = (Projection);
ZEnable = true;
ZFunc = LessEqual;
ZWriteEnable = true;
AlphaBlendEnable = false;
Sampler[0] = (AlbedoSampler);
ColorOp[0] = SelectArg1;
ColorArg1[0] = Texture;
ColorArg2[0] = Current;
ColorOp[1] = Disable;
AlphaOp[0] = Disable;
AlphaOp[1] = Disable;
VertexShader = null;
PixelShader = null;
}
}
technique TTable
{
pass P0
{
WorldTransform[0] = (World);
ViewTransform = (View);
ProjectionTransform = (Projection);
ZEnable = true;
ZFunc = LessEqual;
ZWriteEnable = true;
AlphaBlendEnable = false;
Sampler[0] = (AlbedoSampler);
ColorOp[0] = SelectArg1;
ColorArg1[0] = Texture;
ColorArg2[0] = Current;
ColorOp[1] = Disable;
AlphaOp[0] = Disable;
AlphaOp[1] = Disable;
VertexShader = null;
PixelShader = null;
}
}
technique TTrim
{
pass P0
{
WorldTransform[0] = (World);
ViewTransform = (View);
ProjectionTransform = (Projection);
ZEnable = true;
ZFunc = LessEqual;
ZWriteEnable = true;
AlphaBlendEnable = false;
TextureFactor = (trimColor.xyzz);
ColorOp[0] = SelectArg1;
ColorArg1[0] = TFactor;
ColorArg2[0] = Current;
ColorOp[1] = Disable;
AlphaOp[0] = Disable;
AlphaOp[1] = Disable;
VertexShader = null;
PixelShader = null;
}
}
float3 kaWhite = float3( 0.260, 0.260, 0.290 ); float3 kdWhite = float3( 0.820, 0.820, 0.850 ); float reflWhite = 0.33; float3 kaBlack = float3( 0.200, 0.200, 0.200 ); float3 kdBlack = float3( 0.450, 0.450, 0.450 ); float reflBlack = 0.14; float environmentTextureAmount = 0.6; float3 worldLight = float3( 0.259, 0.966, 0 ); // 15 degrees over float3 trimColor = float3( 0.600, 0.580, 0.500 ); bool pieceAlbedo = true; #define COLOROP0 Modulate #include "Media\Shaders\MeshCommon.fx"
float3 kaWhite = float3( 0.317, 0.317, 0.317 ); float3 kdWhite = float3( 0.651, 0.651, 0.651 ); float reflWhite = 0.08; float3 kaBlack = float3( 0.035, 0.045, 0.055 ); float3 kdBlack = float3( 0.165, 0.165, 0.165 ); float reflBlack = 0.17; float environmentTextureAmount = 1.0; float3 worldLight = float3( 0.259, 0.966, 0 ); // 15 degrees over float3 trimColor = float3( 0.600, 0.580, 0.500 ); bool pieceAlbedo = false; #define COLOROP0 SelectArg2 #include "Media\Shaders\MeshCommon.fx"
float3 kaWhite = float3( 0.317, 0.317, 0.317 ); float3 kdWhite = float3( 0.800, 0.800, 0.800 ); float reflWhite = 0.10; float3 kaBlack = float3( 0.320, 0.250, 0.220 ); float3 kdBlack = float3( 1.000, 1.000, 1.000 ); float reflBlack = 0.14; float environmentTextureAmount = 1.0; float3 worldLight = float3( 0.259, 0.966, 0 ); // 15 degrees over float3 trimColor = float3( 0.600, 0.580, 0.500 ); bool pieceAlbedo = true; #define COLOROP0 Modulate #include "Media\Shaders\MeshCommon.fx"
float4x4 WorldViewProjInv;
texture SkyBoxTexture;
samplerCUBE SkyBoxSampler = sampler_state
{
Texture = (SkyBoxTexture);
MinFilter = Linear;
MagFilter = Linear;
MipFilter = Linear;
};
struct VS_OUTPUT
{
float4 Position : POSITION;
float3 TexCoord : TEXCOORD0;
};
VS_OUTPUT SkyBoxVS( float4 Pos : POSITION )
{
VS_OUTPUT Output;
Output.Position = Pos;
Output.TexCoord = normalize( mul( Pos, WorldViewProjInv ) );
return Output;
}
float4 SkyBoxPS( VS_OUTPUT Input ) : COLOR
{
float3 c = texCUBE( SkyBoxSampler, Input.TexCoord );
return float4( c, 1 );
}
technique TSkyBox
{
pass P0
{
ZEnable = false;
AlphaBlendEnable = false;
VertexShader = compile vs_1_1 SkyBoxVS();
PixelShader = compile ps_1_1 SkyBoxPS();
}
}
Cleanup > To do
Games > Games by content > Games with debugging functions
Games > Games by content > Games with hidden development-related text
Games > Games by content > Games with uncompiled source code
Games > Games by developer > Games developed by Oberon Media > Games developed by Oberon Games
Games > Games by platform > Windows games
Games > Games by publisher > Games published by Microsoft
Games > Games by release date > Games released in 2007
