Welcome to Twibooru! Anonymous posting only; no content restrictions beyond pony-related and legal; comments are disabled by default (Settings -> Comments). Read me!
Uploaded by Anonymous #79E2
 1920x1080 PNG 524 kB
Size: 1920x1080 | Tagged: artist:lemondrop, c++, derpibooru import, happy birthday mlp:fim, mlp fim's seventh anniversary, oc, oc:lemon drop, programming, raytrace, ray tracing, safe, solo, unofficial characters only, wallpaper

Description:

Since I suck at art I decided instead to write a reasonably simple ray tracer to “draw” for me since it can shade much better than I can. Unfortunately this image still seems like the expected example of “programmer art” as it is likely the crappiest image of a pony I could’ve produced, though to be fair it’s not easy to make a pony entirely out of hand placed spheres.


This was all done in C++17 with exactly 3476 characters of code, though the main goal was to fit it nicely into a formatted rectangle which can be seen at the source which is here. The algorithm used is a simpled Whitted-style ray tracer to model light transport using a standard physically based BRDF to model the shading all done in HDR, tonemapped with garbage reinhard tonemapping.


If you wish to compile this, I personally used Visual Studio 2017, though it should work on any regular C++17 compiler (though I may have been relying on Visual Studio’s own include structure a bit). If you do run it, do note that it does take quite some time to process as it renders at 1920×1080 with 16 jittered samples per pixel for anti-aliasing with a maximum of 10 reflection bounces per ray. Finally, the program will output to a 24 bit per pixel binary (P6) PPM file named a.ppm, so you’ll likely need a None to actually view it.


If you have any questions feel free to ask.