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

Revision 2179, 6.3 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
155struct MPos_OUT
156{
157 float4 VPos : POSITION;
158 float4 MPos : TEXCOORD0;
159};
160
161MPos_OUT MPos(float4 position : POSITION0,
162              uniform float4x4 WorldViewProj)
163{
164 MPos_OUT OUT;
165 OUT.VPos = mul(WorldViewProj, position);
166 OUT.MPos = position;
167 return OUT;
168}
169
170MPos_OUT MPos_NoTransform(float4 position : POSITION0)
171{
172 MPos_OUT OUT;
173 OUT.VPos = position;
174 OUT.MPos = position;
175 return OUT;
176}
177
178struct CPos_OUT
179{
180 float4 VPos : POSITION;
181 float4 CPos : TEXCOORD0;
182};
183
184CPos_OUT CPos(float4 position : POSITION0,
185              uniform float4x4 WorldViewProj,
186              uniform float4x4 WorldView)
187{
188 CPos_OUT OUT;
189 OUT.VPos = mul(WorldViewProj, position);
190 OUT.CPos = mul(WorldView, position);
191 return OUT;
192}
193
194struct Shaded_CPos_OUT
195{
196 float4 vPos : POSITION;
197 float4 wNormal : TEXCOORD0;
198 float4 wPos    : TEXCOORD1;
199 float4 CPos    : TEXCOORD2;
200};
201
202Shaded_CPos_OUT Shaded_CPos_VS(float4 position : POSITION,
203                               float4 normal : NORMAL,
204                               uniform float4x4 WorldViewProj,
205                               uniform float4x4 World,
206                                       uniform float4x4 WorldView,
207                               uniform float4x4 WorldInv)
208{
209 Shaded_CPos_OUT OUT;
210 OUT.vPos = mul(WorldViewProj, position);
211 OUT.wPos = mul(World, position);
212 OUT.CPos = mul(WorldView, position);
213 OUT.wNormal = mul(normal, WorldInv);
214 return OUT;
215}
216
217
218struct LightVPos_OUT
219{
220 float4 VPos : POSITION;
221 float4 LightVPos : TEXCOORD0;
222};
223
224LightVPos_OUT LightVPos(float4 position : POSITION0,
225              uniform float4x4 WorldViewProj,
226              uniform float4x4 LightViewProj,
227                  uniform float4x4 World)
228{
229 LightVPos_OUT OUT;
230 OUT.VPos = mul(WorldViewProj, position);
231 float4 WPos = mul(World, position);
232 OUT.LightVPos = mul(LightViewProj, WPos);
233 return OUT;
234}
235
236
237struct LightCPos_OUT
238{
239 float4 VPos : POSITION;
240 float4 LightVPos : TEXCOORD0;
241 float4 LightCPos : TEXCOORD1;
242};
243
244LightCPos_OUT LightCPos(float4 position : POSITION0,
245              uniform float4x4 WorldViewProj,
246              uniform float4x4 World,
247              uniform float4x4 LightViewProj,
248              uniform float4x4 LightView)
249{
250 LightCPos_OUT OUT;
251 OUT.VPos = mul(WorldViewProj, position);
252 float4 WPos = mul(World, position);
253 OUT.LightVPos = mul(LightViewProj, WPos);
254 OUT.LightCPos = mul(LightView, WPos);
255 return OUT;
256}
Note: See TracBrowser for help on using the repository browser.