Depreciate!!! If you like C++ please refer to DigitalVox4, Or SwiftArche
This project is inspired by Oasis which is an ECS-liked based engine(not very strict) . Based on entity and component, it is easy to combine other open-source ability:
- ImGui: GUI system
- OZZ-Animation: CPU Animation System
- PhysX: Physical System
- fluid-engine-dev: Fluid Simulation and CPU Particle System
Which can load a lot of model format including:
- FBX: FBX loader with Ozz animation
- GLTF: GLTF Loader with GPU-based Skinning Animation
- Other: OBJ and other format loaded by ModelIO Framework
Example about GLTF Loader which based on GLTF
Example can also load animation which control the tree of entities. GPU Skinning Animation limit the joint weight have only four component.
Example about CPU animation system which is based on OZZ-Animation. Ozz support CPU skinning, blending, IK and other animation ability. The CPU animation system does not limit the number of weights of the bones, so it will be more free to use.
Example about CPU particle system which can load fluid-engine-dev solvers.
Example about Physics System which is based on PhysX. Collider, Joint, Character Controller are all wrapped as component which is more easy to use.
Example use IBL to render basic pbr scene. The specular-map is generated by using compute shader. The diffuse-map is generated by Model I/O framework
Example support multi-shadow from three kind of lights. All these based on ShadowMap.
- spot light: single shadow map
- directional light: cascaded shadow map(render four times)
- point light: shadow cube map (render six times)
Example use 256 point lights to shader the whole scene which need deferred render pipeline to reduce fragment wastes.
Editor use IMGUI to render gui and FrameBuffer Picker to link the scene with panel. ImGuizmo and imgui-node-editor build the basic infrastructure of editor.