1 / 9

Antigone Engine

Antigone Engine. Introduction. Antigone = “Counter Generation” Library of functions for simplifying 3D application development Written in C for speed (compatible with C++, can make bindings for other languages) Wrappers for commonly used OpenGL functions Data structures for semantic objects.

herman
Download Presentation

Antigone Engine

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Antigone Engine

  2. Introduction • Antigone = “Counter Generation” • Library of functions for simplifying 3D application development • Written in C for speed (compatible with C++, can make bindings for other languages) • Wrappers for commonly used OpenGL functions • Data structures for semantic objects

  3. Implemented Features • Load, animate, and render MD2 • Load textures from a variety of formats • Efficient camera management • Frontend management (GLUT, SDL) • Input API • Debugging tools

  4. Planned Features • Separation of rendering functions from data • Loading geometry in BSP formats • Efficient collision detection • Progressive level of detail meshing • Better animation control • Multitexturing, environment mapping, bump mapping • More support for model formats

  5. Internal Structure • Engine is abstracted from some routines • Two static libraries: • libmala (multivariable and linear algebra) • Types for vector, plane, quaternion, matrix (3x3,4x4) • Some numerical analysis methods • libhemi (half edge mesh interface) • Loads MD2 format mesh (more in future) • Will have mesh operations for half edge meshes • Will have more mesh types (for optimizations)

  6. Debugging Tools • Assert – ASSERT(a==b, “A not equal to B!”); • Logging – wrapper for fprintf • Profiling – measure speed of predefined blocks of code (print min, max, average ticks): startSample(“Loop A”); for (int i=0;i<100;i++) { x=x*sqrt(y); } endSample();

  7. Design Considerations • Speed, Speed, Speed! • mesh rendering optimizations (triangle strips) • data structures (balance with memory constraints) • Backwards Compatibility • once API reaches some point, updates may deprecate but not remove interfaces • Modularity • should be able to easily add new systems (which operate efficiently), for example, sound and network

  8. Problems • Feature creep, especially with formats • Need to generalize data structures as much as possible • Compatibility • Defining multiple frontends and input systems • OpenGL extensions / Hardware capabilities • Support for those who don't have library X • Lack of documentation on formats

  9. Research Goals • Experiment with data structures • Linking meshes with texture objects • Flexible texture objects for multitexturing, mapping techniques • Collision models (BVHs, AABBs, OBBs) • How to store animations • Localized collision maps • Experiment with intermediately or simultaneously rendering to a mesh (for collision, etc.)

More Related