UnrealSplat is a plugin for Unreal Engine 5.5 that enables high-performance, real-time rendering of 3D Gaussian Splatting models. It leverages Unreal's built-in Niagara system to render scenes with up to 2 million splats efficiently.
Example Screenshot from within the Unreal Engine's Editor using this Plugin. The 3DGS Model is from https://jonbarron.info/mipnerf360/.
The Plugin is still in relatively early development.
- Niagara-Powered Rendering: Utilizes Unreal Engine's Niagara system for rendering, ensuring high performance and integration with the engine's VFX pipeline.
- Large Model Support: Efficiently renders models with up to 2 million splats.
- Texture-Based Splat Storage: Splat properties are stored in textures and loaded on-demand by Niagara for optimal memory and performance.
- High Performance: Designed for real-time applications, including VR and interactive walkthroughs.
- Simple UI: A straightforward user interface for quick and easy model loading.
This plugin is currently in active development. Please be aware of the following limitations:
- Transformations: Moving, rotating, or scaling the splat actor in the world is not fully supported. While the actor can be moved, the rendering may break.
- Spherical Harmonics (SH): Support for spherical harmonics is a work-in-progress (WIP) and is currently disabled.
- Model Size: Models significantly larger than 2 million splats may not render correctly.
- File Format: Only
.plyfiles from standard Gaussian Splatting training outputs are currently supported.
- Clone the plugin into the Plugins Folder of your Unreal Project. Itincludes pre-compiled binaries for Windows 64-bit.
- Restart your project. The plugin should be enabled automatically (You might need to rebuild the plugin from your Projects Visual Studio Environment). You can verify this under Edit > Plugins.
- Place Your Model: Copy your
.plymodel file somewhere inside your project'sContent/Modelsfolder (e.g.,Content/Models/my_model.ply). - Open the UnrealSplat UI: A new button named "UnrealSplat" will appear on the main toolbar in the editor. Click it to open the loading UI.
- Enter the File Path: The UI will prompt you for a string. Enter the path to your model relative to the project's
Content/Modelsfolder.- For example, if your model is at
[YourProject]/Content/Models/my_model.ply, you would enter:my_model.ply
- For example, if your model is at
- Load Model: Press the Render button in the UI. The plugin will create the necessary assets and spawn an actor in your scene to render the model.
This is an open-source project and contributions are welcome! If you want to help fix a known issue or add a new feature, please follow the standard GitHub Fork & Pull Request workflow. For bugs or suggestions, please open an issue.
This project is distributed under the MIT License. See the LICENSE file for more information.
This Project was developed as part of my working student job at the Chair of Computer Graphics and Visualization at the Technical University of Munich.
Jonas Itt: https://github.com/JI20 Chair of Computer Graphics and Visualization, Technical University of Munich: https://www.cs.cit.tum.de/cg/cover-page/
This project was made possible thanks to the pioneering work of others in the community. The development of this plugin was heavily inspired by, and adapts code from, the following incredible projects.
-
Original 3D Gaussian Splatting Paper
- Kerbel, B., Kopanas, G., Martin-Brualla, R., & Drettakis, G. (2023). 3D Gaussian Splatting for Real-Time Radiance Field Rendering.
- Project Page
-
XScene-UEPlugin by xverse-engine (Apache 2.0 License)
- This project provided a foundational understanding of integrating advanced rendering techniques into Unreal Engine. Some code and general UX patterns were adapted from here.
- GitHub Repository
-
GaussianSplattingForUnrealEngine by Italink (MIT License)
- This repository served as a key reference for the implementation of the core Gaussian Splatting rendering logic.
- GitHub Repository