- Core
- Runtime Type Reflection
- Code Generation
- Auto Type Reflection Registration
- Auto Serialization and Deserialization
- Resource Management
- Default: PBR Material, Texture (DDS, TGA), Static and Skeletal Mesh (FBX), Animation (FBX), Vertex Batch Resources, and Physics Material
- Dynamic Resource Type Registration (You can define your own types)
- Renderer
- DirectX 12 Vendor
- Anti-Aliasing
- TAA
- Post Processing
- HDR Tone Mapping
- Bloom
- Physics-Based Rendering (PBR) Materials
- Diffuse, Normal, Roughness, Metallic, Emissive, and World Displacement Textures Mapping
- Diffuse Albedo, Emissive, Metallic, and Roughness Components
- Opaque, Transparent
- Multiple Sub-Meshes
- Lighting
- Hammon Model
- Shadow Mapping
- IBL
- Texture Filtering
- Skybox
- Ray Tracing Renderer
- Static Mesh
- Terrain
- Rasterization Renderer
- Static Mesh
- Skeletal Mesh
- Terrain
- Billboard
- Optimizations
- Frustum Culling
- Separate Z Pass
- Pipeline Caching
- PIX Debugging Integration
- Debug
- Debug Draws
- Scene Management
- Saving & Loading
- Entity Component System Architecture
- Scene Graph and Hierarchical Transform Math
- Prefab Creation
- FBX Scene Loading
- Game Object Instantiation
- Physics
- Dynamic, Static, and Kinematic Actors
- Physics Material
- Collision and Trigger Handling with Callbacks
- Geometry
- Box, Sphere, Capsule, and Convex Mesh
- Scene Query
- Ray Casting
- Sweeps
- Sphere
- Box
- Capsule
- Editor
- Resource Monitor
- Ghost and Orbit Cameras
- Gizmos (Translation, Rotation, and Scale)
- Simulation (Run, Stop, Pause, and Step)
- Profiler Graph
- Game Object Property Manipulation through GUI (including components)
- Resource Property Manipulation through GUI (including saving & loading)
- Job System and CPU Multi-Core Utilization
- CPU & GPU Profiling
- Framerate Metrics (Last, Max, Avg)
- Framerate Graphs
- CPU Frame Snapshot and Flame Graph
- And so much more!
- Prefab and FBX resources must be loaded. Either manually or through the usage of its contained resources.
-
Clone the repository and its submodules:
git clone --recursive https://github.com/MohammadMDSA/Darius.git
-
Install dependencies
- Install Boost and have
Boost_ROOT
environment variable pointing to where you've installed Boost. - Install FBX SDK.
- Download FBX SDK 2020 from FBX SDK website and install it.
- Have
FBXSDK_ROOT
system environment variable pointing to where you've installed FBX SDK.
- (Optional) Install Pix and have
WinPixEventRuntime_DIR
enviroment variable pointing to its install directory. It must containInclude/
andbin/
as its subdirectories and enableENABLE_PIX
cmake option.
- Install Boost and have
-
Configure and Build using CMake and MSVC compiler. (Other compilers may work but have not been tested)
-
Run
Darius
executable to run Darius Editor with demo project.