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

Revision 2054, 6.2 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 LightWorldViewProj)
227{
228 LightVPos_OUT OUT;
229 OUT.VPos = mul(WorldViewProj, position);
230 OUT.LightVPos = mul(LightWorldViewProj, position);
231 return OUT;
232}
233
234
235struct LightCPos_OUT
236{
237 float4 VPos : POSITION;
238 float4 LightVPos : TEXCOORD0;
239 float4 LightCPos : TEXCOORD1;
240};
241
242LightCPos_OUT LightCPos(float4 position : POSITION0,
243              uniform float4x4 WorldViewProj,
244              uniform float4x4 LightWorldViewProj,
245              uniform float4x4 LightWorldView)
246{
247 LightCPos_OUT OUT;
248 OUT.VPos = mul(WorldViewProj, position);
249 OUT.LightVPos = mul(LightWorldViewProj, position);
250 OUT.LightCPos = mul(LightWorldView, position);
251 return OUT;
252}
Note: See TracBrowser for help on using the repository browser.