Correct after collision directions and handling.


Currently upon collision between the Enterprise E and the Dalek, the Dalek flies off in a direction perpendicular to the Enterprise E, which makes no sense. Also, after some time, it stops moving. When the camera view is switched back to chase view, the Enterprise E can no longer be seen.
Closed Jan 31, 2009 at 3:11 AM by derrick
Now the Enterprise E remains in view during chase mode and the Dalek properly disappears from sight.


wrote Jan 10, 2009 at 3:09 AM

Associated with changeset 21603.

wrote Jan 11, 2009 at 9:04 PM

Associated with changeset 21644.

derrick wrote Jan 17, 2009 at 5:28 PM

There are several design problems associated with this. For the Dalek not disappearing off screen, this is due to the fact I am not checking whether models reside within the camera fustrum before rendering them. Thus after a model moves outside the far plane of the camera, it is still rendered.

As for the Dalek moving perpendicular to where it should move upon impact, this has yet to be investigated and is probably due to camera angles being set incorrectly.

wrote Jan 17, 2009 at 5:29 PM

derrick wrote Jan 25, 2009 at 3:08 AM

I associated a fustrum with the cameras and checked to see objects from the octree are still in the fustrum or not before rendering them. However, the Dalek still remains in sight and the Enterprise E still disappears. With debugging, I realized that the Enterprise E's render method is still being called, as well as the Dalek's, so probably the Dalek stopped moving due to friction, but the Enterprise E disappearing remains a mystery and requires more research.

derrick wrote Jan 25, 2009 at 5:51 PM

After more testing, I realized that the Enterprise-E disappears regardless of what camera view it is in. It always disappears after the Dalek stops moving after the collision.

derrick wrote Jan 31, 2009 at 3:00 AM

Fixed in changeset 22387.

wrote Jan 31, 2009 at 3:00 AM

wrote Jan 31, 2009 at 3:02 AM

Resolved with changeset 22388.

derrick wrote Jan 31, 2009 at 3:03 AM

** Closed by derrick 1/30/2009 7:02 PM

derrick wrote Jan 31, 2009 at 3:03 AM

Wrote code to update leaves in octree.

derrick wrote Jan 31, 2009 at 3:10 AM

This occurred because the octree that the objects were stored in was tracking the position of each object in a separate member. So even though when the objects were initially loaded into the octree with their current position, when their positions changed the leaves would not be notified of the change. Therefore during the Update() call, each object whose Update() method is called is removed from the octree, then re-inserted with its latest position.

wrote Jan 31, 2009 at 3:11 AM

wrote Feb 2, 2013 at 1:25 AM

wrote May 14, 2013 at 9:07 PM