1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
#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);
|