Terrain Following and Collision AvoidanceRealistic terrain following must handle issues such as gravity effects (e.g., falling off a cliff), how high to step up/down at a time, holes, and water. The code in KeyBehavior and Landscape doesn't deal with any of these concerns. A programming style question is whether picking should be used as a walking aid. One reason for employing it is that the same mechanism can help with movement through scenery, such as up and down staircases, so long as the objects can be picked. Picking makes it possible to walk over a terrain without needing a predefined "map." A downside, until recently, was the large amount of garbage that could accumulate over time because of repeatedly computing intersections. The resulting garbage collection could degrade the application's execution. Fortunately, the PickRay and PickSegment intersection code was rewritten in Java 3D v.1.3.1 to reduce the overhead, but the other picking shapes, such as PickCylinderRay, remain unchanged. Garbage collection may only become a serious issue when picking is utilized for collision avoidance: the moving object typically sends out multiple rays in several directions at each frame update, each requiring intersection testing. However, this approach is used without problems in the Pernica multiplayer role-playing game (http://www.starfireresearch.com/pernica/pernica.html) from Starfire Research. Java XTools (http://www.3dchat.org/dev.php) offers a KeyNavigatorBehavior class, which implements collision avoidance and terrain following. The online documentation is at http://www.3dchat.org/doc/com/vwp/j3d/utils/behaviors/keyboard/KeyNavigatorBehavior.html. An interesting article on terrain following and collision detection in Java 3D, written by Justin Couch, can be found at http://www.j3d.org/tutorials/collision. GameDev.net has a good collision-detection section: http://www.gamedev.net/reference/list.asp?categoryid=45#99. |
Wednesday, January 20, 2010
Terrain Following and Collision Avoidance
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment