source: GTP/trunk/App/Demos/Illum/Ogre/Media/materials/GTPBasic/GTPBasic_VS.hlsl @ 2024

Revision 2024, 5.1 KB checked in by szirmay, 17 years ago (diff)
Line 
1struct Plain_OUT
2{
3 float4 vPos : POSITION;
4 float4 color :COLOR0;
5};
6
7Plain_OUT Plain_VS(float4 position : POSITION,
8                   float4 color : COLOR0,
9                   uniform float4x4 WorldViewProj)
10{
11 Plain_OUT OUT;
12 OUT.vPos = mul(WorldViewProj, position);
13 OUT.color = color;
14 return OUT;
15}
16
17
18struct PlainTex_OUT
19{
20 float4 vPos : POSITION;
21 float4 color :COLOR0;
22 float4 texCoord: TEXCOORD0;
23};
24
25PlainTex_OUT PlainTex_VS(float4 position : POSITION,
26                   float4 color : COLOR0,
27                   float4 texCoord : TEXCOORD0,
28                   uniform float4x4 WorldViewProj)
29{
30 PlainTex_OUT OUT;
31 OUT.vPos = mul(WorldViewProj, position);
32 OUT.color = color;
33 OUT.texCoord = texCoord;
34 return OUT;
35}
36
37
38struct Shaded_OUT
39{
40 float4 vPos : POSITION;
41 float4 wNormal : TEXCOORD0;
42 float4 wPos    : TEXCOORD1;
43};
44
45Shaded_OUT Shaded_VS(float4 position : POSITION,
46                     float4 normal : NORMAL,
47                     uniform float4x4 WorldViewProj,
48                     uniform float4x4 World,
49                     uniform float4x4 WorldInv)
50{
51 Shaded_OUT OUT;
52 OUT.vPos = mul(WorldViewProj, position);
53 OUT.wPos = mul(World, position);
54 OUT.wNormal = mul(normal, WorldInv);
55 return OUT;
56}
57
58
59struct ShadedTex_OUT
60{
61 float4 vPos : POSITION;
62 float4 texCoord : TEXCOORD0;
63 float4 wNormal : TEXCOORD1;
64 float4 wPos    : TEXCOORD2; 
65};
66
67ShadedTex_OUT ShadedTex_VS(float4 position : POSITION,
68                           float4 normal : NORMAL,
69                           float4 texCoord : TEXCOORD0,
70                           uniform float4x4 WorldViewProj,
71                           uniform float4x4 World,
72                           uniform float4x4 WorldInv)
73{
74 ShadedTex_OUT OUT;
75 OUT.vPos = mul(WorldViewProj, position);
76 OUT.wPos = mul(World, position);
77 OUT.wNormal = mul(normal, WorldInv);
78 OUT.texCoord = texCoord;
79 return OUT;
80}
81
82
83struct ShadedBump_OUT
84{
85 float4 vPos : POSITION;
86 float4 wNormal : TEXCOORD1;
87 float4 tangent : TEXCOORD2;
88 float4 binormal: TEXCOORD3;
89 float4 wPos    : TEXCOORD4;
90};
91
92ShadedBump_OUT ShadedBump_VS(float4 position : POSITION,
93                           float4 normal : NORMAL,
94                           float4 texCoord : TEXCOORD0,
95                           float4 tangent  : TANGENT,
96                           float4 binormal : BINORMAL,
97                           uniform float4x4 WorldViewProj,
98                           uniform float4x4 World,
99                           uniform float4x4 WorldInv)
100{
101 ShadedBump_OUT OUT;
102 OUT.vPos = mul(WorldViewProj, position);
103 OUT.wPos = mul(World, position);
104 OUT.wNormal = mul(normal, WorldInv);
105 OUT.binormal = binormal;
106 OUT.tangent = tangent;
107 return OUT;
108}
109
110
111struct ShadedBumpTex_OUT
112{
113 float4 vPos : POSITION;
114 float4 texCoord : TEXCOORD0;
115 float4 wNormal : TEXCOORD1;
116 float4 tangent : TEXCOORD2;
117 float4 binormal : TEXCOORD3;
118 float4 wPos    : TEXCOORD4;
119};
120
121ShadedBumpTex_OUT ShadedBumpTex_VS(float4 position : POSITION,
122                           float4 normal : NORMAL,
123                           float4 texCoord : TEXCOORD0,
124                           float4 tangent  : TANGENT,
125                           float4 binormal : BINORMAL,
126                           uniform float4x4 WorldViewProj,
127                           uniform float4x4 World,
128                           uniform float4x4 WorldInv)
129{
130 ShadedBumpTex_OUT OUT;
131 OUT.vPos = mul(WorldViewProj, position);
132 OUT.wPos = mul(World, position);
133 OUT.wNormal = mul(normal, WorldInv);
134 OUT.texCoord = texCoord;
135 OUT.binormal = binormal;
136 OUT.tangent = tangent;
137 return OUT;
138}
139
140
141struct VPos_OUT
142{
143 float4 VPos : POSITION;
144 float4 VPosition : TEXCOORD0;
145};
146
147VPos_OUT VPos(float4 position : POSITION0,
148              uniform float4x4 WorldViewProj)
149{
150 VPos_OUT OUT;
151 OUT.VPos = OUT. VPosition = mul(WorldViewProj, position);
152 return OUT;
153}
154
155
156struct CPos_OUT
157{
158 float4 VPos : POSITION;
159 float4 CPos : TEXCOORD0;
160};
161
162CPos_OUT CPos(float4 position : POSITION0,
163              uniform float4x4 WorldViewProj,
164              uniform float4x4 WorldView)
165{
166 CPos_OUT OUT;
167 OUT.VPos = mul(WorldViewProj, position);
168 OUT.CPos = mul(WorldView, position);
169 return OUT;
170}
171
172
173struct LightVPos_OUT
174{
175 float4 VPos : POSITION;
176 float4 LightVPos : TEXCOORD0;
177};
178
179LightVPos_OUT LightVPos(float4 position : POSITION0,
180              uniform float4x4 WorldViewProj,
181              uniform float4x4 LightWorldViewProj)
182{
183 LightVPos_OUT OUT;
184 OUT.VPos = mul(WorldViewProj, position);
185 OUT.LightVPos = mul(LightWorldViewProj, position);
186 return OUT;
187}
188
189
190struct LightCPos_OUT
191{
192 float4 VPos : POSITION;
193 float4 LightVPos : TEXCOORD0;
194 float4 LightCPos : TEXCOORD1;
195};
196
197LightCPos_OUT LightCPos(float4 position : POSITION0,
198              uniform float4x4 WorldViewProj,
199              uniform float4x4 LightWorldViewProj,
200              uniform float4x4 LightWorldView)
201{
202 LightCPos_OUT OUT;
203 OUT.VPos = mul(WorldViewProj, position);
204 OUT.LightVPos = mul(LightWorldViewProj, position);
205 OUT.LightCPos = mul(LightWorldView, position);
206 return OUT;
207}
Note: See TracBrowser for help on using the repository browser.