Table of Contents
RealBloom is a sophisticated bloom simulation tool for achieving more realism in 3D renders and HDR images.
RealBloom was started as a hobby project in late August 2022, inspired by AngeTheGreat's video on bloom and how to simulate it in a physically accurate manner. I highly recommend watching this video to get a basic understanding of how RealBloom works. Make sure to check out their GitHub page and their other projcets!
The ultimate goal is to achieve more realism in 3D renders that contain bright spots on dark backgrounds. For example, the sun in a blue sky, a car headlight at night, bright lights at a concert, a flashlight pointing directly at the camera, you name it. RealBloom can be used to produce some other effects, including film halation, motion blur with arbitrary curves, uniform lens blur, etc.
RealBloom is written in C++ with Visual Studio 2022. The target platform is Windows. However, considering all the libraries used and most of the code for RealBloom are platform-independent, it should be fairly easy (ish) to port to other major desktop platforms.
RealBloom uses the following libraries:
Library | Used for |
---|---|
GLEW | OpenGL extensions |
GLFW | Window and context creation for use in ImGui |
Dear ImGui | Graphical user interface |
NFD Extended | Native file dialogs |
OpenColorIO | Color management |
OpenImageIO | Reading and writing images |
PocketFFT | 2D Fast Fourier Transforms |
dj_fft | 2D FFT on the GPU |
pugixml | Parsing and serializing XML files |
Rapidcsv | Parsing CSV files |
RealBloom requires Microsoft Visual C++ Runtime to run properly. Chances are you already have it installed, though. To get RealBloom, you can download the latest release here.
-
64-bit version of Windows
-
4 GB of RAM
-
GPU with OpenGL 3.2 support
Check out this page for a step-by-step tutorial on getting started with RealBloom, along with more details and information about the project. This will cover most of what you need to know.
The project was made for Windows and built with MSVC. To build a local copy of RealBloom, have a recent version of Visual Studio ready.
-
Clone the repo:
git clone https://github.com/bean-mhm/realbloom.git
-
Open
RealBloom.sln
in Visual Studio. -
Build the solution and run
RealBloom.exe
. Feel free to explore and play with the code!
- Color Management System
- OpenEXR support
- Command Line Interface
- GPU Dispersion
- [WIP] GPU FFT Convolution
- GPU Image Transforms
- Node-based workflow
-
Support for animated apertures, kernels and input images -
GPU Diffraction Pattern
See open issues for a full list of proposed features (and known issues).
I have in mind to make RealBloom's interface more generic and robust by making it node-based. Here's the concept represented using Blender's node system:
Unfortunately, I can't afford the time to work on this as of now, but I do plan on doing it whenever possible. If you do have the time and some knowledge on node-based applications, feel free to fork the repo and work on it, which would be really appreciated!
For some initial ideas, there could be a specific text format - based on XML, JSON, or anything else - for representing nodes, a core library that runs a node-tree, and a GUI for creating, managing, and displaying nodes.
Nodes could have unique IDs, cached buffers that only get reprocessed when the node's input parameters change, status and progress indicators, etc. You can see some example nodes in the image above.
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the AGPL-3.0 license. See LICENSE.md for more information.
☀️ RealBloom Community Server: Discord
🧑💻 Harry Bean (Developer): Email
🔗 Project Link: GitHub