This project is an open-source 3D Compositing Engine designed for video creators and VFX artists. The engine allows for seamless integration of 3D models into 2D video footage, with support for complex lighting, textures, and physics-based rendering. Users can upload models, adjust lighting, and synchronize 3D objects with video footage through a React-based UI.
- 3D Rendering Engine: Supports complex lighting, textures, and physics simulations.
- Camera Tracking: Synchronizes 3D models with video camera movement.
- Physics Simulation: Supports physics-based rendering using a custom physics engine or Bullet Physics.
- React UI: Web-based interface for users to interact with the engine, upload assets, and manage scenes.
- Asset Management: Load and manage 3D models, textures, and scenes.
- Shader Support: Includes support for custom shaders (GLSL, HLSL).
/src
├── /core # Core engine components
│ ├── engine.cpp # Main engine logic
│ ├── engine.h # Engine header file
│ ├── /rendering # Rendering functionality
│ ├── /physics # Physics simulations
│ ├── /assets # Asset management
│ ├── /scenes # Scene management
├── /tracking # Camera tracking
├── /ui # Web-based UI with React
└── main.cpp # Main entry point
-
Clone the repository:
git clone https://github.com/your-username/3d-compositing-engine.git cd 3d-compositing-engine
-
Ensure you have the following dependencies installed:
- C++ compiler (e.g., GCC or MSVC)
- OpenGL or Vulkan for rendering
- Bullet Physics (optional, for physics simulations)
- Python (for scripting integration)
- Node.js and npm (for React-based UI)
- CMake (for building the project)
-
To build the engine, run the following commands:
mkdir build cd build cmake .. make
-
To start the React-based UI, navigate to the
/src/ui
directory:cd src/ui npm install npm start
Once the engine is built and the UI is running:
- Upload Models: Use the UI to upload 3D models and textures.
- Adjust Settings: Modify lighting, camera position, and physics parameters in real time.
- Render: Export the final composited scene with 3D objects integrated into video footage.
Contributions are welcome! If you would like to improve the project, feel free to submit a pull request or report issues.
This project is licensed under the MIT License. See the LICENSE file for details.