… | |
… | |
159 | z_far = z_near * 2.; |
159 | z_far = z_near * 2.; |
160 | |
160 | |
161 | reset_projection (); |
161 | reset_projection (); |
162 | |
162 | |
163 | nc_far = nz_far = z_near + 1.F; |
163 | nc_far = nz_far = z_near + 1.F; |
164 | world.detect_visibility (*this); |
|
|
165 | |
|
|
166 | printf ("far %f cf %f CAM (%d,%d,%d)\n", z_far, c_far, orig.x, orig.y, orig.z);//D |
|
|
167 | } |
164 | } |
168 | |
165 | |
169 | void view::end () |
166 | void view::end () |
170 | { |
167 | { |
171 | vislist.clear (); |
168 | vislist.clear (); |
… | |
… | |
189 | glDepthRange (DEPTH_OFFSET, 1.); |
186 | glDepthRange (DEPTH_OFFSET, 1.); |
190 | glDepthFunc (GL_LESS); |
187 | glDepthFunc (GL_LESS); |
191 | glEnable (GL_DEPTH_TEST); |
188 | glEnable (GL_DEPTH_TEST); |
192 | glColorMask (0, 0, 0, 0); |
189 | glColorMask (0, 0, 0, 0); |
193 | glDepthMask (1); |
190 | glDepthMask (1); |
|
|
191 | |
|
|
192 | world.depth_pass (*this); |
|
|
193 | |
|
|
194 | printf ("far %f cf %f CAM (%d,%d,%d)\n", z_far, c_far, orig.x, orig.y, orig.z);//D |
194 | break; |
195 | break; |
195 | |
196 | |
196 | case POSTDEPTH: |
197 | case POSTDEPTH: |
197 | glEnable (GL_DEPTH_TEST); |
198 | glEnable (GL_DEPTH_TEST); |
198 | glDepthRange (DEPTH_OFFSET, 1.); |
199 | glDepthRange (DEPTH_OFFSET, 1.); |
… | |
… | |
206 | i->recv->event (oq); |
207 | i->recv->event (oq); |
207 | } |
208 | } |
208 | |
209 | |
209 | occ_queries.clear (); |
210 | occ_queries.clear (); |
210 | |
211 | |
|
|
212 | for (vector<octant *>::iterator i = vislist.begin (); i != vislist.end (); ++i) |
|
|
213 | (*i)->display (*this); |
|
|
214 | |
|
|
215 | drawn.clear (); |
|
|
216 | |
211 | break; |
217 | break; |
212 | |
218 | |
213 | case LIGHTED: |
219 | case LIGHTED: |
214 | glEnable (GL_MINMAX); |
220 | glEnable (GL_MINMAX); |
215 | glDepthRange (0., 1. - DEPTH_OFFSET); |
221 | glDepthRange (0., 1. - DEPTH_OFFSET); |
216 | glDepthFunc (GL_LESS); |
222 | glDepthFunc (GL_LESS); |
217 | glColorMask (1, 1, 1, 1); |
223 | glColorMask (1, 1, 1, 1); |
218 | glDepthMask (0); |
224 | glDepthMask (0); |
|
|
225 | |
|
|
226 | for (vector<octant *>::iterator i = vislist.begin (); i != vislist.end (); ++i) |
|
|
227 | (*i)->display (*this); |
|
|
228 | |
|
|
229 | drawn.clear (); |
|
|
230 | |
219 | break; |
231 | break; |
220 | } |
232 | } |
221 | |
233 | |
222 | for (vector<octant *>::iterator i = vislist.begin (); i != vislist.end (); ++i) |
|
|
223 | (*i)->display (*this); |
|
|
224 | |
|
|
225 | drawn.clear (); |
|
|
226 | |
|
|
227 | #if 0 |
234 | #if 0 |
228 | if (mode == view::DEPTH) |
235 | if (mode == view::DEPTH) |
229 | { |
236 | { |
230 | glEnable (GL_DEPTH_CLAMP_NV); |
237 | glEnable (GL_DEPTH_CLAMP_NV); |
231 | glDepthMask (0); |
238 | glDepthMask (0); |