Skip to content

Modules

Arthur Masson edited this page Apr 16, 2024 · 3 revisions

Log

Dependencies:

  • Boost (or not)

Manage logs system.

Is mostly used by other modules

Core

Dependencies:

  • Log

Define core definitions of objects. Super classes that are used by all scene elements and that contains proxy tools for networking

Scene

Dependencies:

  • Log
  • glm
  • assimp

Structuration of a 3d scene.

Definition of most resource objects. (Mesh, Texture, Material, ...)

Implementation of the node hierarchy tree system with a parent-children relationship.

Each nodes have identifier, relative transforms, references to resources objects, some metadatas and other informations used by other modules.

Widgets

Dependencies:

  • Log
  • Scene

Manage creation and usage of 2d user interface widgets.

Has functions to handle mouse and keyboards events but expect another module to receive and send them.

(maybe) Render itself inside a texture but need to see how the graphic engine manages it.

Graphic (Vulkan)

Dependencies:

  • Log
  • Scene
  • vulkan
  • Widgets

Manage usage of vulkan objects. Can render a given scene in a given framebuffer parsing object that have buffer generated. Create metadata to scene objects that are parsed but not generated.

Window (Glfw)

Dependencies:

  • Log
  • Graphic
  • glfw

Management of windows creation/destruction and application environment.

Handle keyboard/mouse IO.

Gives framebuffer and a scene to the Graphic module to render it.

Physic

Dependencies:

  • Log
  • Scene
  • Bullet (if we don't care about bonuses)

Update physic elements from a scene and handle collisions.

Can collide spheres, cubes and voxel world.

Sound

Dependencies:

  • Log
  • Scene
  • OpenAL (or something else)

Manage the loading of sound effects and music in a scene.

Can play or stop sounds.

play sound in 3d and calculate sound location according to the camera or hearing point.

Clone this wiki locally