Skip to content

bean-mhm/realbloom

Repository files navigation


Logo

RealBloom

Bloom Simulation Software
Latest Release · Documentation · Report Bug

Table of Contents
  1. Introduction
  2. How It's Made
  3. How To Run
  4. How To Use
  5. How To Build
  6. Contributing
  7. License
  8. Contact

Introduction

RealBloom is a bloom simulation / post processing tool for achieving more realism in 3D renders and HDR images.

RealBloom Screenshot

RealBloom Screenshot

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 of bloom 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. These, and more, can be achieved with the three main modules in RealBloom:

  • Diffraction (2D FFT)
  • Dispersion
  • Convolution

How It's Made

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.

Libraries Used

Library Used for
GLEW OpenGL extensions
GLFW Window and context creation
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

(back to top)

How To Run

RealBloom requires Microsoft Visual C++ Runtime in order to run properly. To get RealBloom, you can download the latest release here.

Minimum Requirements

  • 64-bit version of Windows

  • 4 GB of RAM

  • GPU with OpenGL 3.2 support

(back to top)

How To Use

If you're using RealBloom for the first time, check out this 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.

(back to top)

How To Build

Prerequisites

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.

RealBloom uses vcpkg to link some of the libraries, specifically, OpenColorIO and OpenImageIO. Here are the basic steps to install vcpkg and the mentioned libraries.

  1. Follow the vcpkg installation instructions to install vcpkg and enable Visual Studio integration.

  2. Run the following command from vcpkg's root directory:

    vcpkg install openimageio[opencolorio,tools]:x64-windows --recurse

Note that this might take some time to finish.

Build

Now, to build RealBloom,

  1. Clone the repo:

    git clone https://github.com/bean-mhm/realbloom.git
  2. Open RealBloom.sln in Visual Studio.

  3. Build the solution and run RealBloom.exe. Feel free to explore and play with the code!

(back to top)

Contributing

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!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

See open issues for a full list of proposed features (and known issues).

(back to top)

License

Distributed under the AGPL-3.0 license. See LICENSE.md for more information.

(back to top)

Contact

☀️ RealBloom Community Server: Discord

🧑‍💻 Harry Bean (Developer): Email

🔗 Project Link: GitHub

(back to top)