1 / 50

Auran Jet Engine

Auran Jet Engine. Keng Shih-Ling <kensl@csie.nctu.edu.tw>. http://www.auran.com/jet. Agenda. Overview Jet Systems Jet Extensions Jet Examples Q & A. Agenda. Overview Jet Systems Jet Extensions Jet Examples Q & A. Overview.

tekla
Télécharger la présentation

Auran Jet 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. Auran Jet Engine Keng Shih-Ling <kensl@csie.nctu.edu.tw> http://www.auran.com/jet

  2. Agenda • Overview • Jet Systems • Jet Extensions • Jet Examples • Q & A Keng Shih-Ling

  3. Agenda • Overview • Jet Systems • Jet Extensions • Jet Examples • Q & A Keng Shih-Ling

  4. Overview • Auran Jet is a development engine that can be used to create a variety of 3D applications including, games, simulation and training software. Keng Shih-Ling

  5. Game Game Play Layer NPC System Virtual Agent Trading System Story Terrain Collision Character Dynamics Sound FX UI Engine Layer Combat System FX System Game AI Script System 3D Scene Mngmt 2D Sprite Gamepad Audio Network 3D Graphics API 2D API Input Device OS API System Layer Hardware Overview • 3D Application API Keng Shih-Ling

  6. Overview • License Fee • RC1 Free • V1.0, Non-Commercial US $99 • V1.0, Commercial US $30,000 • Other Commercial Case by case • “Run Time”, “Royalty”,”Full Source”,… • Scale • Over 400,000 lines of code • Over 5,400 documented API symbols Keng Shih-Ling

  7. Overview:: Architecture • Modular and Layered Architecture • Kernel • Core • Foundation • Extensions • Jet Tools • Game Systems • Game Tools Keng Shih-Ling

  8. Agenda • Overview • Jet Systems • Jet Extensions • Jet Examples • Q & A Keng Shih-Ling

  9. Jet Systems • Kernel • Input • Interface • Network • Render • Sound • Artificial Intelligence • WAVE (Wide Area Virtual Environment) • JIVE (Jet Integrated Visual Environment) Keng Shih-Ling

  10. Systems:: WAVE • WAVE (Jet Integrated Virtual Environment) Keng Shih-Ling

  11. Systems:: JIVE • JIVE (Wide Area Virtual Environment) Keng Shih-Ling

  12. Jet Systems • Kernel • Input • Interface • Network • Render • Sound • Artificial Intelligence • WAVE (Wide Area Virtual Environment) • JIVE (Jet Integrated Visual Environment) Keng Shih-Ling

  13. System:: Kernel • The Jet Kernel is the hub of all other Jet systems and provides support for some of Jet’s key features such as: • OS abstraction • Win32 (Linux) • Low-level services • Language extensions • Memory management • Multi-threading support • Debugging facilities Keng Shih-Ling

  14. System:: Kernel • Major Systems: • Jet Task Management System • Jet Resource System • Jet Plug-in System Keng Shih-Ling

  15. System::Kernel:: Task • Jet Task Management System • Tasks provide Jet's main frame-level update mechanism. Each task is called once-per-frame and may be suspended or resumed individually. • The Task Manager is responsible for initializing, updating, and uninitializing tasks. Tasks are added to the Task Manager and stored in a prioritized list in order from highest priority at the top of the list to lowest at the bottom. Keng Shih-Ling

  16. System::Kernel:: Task • Jet system tasks and their priority Keng Shih-Ling

  17. System::Kernel:: Task • Main thread Keng Shih-Ling

  18. System::Kernel:: Task • Jet is a multi-threads system • The main thread • The network thread • The sound streaming thread • The resource streaming thread Keng Shih-Ling

  19. System::Kernel:: Resource • Jet Resource Management System • Resource Databases • A tree-like structure • Resource & Resource types • Each resource type is handled by a specific resource plug-in • (*.bmp, *.jpg, *.pm, *.im, *.kin, *.mp3, …) • Resource aliases • (*.bmp.alias, *.pm.alias, *.mp3.alias, …) Keng Shih-Ling

  20. System::Kernel:: Resource • Jet Resource Management System • Asynchronous background loading • Use multi-threading abilities • Allows the application to continue its execution while resources are being loaded. • Resource priority • Load critical resources ahead of less critical ones. Keng Shih-Ling

  21. System::Kernel:: Plug-in • Jet Plug-in Management System • Jet's Plug-in Management System allows programmers to add, replace and/or extend engine features and systems • Winamp • 3dsMax Keng Shih-Ling

  22. System::Kernel:: Plug-in • Jet Plug-in Management System • Encapsulated user interface components • Different resource loading schemes • Hardware and third-party API device drivers • JIVE plug-in tools and applications Keng Shih-Ling

  23. Jet Systems • Kernel • Input • Interface • Network • Render • Sound • Artificial Intelligence • WAVE (Wide Area Virtual Environment) • JIVE (Jet Integrated Visual Environment) Keng Shih-Ling

  24. System:: Render • Render system DLL Hierarchy Keng Shih-Ling

  25. System:: Render • DLLs and sample functionality Keng Shih-Ling

  26. System:: Render • Rendering Pipeline Keng Shih-Ling

  27. System:: Render • Kernel • Graphics API Abstraction • Rendering Optimization Support • Layers • Scene Support • Modifiers • Animation Support • Progressive LOD Support • Mesh Support • Sprite support • Particle Effects System • Texture And Material Support Keng Shih-Ling

  28. System::Render:: Kernel • Kernel • RenderKernel • The RenderKernel initializes and provides an interface to the Render system ( SceneGraph, MaterialManager, TextureManager…) • SystemResourceViewer • SystemResourceViewer allows derived classes to receive a Layer visible list before each frame is rendered Keng Shih-Ling

  29. System::Render:: API • Graphics API Abstraction • Vertex Formats • PackedVertex{P,N,C,W,T,TT} • GeometryChunk • a base class describing geometry grouped for efficient rendering. Keng Shih-Ling

  30. System::Render:: Optimization • Rendering Optimization Support • The core of Jet's rendering optimization support are render caches • RenderingCache • Alpha, Materials, Shadows, Particle effects • RenderingCacheManager • RenderingCache objects receive a priority used by the RenderingCacheManager to control sequencing. Keng Shih-Ling

  31. System::Render:: Layers • Layers • A Layer is a rendering abstraction representing a rectangular screen region, with a separate rendering pass within the current frame • Viewport • Canvas Keng Shih-Ling

  32. System::Render:: Scene • Scene Support • The Jet Render System supports many types of scene abstractions, such as: • 3D object hierarchies • Lights • Shadows • 2D/3D primitives (also used for collision checking) Keng Shih-Ling

  33. System::Render:: Scene • Scene Support • SceneGraph • Element and VisibleElement • Particle (for 3D object hierarchy) • Line2D, Cone, Polygon (2D/3D primitives) • Lights • LightTargets • Shadows • ShadowVolume Keng Shih-Ling

  34. System::Render:: Modifiers • Modifiers • Jet provides custom update mechanisms through the Modifier and its associated classes • Modifier • ModifierHost • ModifierList Keng Shih-Ling

  35. System::Render:: LOD • Progressive LOD support • Jet’s progressive level-of-detail (LOD) supports scene-balancing through scalable LOD scene objects and manager. The manager distributes geometry to each scalable object to meet the scene’s target geometry allowance. Keng Shih-Ling

  36. System::Render:: LOD • Progressive LOD support • ScalableDetail • ScalableDetailManager • ScalableDetailManager uses the object’s distance from the camera and size to allocate triangles Keng Shih-Ling

  37. System::Render:: Mesh • Mesh Support • Geometry, TriangleGeometry • FaceDescriptor • to query a mesh for information regarding a given face • IndexedMeshInstance • ProgressiveMeshInstance Keng Shih-Ling

  38. System::Render:: Mesh • Mesh Support • InfluenceMesh • provides skin deformation for Jet mesh objects • MeshObservers • allows derived classes to receive mesh related events and define actions on a per-event basis. Keng Shih-Ling

  39. System::Render:: Animation • Animation Support • Skeleton, SkeletonModifier • AnimationModifier • Animator • AnimaitonObserver • AnimationEvent Keng Shih-Ling

  40. System::Render:: Sprite • Sprite Support • SpriteInstance • SpriteManager • SpriteResource Keng Shih-Ling

  41. System::Render:: Particle • Particle Effect System • ParticleFXEmitter • Point, Ribbon, Disc, Rect • ParticleFXModifier • Color, Field, Swirl Keng Shih-Ling

  42. System::Render:: Texture & Material • Texture & Material Support • Texture • TextureManager • The TextureManager controls the creation, activation, and updating of textures used per frame. • Material • MaterialManager Keng Shih-Ling

  43. Agenda • Overview • Jet Systems • Jet Extensions • Jet Examples • Q & A Keng Shih-Ling

  44. Jet Extensions • Jet Collision System Extension • Jet Movement System Extension Keng Shih-Ling

  45. Ext:: Collision • CollisionArea • CollisionBox • CollisionBSPNode • CollisionBSPTree • CollisionManager • CollisionObject Keng Shih-Ling

  46. Ext:: Movement • DirectMotion • Grid2DPathSearch • Grid2DTerrainBase • PathMotion • PathMotionEventType • PathMotionObserver Keng Shih-Ling

  47. Agenda • Overview • Jet Systems • Jet Extensions • Jet Examples • Q & A Keng Shih-Ling

  48. Jet Examples • JRally 2101 • A multi-player racing game • Full source code • 3 artists • 3 programmers • 7 weeks Keng Shih-Ling

  49. Agenda • Overview • Jet Systems • Jet Extensions • Jet Examples • Q & A Keng Shih-Ling

  50. Q & A ? Keng Shih-Ling

More Related