It’s been a while since I posted very much about graphics programming, but that’s because I’ve been very busy since January building a new software program to help people generate photorealistic images of hybrid 3d fractals, like this one!
For this article I’ll give you a quick whizz through the core functionality, point you at the download link, and let you have a go using the system!
When you open up wooscripter you’ll start with a simple view of a sphere against a tiled background.
For photorealistic rendering simulating depth of field and focal distances is pretty important. To modify the focus point on the window just left click on the element you’d like to keep in focus.
To move within the scene use the arrow keys. To start with up/down will move you in/out and left/right will move you to the left or right. Hold down Shift for gradual movement. Hold down Ctrl to change up/down to move the camera vertically. Movement is scaled by the focal distance, so for fine movement up close to a fractal, click the fractal to set a near focal point and all movement speeds will be scaled down.
Underneath the preview window are a number of options that allow you to adjust the raytracing engine performance. Turning shadows on, and reflections up, increase the time spent to render each frame. Modifying the resolution can optimise rendering times. Try to work towards a rendering time where you can comfortably adjust the camera to set up your render.
Next up we have the five tabs on the left that give access to key settings for the fractal. The Fractal tab will start highlighted, and that’ll give you the option of adding a fractal to start exploring. It’s worth starting with a bit of a mess around by adding different types of fractal and seeing the styles of hybrid you can generate. It often pays off to play with the Scale parameters to ensure that fractals remain visible as you mix them together.
On the second tab you have some core options that help you modify how the fractal is rendered in the raytracer. These can have significant impacts on render time, so it’s worth tuning these once you’ve selected a hybrid fractal you want to render. I’ve tried to keep it simple, but they’re quite tightly tied to the rendering system that’s been implemeneted. I’ll go over them in detail another time.
The third tab allows you to control the camera used to render the fractal. Most obviously the aperture size is used to adjust the depth of field effect you see when moving around the fractal. There are a few additional parameters here which allow you to modify the zoom (field of view) and to simulate spherical and sterographic projections. This can give your renders a little more variation.
The fourth tab allows you to configure the colours for your fractal. You’ll start with a single colour gradient where you can modify the start/end colours by clicking the small colour swatches. To get more colour variances begin by scaling up the multiplier. To generate more complex gradients start by double clicking the existing gradient. This will add a new keyframe into the gradient. Click either side to select each half, and then modify the start/end colours. If the colour you’d like isn’t in the swatches click the Edit button and you can modify each colour in the palette. You’ll also get a preview render to show you how the colour will look against a single sphere.
The fifth and final tab allows you to modify the rendering environment. Right now there is only one lighting model, so not much to change here, but there are a few different backgrounds you can use for rendering the fractal selectable from the dropdown. There are also a bunch of fog parameters for atmospheric rendering, which I’d suggest you just have a play with.
Hopefully by now you have a somewhat interesting fractal in the main view, and you’ll want to render a high quality image. To do this click on the Final Render button. To start with you’ll get a relatively uninspiring black image, with a number of controls underneath that’ll allow you to modify the final render quality.
First up click the “Reflections” button, as we’ll want this at “1” for a high quality render. Make sure Shadows and Depth of Field are enabled, and then click the “Start” button. This will kick off the progressive raytracing engine which will allow you to see progress as the image is rendered.
After 100s this is where I’d got to.
We now have a decentish fractal, and below the image you can see a few statistics about how the raytracing engine is performing. For my system configuration I’m hitting 600K ray samples per second, and I’ve iterated each pixel 37.5 times in 100s. To totally eliminate noise you probably want to aim for 100 samples per pixel at least, and you’ll also want to kick the resolution up to 1080p, but there’s something else that’ll help with image quality.
Underneath the main image you have a tone-mapping box which controls how the raytracing output is converted into a standard digital image. Again I suggest just playing around with this, but you should be able to stylise the render fairly effectively with these options.
To the right of that box you have the Postprocess filter. This allows you to emphasise brightness in the image by spreading brighter pixels across the image. The controls are relatively simple, but again have a play to see what happens.
After a bit of fiddling I’m now up to this.
And now I’m good to go with saving this image to disc and spreading it across social media. To do this click “Save Image”. Images are saved into “My Pictures -> Woofractal -> Exports”.
Hopefully this whistlestop tour has inspired you to have a go yourself, if so please go to the download page to get a copy of the application.
Follow me on twitter @dom767 for all the latest updates.