DarkTree2.5/ about procedurals

What is a procedural texture?

Scene rendered entirely with DarkTree procedurals.


Very simply, a procedural is a calculated texture.

Key advantages and disadvantages of Procedurals.
Our procedural textures have a number of advantages over traditional painted and photographed textures.  Here we will explain the key issues.

     Advantages

  • Reuse & Modify - DarkTree procedurals can be quickly changed at any time. Old materials can be tweaked and reused so that every surface looks fresh and new without having to redesign, paint, or photograph a new material.   example
  • Placement - Generally, texture maps distribute details across your object’s surface independent of your object’s shape. This looks OK in some cases, like gravel, but is unrealistic in other cases, like rust placement.  DarkTree procedurals allow you to export high level controls, like rustiness, that you can then place with bitmaps or vertex weights.    example   (not available for Animation:Master)
  • Resolution Independent - Since procedural textures are calculated at render time, they are always high resolution.  Bitmaps get blurry as you zoom in while procedurals show you more detail.   example
  • Visually Accurate Shading - Photo textures are pre-lit and so create false lighting cues when re-lit in a 3D scene, especially with bumpy textures. Procedurals provide raw unshaded surface attributes that render more accurately and result in more realistic looking output.   example
  • 3D Mapping - When you attempt to apply a texture map to a 3D object, you immediately run into the problem of how to wrap a 2D bitmap onto a 3D object without distorting the texture.  Procedurals, on the other hand, are 3D and so apply to any complex 3D shape without distortion.    example
  • Low Memory Usage - Since procedural textures are calculated, they use up very little memory regardless of the detail level or surface area.

     Disadvantages

  • Aliasing - The down side of being resolution independent is that procedural textures can contain a great deal of detail.  If you render a detailed procedural from a distance, you are likely to see aliasing problems and scintillation (sparkling) during animations. DarkTree provides a Surface Distance component that allows you to design textures that change their level of detail based on how far the surface is from the camera.  This can fix the problem but requires you to design two or more versions of the procedural texture for different distances. A second solution is to render out the DarkTree as a texture map.
  • Speed - Procedural textures are calculated at “render time” which makes them substantially slower than bitmaps. DarkTree allows you to put an arbitrary number of components in a texture so you can use a few and keep it fast or put a lot and make it slow.  You can render the procedurals out to bitmaps but you then lose the advantages of Resolution Independence, 3D Mapping, and Low Memory Usage.  Some 3D packages include “texture baking” features that allow you to pre-render procedurals making them as fast as bitmaps. DarkTree can render to some UVW map formats giving you the same advantages as baking.
  • Difficulty - Procedural textures and shaders have long been the domain of only the most technical 3D artists.  This is really the problem DarkTree was originally designed to solve.  By providing a graphically rich interactive environment to create in, DarkTree artists can explore and create without being too technical. Designing procedurals still requires experimentation and some technical understanding.