Skip to content

PierreEVEN/Taranis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

198 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⚡Taranis engine 💫

Build Status

Taranis is a custom game engine focused on the rendering of multi-planetary worlds.

This engine is built around vulkan. Other backends may be implemented later if necessary. The main goal for now is to handle all the features required to build a openworld game, solar system sized.

Screenshot

Build & Install

Tested using latest msvc version

  • install the vulkan sdk (1.3.296 or later)
  • install the xmake build system
  • configure xmake xmake f --build-tests=y (currently the only executable targets are test targets)
  • build xmake build test_editor
  • run xmake run test_editor

Note : download example models and place them in resource/models/samples/

Features and roadmap

  • Multi-render pass : add a simple interface to define a full render graph
  • Job system : add an async task scheduler
  • Asset registry : handle assets references and lifetime
  • MipMaps : automatically handle and generate textures mipmaps
  • Scene component allocator : allocate components using a custom allocator that optimise memory layout
  • Async import using asimp : import mesh and textures from gltf scenes using assimp
  • class inheritence reflection : Add an Unreal Engine - like reflection system (only class and inheritence)
  • slang backend : implement slang shader backend
  • Parallel command buffers recording : improve performances by splitting command buffer reccording in multiple tasks
  • Custom dynamic render passes : add or remove custom render passes on the fly (will be used to build shadow maps)
  • Frustum culling
  • Custom render targets : Allow a shader to retrieve the result of a child render pass
  • Directional Shadows : automatically handle multiple light sources with shadows
  • Implement compute shaders and compute pass
  • Implement Cmaa V2 antialiasing
  • Allow concurrent render passes : currently render passes render consecutivelly which is not optimal.
  • Post process : add basic post process passes (bloom...)
  • Camera-centric coordinates : We need to keep the camera at the origin to limite floating-point precision with fp32 on the gpu
  • Planet landscape : Add 1:1 earth-like planet landscape (basic procedural generation)
  • Planet atmosphere : Basic atmospheric scattering
  • Foliages : Procedural foliages
  • Try voxel rendering (test if voxel planet could be a good starting point)
  • Property reflection : add properties to reflection system
  • Serialization : automatically serialize assets using reflection

Known issues

  • Validation warning : vkCreateGraphicsPipelines(): pCreateInfos[0].pVertexInputState Vertex attribute not consumed by vertex shader.
  • Texture are flipped to handle .dds format default orientation. Todo : flip imported .dds images

Dependencies

  • vulkan
  • glfw
  • imgui
  • vulkan-memory-allocator
  • freeimage
  • slang
  • glm
  • assimp

About

Taranis is a custom game engine focused on the rendering of multi-planetary worlds.

Topics

Resources

License

Stars

Watchers

Forks

Contributors