This project is aims at generating, from a given map, its BRDF look-up texture, its irradiance map and the prefiltered environment. You can use the project as a third-party library, directly integrated in your custom engine / project, or, if you want to use it offline, you can use the generated albedo-prefilter binary linked to the library.
You can choose whether to compute through the CPU or the GPU.
Supported input/output formats:
- .hdr
Supported input image type:
Supported output image type:
- Cubecross
- 6 faces (Splitted Cubemap)
According to how you compile the library or the albedo-prefilter binary, you will need the following dependencies:
- TBB (Only if you want CPU multithreading)
- GLEW (Only if you want to use the GPU)
- GLFW (Only if you want to use the GPU)
$ mkdir build && cd build
$ cmake -DCMAKE_BUILD_TYPE=Release ..
$ make albedo_envtools
$ mkdir build && cd build
$ cmake -DCMAKE_BUILD_TYPE=Release ..
$ make
If you do not want to use the GPU, or even the CPU parallelism, you can build the library / binary accordingly.
You can set the value -D_ALBEDO_TOOLS_MODE
to one of the following:
- NONE -> Only CPU monothreading
- ALL -> GPU and CPU multithreading (requires TBB, GLEW, and GLFW)
- TBB_ONLY -> Only CPU multithreading (requires TBB)
- GPU_ONLY -> Only GPU (requires GLEW and GLFW)
For instance, if you only plan to use the GPU:
$ cmake -DCMAKE_BUILD_TYPE=Release .. -D_ALBEDO_TOOLS_MODE=GPU_ONLY
- CPUProcessor: Add bilinear interpolation to Cubemap generation
- GPUProcessor: Add specular computation
- CPUProcessor: Add specular computation
- Library: Track every memory leaks
- Library: Implements PIMPL
- Binary: Improve command line info
- Fix help not printing everything
- Library: Add documentation
- Add spherical harmonics generation