Subversion Repositories gelsvn

Rev

Rev 310 | Rev 313 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 310 Rev 312
Line 124... Line 124...
124
  cam = new Camera(c - Vec3f(r), 
124
  cam = new Camera(c - Vec3f(r), 
125
		   c, 
125
		   c, 
126
		   Vec3f(0.0f, 1.0f, 0.0f),
126
		   Vec3f(0.0f, 1.0f, 0.0f),
127
		   1.0f);
127
		   1.0f);
128
 
128
 
129
#ifdef USE_BDL
129
#ifdef USE_BSP
130
   cout << "Constructing BSP tree..." << endl;
130
   cout << "Constructing BSP tree..." << endl;
131
   tree.init(mesh_vector, transforms, MAX_OBJECTS, MAX_LEVEL);
131
   tree.init(mesh_vector, transforms, MAX_OBJECTS, MAX_LEVEL);
132
   tree.build();
132
   tree.build();
133
#else
133
#else
134
	// AABB TREE
134
	// AABB TREE
Line 170... Line 170...
170
  return s*light_pow*dot(r.hit_normal, light_dir);
170
  return s*light_pow*dot(r.hit_normal, light_dir);
171
}
171
}
172
 
172
 
173
double lambertian_shade(Ray& r)
173
double lambertian_shade(Ray& r)
174
{
174
{
175
#ifdef USE_BDL
175
#ifdef USE_BSP
176
		r.compute_normal();
176
		r.compute_normal();
177
#endif
177
#endif
178
  return light_pow*dot(r.hit_normal, light_dir);
178
  return light_pow*dot(r.hit_normal, light_dir);
179
}
179
}
180
 
180
 
Line 333... Line 333...
333
		for(unsigned int ky = 0; ky < PIXEL_SUBDIVS; ++ky)
333
		for(unsigned int ky = 0; ky < PIXEL_SUBDIVS; ++ky)
334
		  for(unsigned int kx = 0; kx < PIXEL_SUBDIVS; ++kx)
334
		  for(unsigned int kx = 0; kx < PIXEL_SUBDIVS; ++kx)
335
		  {
335
		  {
336
			Ray r = cam->get_ray(vp_pos + jitter[ky*PIXEL_SUBDIVS + kx]);
336
			Ray r = cam->get_ray(vp_pos + jitter[ky*PIXEL_SUBDIVS + kx]);
337
 
337
 
338
#ifdef USE_BDL
338
#ifdef USE_BSP
339
			if(tree.intersect(r))
339
			if(tree.intersect(r))
340
			  sum += Vec3d(shade_ray[shadow](r));
340
			  sum += Vec3d(shade_ray[shadow](r));
341
			else
341
			else
342
			  sum += background;
342
			  sum += background;
343
#else
343
#else
Line 378... Line 378...
378
 
378
 
379
    glClearColor(background[0], background[1], background[2], 1.0);
379
    glClearColor(background[0], background[1], background[2], 1.0);
380
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
380
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
381
    glLoadIdentity();
381
    glLoadIdentity();
382
 
382
 
383
	vctrl->set_gl_modelview();
383
	cam->glSetCamera();
384
    
384
    
385
    glColor3f(0.5, 0.5, 0.5);
385
    glColor3f(0.5, 0.5, 0.5);
386
    drawOBJ();
386
    drawOBJ();
387
 
387
 
388
    glDisable(GL_DEPTH_TEST);
388
    glDisable(GL_DEPTH_TEST);