… | |
… | |
166 | { |
166 | { |
167 | generation++; |
167 | generation++; |
168 | |
168 | |
169 | glColorMask (1, 1, 1, 1); |
169 | glColorMask (1, 1, 1, 1); |
170 | glDepthMask (1); |
170 | glDepthMask (1); |
171 | glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); |
171 | glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); |
172 | |
172 | |
173 | vislist.clear (); |
173 | vislist.clear (); |
174 | |
174 | |
175 | z_near = max (nz_near, 1.F); |
175 | z_near = max (nz_near, 1.F); |
176 | z_far = max (nz_far, z_near * 2.F); |
176 | z_far = max (nz_far, z_near * 2.F); |
… | |
… | |
204 | glEnable (GL_DEPTH_TEST); |
204 | glEnable (GL_DEPTH_TEST); |
205 | glColorMask (0, 0, 0, 0); |
205 | glColorMask (0, 0, 0, 0); |
206 | glDepthMask (1); |
206 | glDepthMask (1); |
207 | glDisable (GL_DEPTH_CLAMP_NV); |
207 | glDisable (GL_DEPTH_CLAMP_NV); |
208 | |
208 | |
209 | world.depth_pass (*this); |
209 | world.detect_visibility (*this); |
210 | |
210 | |
211 | printf ("fps %f NF %f:%f vis %d CAM (%d,%d,%d)\n", timer.fps, z_near, z_far, drawn.size (), orig.x, orig.y, orig.z);//D |
211 | printf ("fps %f NF %f:%f vis %d CAM (%d,%d,%d)\n", timer.fps, z_near, z_far, drawn.size (), orig.x, orig.y, orig.z);//D |
212 | break; |
212 | break; |
213 | |
213 | |
214 | case POSTDEPTH: |
214 | case POSTDEPTH: |
… | |
… | |
225 | i->recv->event (oq); |
225 | i->recv->event (oq); |
226 | } |
226 | } |
227 | |
227 | |
228 | occ_queries.clear (); |
228 | occ_queries.clear (); |
229 | |
229 | |
230 | for (vector<octant *>::iterator i = vislist.begin (); i != vislist.end (); ++i) |
|
|
231 | (*i)->display (*this); |
|
|
232 | |
|
|
233 | break; |
230 | break; |
234 | |
231 | |
235 | case LIGHTED: |
232 | case LIGHTED: |
236 | glEnable (GL_MINMAX); |
233 | glEnable (GL_MINMAX); |
237 | glDepthRange (0., 1. - DEPTH_OFFSET); |
234 | glDepthRange (0., 1. - DEPTH_OFFSET); |
238 | glDepthFunc (GL_LESS); |
235 | glDepthFunc (GL_LESS); |
239 | glColorMask (1, 1, 1, 1); |
236 | glColorMask (1, 1, 1, 1); |
240 | glDepthMask (0); |
237 | glDepthMask (0); |
241 | glDisable (GL_DEPTH_CLAMP_NV); |
238 | glDisable (GL_DEPTH_CLAMP_NV); |
242 | |
239 | |
243 | for (vector<octant *>::iterator i = vislist.begin (); i != vislist.end (); ++i) |
|
|
244 | (*i)->display (*this); |
|
|
245 | |
|
|
246 | break; |
240 | break; |
247 | } |
241 | } |
248 | |
242 | |
|
|
243 | for (vector<octant *>::iterator i = vislist.begin (); i != vislist.end (); ++i) |
|
|
244 | (*i)->display (*this); |
|
|
245 | |
249 | drawn.clear (); |
246 | drawn.clear (); |
250 | |
247 | |
251 | #if 0 |
248 | #if 0 |
252 | if (pass == view::DEPTH) |
249 | if (pass == view::DEPTH) |
253 | { |
250 | { |