Products | Features | Sales | What's New | Download | Support | Tutorials | Newsletter | DOTM | About - Home

  PuppyRay for Dogwaffle:

First Heightmaps

PD Particles is great for quick painting, drawing and sketchingPD ArtistPD Howler also supports digital painting,  animation & video, 3D and visuall effects

  Introduction  | First Steps | Render Options | Starfields as Elevation Maps |
 New in Version 11 | Bumps | Real Fresnel | Other Sightings | Playlist on Youtube  

Creating a Heightmap

A heightmap is essentially an image. The bright pixels will appear in high elevation. The dark pixels will be forming the lower regions.

The color itself is not affected by the image in the heightmap. The only thing that the heightmap controls is the elevation of the terrain. Various other factors will set the color: the colors from the Swap image (i.e. the texture map), and various lighting effects such as direct lighting, indirect and ambient occlusion, cast shadows, even reflection and refraction. Some parts will be affected by other parts in the scene.

Here is a first look at creating a very simple heightmap: a Grid pattern:

And here is the grid pattern, saved as PNG image file. A PNG can be pretty big, but doesn't suffer from lossy compression. In this case it figures a great amount of compression that is likely based on run-legth encoding, and still remains very small. Click it to view the original size, 1280x768:

If you save it as JPEG, be aware that it is a lossy format, so it can potentially loose some details. For example, here is the same image saved at very low quality (around 10-15). The difference may not be easily seen depending on lighting and contrast settings on your display monitor, but it will easily be seen in the 3D rendering of PuppyRay or other tools if the same is used as elevation map.

After creating the grid image, or re-loading it, go to PuppyRay to have it rendered: Filter > Transform> Puppy Ray... and try the CPU version first:

Set the quality to Final Render (1) or other values and click Raytrace (2):

The above was based on the original grid image, or from loading the lossless PNG version. If instead you used the re-loaded Jpeg mage with poor compression, you might see this:

Yes, same grid image, but saved as different file with different side-effects due to lossy or lossless compression, and reloaded.

Sometimes, it's creating ugly side-effects. On other occasions, it can actually look rather cool, and introduce new fancy patterns or hyper realism.

Next, explore a few more rendering options. For example:

(1) click and drag the value next to the Prefilter label. The amount of prefiltering can lend a very different appearance to the terrain.

Set the prefilter value to 0 if you don't want any smoothing of the elevation.

In the lower right there is a More... option, click it to also see extra parameters.  One in the lower right of the full interface shown thereafter is to disable or enable interpolation. If you uncheck that box, the rendering will have a very cool blocky look.

(2) Near the top preview window you see a few icons for various controls of the camera, the light and the world. Try the first and second from the left to control the camera. Drag the mouse inside the preview with left or right button for different controls. Explore!

The third icon in the row from the left controls a point light, also known as the Sun. It is not a distant parallel light but you can move it far away to get similar effect. You can also use the right button to drag it down and see longer shadows.

(3) The Intensity of the light, and the fog value are additional experiments worth exploring. The higher the value for the fog, the farther into the distance you will see. Puppy Ray will endlessly tile your image-based elevation map until it disappears in the fog.

In the mid right you also see a choice of Skies and a box to enable their global illumination.

Below are some examples of renderings easily obtained in this way, still working from just that one grid pattern:

Another, with mild post work:

And here's that same grid but first we inverted it. Now the narrow dark lines turned into bright lines which generate the high ridges. We also did apply a light diffusion filter to get some extra definition in the low areas along the walls.

In the next one we added some circular (radial) blur before running it into PuppyRay. And we also added a little bit of post work, such as lens flares.

Here we set the camera very close down near the grid, and disabled interpolation.  In this case we used the jpeg compressed image version again, so there's a lot of noise in the heightmap, causing a rough series of alterations in the elevation map. We also combined it with the original in an XOR mode, adding to the noise.

You can take this further and further. Adding animation, mirroring, edge detection, gradient re-mapping, and combining multiple parallel stored animations, motion estimated interpolation, and many other tricks, filters and technqiues, we'll explore a number of crazy ways to boldly take this basic grid to where no pixel has gone before.

A rendering from PuppyRay can lend itself for interesting user interfaces, such as for games. Adding the mirroring and transforms turns it into some sort of kaleidoscope. Here's an example with additional lens flares and other post FX, all done with Howler 11.

Access granted, please enjoy your journey -

back to puppyray