Rainbow Rocks 10th Anniversary - Let's celebrate the 10th anniversary of Rainbow Rocks with an art event! Here
Interested in advertising on Derpibooru? Click here for information!
Equestrian Stories 2024

Help fund the $15 daily operational cost of Derpibooru - support us financially!

Description

For this rather special MLP anniversary I decided to redo a project I did for a previous anniversary where I wrote a custom renderer to make up for my lack of artistic talent (as seen here >>1560448), but this time using the new skills I have learned since then. In general 10 years ago I barely knew anything about programming, and similarly MLP and the community surrounding it were very different compared to what they are today. Over the past decade though MLP has always been a thing in my life alongside all my learning and development, so I think this project highlights the change that has happened over that period of time quite well. Hopefully there will be another 10 years of pony from this point on as well.
 
As for some more technical details, the implementation is a fairly standard unidirectional backwards path tracer written in C++17 which runs on the CPU. Some notable features it includes are: a custom PBR material model (supporting opaque/translucent dielectrics and conductors), basic SAH BVH construction and ray acceleration, BSDF importance sampling (using VNDF sampling for GGX), next event estimation, basic power/area weighted light sampling, arbitrary emissive geometry, russian roulette path termination, a thin lens camera model (for simple depth of field), multiple importance sampling, and ACES tonemapping.
 
The image itself was rendered at 3840x2160 with 10,000 samples per pixel on a Ryzen 9 3900X in about 12 hours with the help of my friend anthropy (I only have a 3800X). The scene presented within the renderer was made specifically for this project by OleanderTheHorse, most notably being authored to satisfy the renderer’s lack of texture support by using purely per-face materials and a more low-poly style. Note to render this scene in a reasonable amount of time a modified version of it was used that actually utilized multi-threading, otherwise such a noise-free render would’ve taken an eternity on a single thread.
 
Finally, the source code for this project was designed to be as minimal as reasonably doable even if that came at the expense of micro-performance optimizations, mainly for artistic purposes. The actual source will be publicly available soon, I just have not yet finished crunching it down to a small ASCII art program yet as it takes a lot of time to do by hand and I want to get this submitted before the deadline. Additionally running the code itself will be fairly impractical due to how long a single threaded version of it takes to execute, but the purpose is more just to be artistic with its presentation rather than practical.

safe2234664 artist:lemondrop3 artist:oleanderthehorse52 derpibooru exclusive42265 twilight sparkle366727 alicorn328526 pony1664791 mlp fim's tenth anniversary600 g42096777 beaker252 c++25 chair12425 coffee mug2072 female1872322 happy birthday mlp:fim1557 high res411343 laboratory884 lamp4105 mare784111 microscope92 monitor1181 mug6565 programming141 ray tracing4 raytrace5 record player239 solo1478151 statue3339 twilight sparkle (alicorn)153134
Source

Comments

Syntax quick reference: **bold** *italic* ||hide text|| `code` __underline__ ~~strike~~ ^sup^ %sub%

Detailed syntax guide