Download presentation
Presentation is loading. Please wait.
Published byRoland Jackson Modified over 8 years ago
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.)
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.