Blender Assets
Below we list all the assets used in our scene. By clicking on their link you can access and download the free asset.
Acknowledgements
This work would not have been possible without the invaluable tools and resources that are publicly available. We are deeply grateful for their contributions, and we would like to extend our thanks to the following:
- BlenderKit – for providing high-quality assets.
- CGTrader – for offering a vast collection of 3D models.
- Physically Based Rendering (PBR) Book – for inspiring many of our features.
- LearnOpenGL – for guiding our implementation of normal mapping.
- Chaos Support – Bloom and Glare in C4D – for insights on post-processing effects.
- Intel® Open Image Denoise – for enhancing image quality through denoising.
- Iñigo Quílez – for techniques related to signed distance fields (SDF).
- Syntopia – for insights on distance-estimated fractals, particularly the Mandelbulb.
Challenges and limitations
Developing our own renderer and final scene came with several challenges, some of which we already knew they would be difficult, while others (most of them) caught us by surprise.
One of the first difficulties was learning Blender, which was completely new to us. Understanding its interface and how to properly integrate our assets took time. Additionally, some assets had textures that did not import correctly, requiring extra effort to fix or adjust them.
Another major challenge was implementing certain rendering features. Some turned out to be much more complex than expected, leading to significant time spent troubleshooting. In particular, volumetric rendering for homogeneous volumes proved too difficult to complete within our timeframe.
To make progress, we often had to carefully read through the framework’s code to understand what was going wrong. This was not always straightforward, but it was necessary to ensure everything functioned correctly. Additionally, integrating new features sometimes required modifying previously implemented files. The most affected ones were instance.cpp and some shape implementations, which had to be adjusted to fit our evolving needs.
Despite these challenges, the process was a valuable learning experience. We gained deeper insights into rendering techniques, debugging complex systems, and adapting our approach when things did not go as planned.