ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/libgender/material.C
(Generate patch)

Comparing libgender/material.C (file contents):
Revision 1.57 by root, Mon Feb 7 08:16:31 2005 UTC vs.
Revision 1.61 by root, Fri Feb 11 15:17:47 2005 UTC

140: tex ("textures/rockwall.jpg"), texvar (tex.name) 140: tex ("textures/rockwall.jpg"), texvar (tex.name)
141, norm ("textures/rockwall_normal.jpg"), normvar (norm.name) 141, norm ("textures/rockwall_normal.jpg"), normvar (norm.name)
142{ 142{
143} 143}
144 144
145
146void mat_timed::enable (view &ctx)
147{
148 material::enable (ctx);
149
150 time->set (timer::now);
151 sh_colour->set (vec3 (255, 0, 0) * (1.F / 255.F));
152}
153
154void mat_timed::disable (view &ctx)
155{
156 material::disable (ctx);
157}
158
159shader::varying_3f fish;
160
161void mat_timed::vsh (view &ctx)
162{
163 using namespace shader::compile;
164 std_vsh ();
165
166 if (ctx.pass->l)
167 {
168 f_normal = normal_matrix * vin.normal;
169 fish = xyz(vin.vertex) + zxy (vin.vertex) * 0.2;
170 }
171}
172
173void mat_timed::fsh (view &ctx)
174{
175 using namespace shader::compile;
176
177 if (ctx.pass->l)
178 {
179 temp_1f fac;
180 temp_3f normal;
181
182 normal = f_normal + 0.3 * pow (sin (fish * 0.1 + float3 (time * 2, time * 3.14, time * 1.55)), 3);
183
184 fac = dot (normalize (normal), normalize (ctx.pass->l->sh_lightvec));
185
186 xyz (fout.frag_color) = fac * float3 (0.1,0.5,1);//ctx.pass->l->sh_colour * sh_colour * fac;
187 }
188}
189
190void mat_gouraud_shaded::enable (view &ctx)
191{
192 material::enable (ctx);
193
194 sh_colour->set (vec3 (c.r, c.g, c.b) * (1.F / 255.F));
195}
196
197void mat_gouraud_shaded::disable (view &ctx)
198{
199 material::disable (ctx);
200}
201
202void mat_gouraud_shaded::vsh (view &ctx)
203{
204 using namespace shader::compile;
205 std_vsh ();
206
207 if (ctx.pass->l)
208 f_normal = normal_matrix * vin.normal;
209}
210
211void mat_gouraud_shaded::fsh (view &ctx)
212{
213 using namespace shader::compile;
214
215 if (ctx.pass->l)
216 {
217 temp_1f fac;
218
219 fac = dot (normalize (f_normal), normalize (ctx.pass->l->sh_lightvec));
220
221 xyz (fout.frag_color) = ctx.pass->l->sh_colour * sh_colour * fac;
222 }
223}
224
225static shader::varying_2f texcoord;
145static shader::varying_3f normal; 226static shader::varying_3f normal;
146static shader::varying_2f texcoord;
147
148void test_material2::vsh (view &ctx)
149{
150 using namespace shader::compile;
151 std_vsh ();
152
153 if (ctx.pass->l)
154 {
155 normal = normal_matrix * vin.normal;
156 }
157}
158
159void test_material2::fsh (view &ctx)
160{
161 using namespace shader::compile;
162
163 if (ctx.pass->l)
164 {
165 temp_1f fac;
166 fac = dot (normalize (normal), normalize (ctx.pass->l->sh_lightvec));
167 xyz (fout.frag_color) = ctx.pass->l->sh_colour * fac;//normalize (ctx.pass->l->sh_lightvec);
168 }
169}
170 227
171void test_material::vsh (view &ctx) 228void test_material::vsh (view &ctx)
172{ 229{
173 using namespace shader::compile; 230 using namespace shader::compile;
174 231
222 texvar->disable (); 279 texvar->disable ();
223 material::disable (ctx); 280 material::disable (ctx);
224} 281}
225 282
226test_material *testmat; 283test_material *testmat;
227test_material2 *testmat2; 284mat_gouraud_shaded *testmat2;
285mat_timed *testmat3;
228 286

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines