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.
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/
- Gltf sample models : https://github.com/KhronosGroup/glTF-Sample-Models
- Bistro scene : https://developer.nvidia.com/orca/amazon-lumberyard-bistro
- 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
- 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
- vulkan
- glfw
- imgui
- vulkan-memory-allocator
- freeimage
- slang
- glm
- assimp
