Files
MonoGame.Extended/source/MonoGame.Extended.Graphics/Effects/Resources/DefaultEffect.fx
T

72 lines
2.3 KiB
HLSL

#include "Macros.fxh"
#include "Structures.fxh"
DECLARE_TEXTURE(Texture, 0);
BEGIN_CONSTANTS
float4 DiffuseColor = float4(1, 1, 1, 1);
MATRIX_CONSTANTS
float4x4 WorldViewProjection _vs(c0) _cb(c0);
END_CONSTANTS
VertexShaderOutputPosition VertexShaderFunctionPosition(VertexShaderInputPosition input)
{
VertexShaderOutputPosition output;
output.Position = mul(input.Position, WorldViewProjection);
return output;
}
float4 PixelShaderFunctionPosition(VertexShaderOutputPosition input) : SV_Target0
{
return DiffuseColor;
}
VertexShaderOutputPositionTexture VertexShaderFunctionPositionTexture(VertexShaderInputPositionTexture input)
{
VertexShaderOutputPositionTexture output;
output.Position = mul(input.Position, WorldViewProjection);
output.TextureCoordinate = input.TextureCoordinate;
return output;
}
float4 PixelShaderFunctionPositionTexture(VertexShaderOutputPositionTexture input) : SV_Target0
{
return SAMPLE_TEXTURE(Texture, input.TextureCoordinate) * DiffuseColor;
}
VertexShaderOutputPositionColor VertexShaderFunctionPositionColor(VertexShaderInputPositionColor input)
{
VertexShaderOutputPositionColor output;
output.Position = mul(input.Position, WorldViewProjection);
output.Color = input.Color;
return output;
}
float4 PixelShaderFunctionPositionColor(VertexShaderOutputPositionColor input) : SV_Target0
{
return input.Color * DiffuseColor;
}
VertexShaderOutputPositionColorTexture VertexShaderFunctionPositionColorTexture(VertexShaderInputPositionColorTexture input)
{
VertexShaderOutputPositionColorTexture output;
output.Position = mul(input.Position, WorldViewProjection);
output.Color = input.Color;
output.TextureCoordinate = input.TextureCoordinate;
return output;
}
float4 PixelShaderFunctionPositionColorTexture(VertexShaderOutputPositionColorTexture input) : SV_Target0
{
float4 textureColor = SAMPLE_TEXTURE(Texture, input.TextureCoordinate);
return textureColor * input.Color * DiffuseColor;
}
TECHNIQUE(Position, VertexShaderFunctionPosition, PixelShaderFunctionPosition);
TECHNIQUE(PositionTexture, VertexShaderFunctionPositionTexture, PixelShaderFunctionPositionTexture);
TECHNIQUE(PositionColor, VertexShaderFunctionPositionColor, PixelShaderFunctionPositionColor);
TECHNIQUE(PositionColorTexture, VertexShaderFunctionPositionColorTexture, PixelShaderFunctionPositionColorTexture);