… | |
… | |
206 | |
206 | |
207 | void view::begin () |
207 | void view::begin () |
208 | { |
208 | { |
209 | generation++; |
209 | generation++; |
210 | |
210 | |
|
|
211 | stat1 = stat2 = 0; //D |
|
|
212 | |
211 | vislist.clear (); |
213 | vislist.clear (); |
212 | postdepthlist.clear (); |
214 | postdepthlist.clear (); |
213 | |
215 | |
214 | z_near = max (nz_near, 1.F); |
216 | z_near = max (nz_near, 1.F); |
215 | z_far = max (nz_far, 1E10F);//D |
217 | z_far = max (nz_far, 1E10F);//D |
… | |
… | |
223 | first_lighted = false; |
225 | first_lighted = false; |
224 | } |
226 | } |
225 | |
227 | |
226 | void view::end () |
228 | void view::end () |
227 | { |
229 | { |
|
|
230 | printf ("fps %f NF %f:%f vis %d,%d (%d,%d) CAM (%ld,%ld,%ld)\n", |
|
|
231 | timer.fps, z_near, z_far, vislist.size (), drawn.size (), stat1, stat2, orig.x, orig.y, orig.z);//D |
|
|
232 | |
228 | vislist.clear (); |
233 | vislist.clear (); |
229 | } |
234 | } |
230 | |
235 | |
231 | #define DEPTH_OFFSET (1. / (GLdouble)(1L << 16)) |
236 | #define DEPTH_OFFSET (1. / (GLdouble)(1L << 16)) |
232 | |
237 | |
233 | void view::render (pass_data &pass) |
238 | void view::render (pass_data &pass) |
234 | { |
239 | { |
235 | this->pass = &pass; |
240 | this->pass = &pass; |
236 | |
|
|
237 | stat1 = stat2 = 0; //D |
|
|
238 | |
241 | |
239 | switch (pass.type) |
242 | switch (pass.type) |
240 | { |
243 | { |
241 | case DEPTH: |
244 | case DEPTH: |
242 | glColorMask (1, 1, 1, 1); |
245 | glColorMask (1, 1, 1, 1); |
… | |
… | |
262 | world.detect_visibility (*this); |
265 | world.detect_visibility (*this); |
263 | |
266 | |
264 | for (vector<octant *>::iterator i = vislist.begin (); i != vislist.end (); ++i) |
267 | for (vector<octant *>::iterator i = vislist.begin (); i != vislist.end (); ++i) |
265 | (*i)->draw_depth (*this); |
268 | (*i)->draw_depth (*this); |
266 | |
269 | |
267 | if (pass.type == DEPTH) |
|
|
268 | printf ("fps %f NF %f:%f vis %d,%d (%d,%d) CAM (%ld,%ld,%ld)\n", |
|
|
269 | timer.fps, z_near, z_far, vislist.size (), drawn.size (), stat1, stat2, orig.x, orig.y, orig.z);//D |
|
|
270 | |
|
|
271 | break; |
270 | break; |
272 | |
271 | |
273 | case POSTDEPTH: |
272 | case POSTDEPTH: |
274 | glDepthRange (0., 1. - DEPTH_OFFSET); |
273 | glDepthRange (0., 1. - DEPTH_OFFSET); |
275 | glDepthFunc (GL_LESS); |
274 | glDepthFunc (GL_LESS); |