home    gallery    reviews    tutorials    shop     contact us    
PlugIn Support
  • 3ds max 3, 4
  • LightWave 6.5, 7
  • Animation:Master V8
  • trueSpace 5

  • System Requirements
  • Windows 95/98/ME/NT4/2000
  • Intel Pentium or AMD Athlon
  • 1024 x 768 resolution display with 24-bit color.
  • 500MHz (1GHz or greater recommended)
  • 128 MB RAM
  • CD-ROM and two button mouse.

  • New 2.0 Features
    New Procedural Components (not a full list)
  • Froster
  • Audio Wave
  • Cache
  • New input formats - Image, Image Sequence
  • Cross Section
  • S Curve
  • Spline
  • Blobs
  • Gravel
  • Pumice
  • Scratches
  • Tech
  • Worm Sign
  • Added 3D Mapping - Bricks, Checkerboard, Dots, Flagstone
  • Added rounded edges - Flagstone.
  • Mosaic
  • Polyhedra
  • Rock Wall
  • HSV Attractor
  • Hue Rotate
  • DarkTree Shader
  • Blend Loop
  • Carousel Loop
  • Warp Loop
  • Warp Tile
    Bitmap Creation
  • Now includes plug-in API for output formats, mapping, and antialiasing.
  • Added Cubic mapping output.
  • Added alpha channel output.
  • Supports many new output formats. BMP, FPX, IFF, Jpeg, PCX, PICT, PNG, PSD, SGI, TGA, TIF, and XPM
  • Automatic split out of shaded DarkTrees into their material channels for rendering out separate bitmaps.
  • Textures modifiable through Tweak controls directly in bitmap renderer.
    Texture Library
  • The Texture Library is now a filtered file explorer for local and networked directories. DarkTree files can be managed directly (moved or deleted) from the Texture Library.
    Examine Window
  • Create AVI and QuickTime movies to preview animated DarkTrees
  • Rough animation preview (displays frames as they render).
  • Preview DarkTree in a tiled mode so you can see how the texture will looked on a tiled plane.
  • Renders based on shader component's settings.
  • Added Cubic preview.
  • Geometry can be rotated.
    DarkTree Editor
  • Real scale texture dimensions so you can design textures to scale and have them automatically fit to correctly sized 3D geometry.
  • More detailed link menus point out regional, functional, and tweaked parameters.
  • Right-click component menu shortcuts to cut, copy, paste, convert, examine, etc.
  • Pitch and heading rotation controls for 3D geometry.
  • Trigger Bank replaced by more intuitive spline based time components
    Tweeks
  • Tweaks are essentially "macro" controls for a DarkTree. When you create a DarkTree, you can decide which controls are the key ones for controlling the look of your procedural surface. A tweak can control a single parameter in the tree or multiple parameters.
    Component Editor
  • Interactive preview updates.
  • Time control for viewing frames of an animated texture.
  • Tiling preview mode.
  • Preview any component from the current component to the root.
  • Color/percent/bump swatches for linked parameters now show the actual texture that they are linked to.
  • New color browser lets you work in HSV/RGB modes as well as grab colors (and average colors) from images
  • Added the ability to unlink/relink parameters from within component editor.
  • Online component reference help available directly from component editor
    Plugin Integration
  • You can now create and edit darktrees directly from the plugins.
  • Macro controls (Tweaks) to change high-level features of darktrees.
  • In general, plugin integration has been greatly improved. Plugins fit into their host application as well as possible and take advantage of each application's strengths.
    DarkTree Textures 2 Review
    DarkTree Textures 2
    SRP $479 ($125 upgrade from 1.x)
    Darkling Simulations
    www.darksim.com
    Reviewed By David Duberman

    The procedural texture is one of the most powerful tools in the 3D artist's armamentarium. Unlike bitmap images, which are, in effect, cast in stone, the flexible, algorithm-based procedural texture gives you one or more parameters that you can alter to change and even animate its appearance. For example, 3ds max's Wood map lets you define grain thickness plus radial and axial noise, and assign two colors or other maps to the texture. Other benefits of procedural textures include minimal use of memory and the ability, with some, to change parameters as you move through the mapped object, resulting in a 3D texture. Perhaps more importantly, you can use procedurals to create fantastic, special-effects imagery such as plasma and alien scales-just right for that latest sci-fi spectacular-that would be otherwise difficult to come by. Drawbacks include the extra time necessary to calculate the texture's appearance from the formula and input parameters, although with today's super-fast processors, this often doesn't add a lot of overhead.

    For users, the primary disadvantage of procedural textures is that they're not all that easy to come by. Given a digital camera or camcorder, or an analog image recorder plus digitizing device such as a scanner, anyone can generate a virtually unlimited supply of real-world images for use with the 3D application of choice. And if you can drag a mouse or use a drawing pad, you can generate images for texturing with software like Adobe Photoshop and MetaCreations Painter. But most 3D programs come with a limited selection of procedural textures, and it takes a talented programmer equipped with useful algorithms to create new ones. That is, it did until the good folks at Darkling Simulations came up with their brilliant DarkTree Textures 2 (DT2), a stand-alone program that lets the non-hacker with an eye for design create a practically infinite number of procedural textures. It comes with a nice variety of still and animated preset textures, but its real strength is the editor, which lets you string together a generous selection of supplied modules in a hierarchical structure to create your own textures. DT2 generates bitmaps, but Darkling has also considerately created plug-ins, called Simbionts, for bringing the procedurals directly into 3ds max, LightWave 3D, Hash Animation Master, and trueSpace.

    As its name indicates, DT2 is the second major revision of Darkling's premiere app. The way the program works is still basically the same, but a number of significant improvements have been made, particularly in the area of animation. I'll cover some of these during the course of this review; if you want a quick rundown of everything that's new, check out http://www.darksim.com/html/dt2_new_features.html. And if you're the impatient type, and just want my opinion right up front, here ya go: This is a killer piece of software, one you'll be using for years to come. Buy or upgrade now; you won't be sorry.

    The User Interface

    DarkTree Textures uses three different windows to display data and let you control the program. The main program window (see Figure 1) offers the Texture library, a scrolling Explorer-style list with a small preview pane above it that depicts the current selection. Each texture, which Darkling calls a "darktree," is represented by its name and a small icon whose color specifies the type of channel it defines. The three major channel types are color, bump, and percent (the latter can fill in for any numeric parameter). A texture can also be a fourth type: fully shaded, which comprises many attributes. The rest of the main window is for rendering images and image sequences, including batch processing capabilities. Supported output formats include Windows Bitmap (16- and 24-bit), JPEG, Targa, PICT, TIF, FPX, IFF, PSD, XPM, PCX, and PNG. All but the first three are new; as with BMP, a number of formats can be output in several different bit depths. Also new is support for alpha channel output, so, for example, you can save Targa-format images in 24-bit or 32-bit depth.


    Once a darktree's thumbnail is displayed in the preview pane, you can click the Examine button to open a larger a resizable Examine window appears (see Figure 2). This window offers a wealth of functionality. For example, you can combine textures any way you like by dragging different channel types from the list to the window. The new toolbar lets you map the texture onto a plane, sphere, cylinder, cube (new), or the new Frame option, which is a plane you can rotate in any direction. Here you can also tile the texture, play and record an animation if it exists, rotate the preview object, or toggle any channel's action. The latter options include the ability to see the "surface bump," (formerly raw elevation) which is the bump component in grayscale.

    Because the program can take a little while to calculate a texture's final appearance, even on a fast machine, the Examine window uses two passes at successively higher resolutions to fully render an image, plus an optional third pass for anti-aliasing. Unfortunately, DT2's renderer doesn't support multiple processors.

    The DarkTree2 Editor

    Next the preview pane in the main DT window is the Edit button--the key to the heart of the program. The DarkTree editor (see Figure 3) lets you design, build, and display the structure of your textures. You can also enter the editor with the New menu command, in which case you start out with a blank slate, or open an existing texture for editing simply by double-clicking it.

    Like the main window's Texture library, the editor contains a scrolling list of components arranged into various categories. To its right is a grid of "sockets" into which you drag the components. You then wire these together to create a sideways hierarchical layout, or "tree," whose tip, which the program calls the root, is the component in the single socket in the first column. Each component can be linked to a parent by its type icon-the dot in the lower-left corner-and to one or more children from its "links panel," the protruding area at the upper right. Right-clicking the links panel brings up a menu of available parameters, color-coded to show what type of component they can be connected to. Parent components must be situated to the left of their children, but can be higher or lower.

    Here's an example. If you're creating a procedural texture for use in 3ds max, you might start with the shader component in the root socket. The original shader had eight such as Color and Bump; DT2's version adds 12 more, including several Clear Coat parameters that let you add a second specular highlight to your surface representing a clear coat of lacquer or finish. Also new in the shader are settings for anisotropy, metal highlight, and transparency.

    By linking a parameter to a child component, you control that parameter with the child's settings. For instance, you can control the shader's color with a pattern such as Bricks or Checkerboard, and its specular level with a Noise component such as Rough. You can create long, branching chains of components, with the results becoming increasingly modulated and complex as you move leftward, culminating in the root module where everything comes together. It's easy to see the cumulative effects, because each component's face depicts, by default, the result of its settings combined with those of all of its children.

    The editor offers 103 components, expanded from DT1's 75. A helpful enhancement in DT2 is the ability for component names to include spaces; in DT2 words in names were separated by underscores. The components are divided into categories such as Control, which handles randomization tasks, and Deform, which provides distortion functions like Radial Twist and Turbulence.

    An important tool category is Generator, with 2D functions like Sine Wave, Linear and Bias. You can use these to control geometric shapes, blend functions and more, and to modulate animation. For smooth transitions there's the Gradient class, and for realistic textures there are the Naturals, with Agate and Clouds, and the Noises, with Fractal and Manhattan. The Pattern class provides your basic Bricks, Checkerboard and more, and the Process class implements such image-processing functions as Darken, Fade, and Multiply. There's also a Transform class with standard Translate, Rotate and Scale functions, and for using existing images and image sequences, there's the External class.

    You won't have much of a problem discovering what a component's parameters do, but you'll spend a lot of time learning how they interact with each other and with those of other components. DT is a perfect toy for the tinkerer at heart.

    Here's a list of all the new components in each category:

    • Deform: Froster
    • External: Audio Wave, Cache, Incident, Poster Board, Surface Distance, Surface Up, Time (Trigger is gone)
    • Generator: Cross Section, S Curve, Spline, Stair Step
    • Natural: Blobs, Gravel, Pumice, Scratches
    • Noise: Tech, Worm Sign
    • Pattern: Mosaic, Polyhedra, Rock Wall
    • Process: Color Convert, Derivative, HSV Attractor, Hue Rotate, Invert (Tiles broken out into new Tile category)
    • Tile: Blend Loop, Blend Tile, Carousel Loop, Vblend Tile, Warp Loop, Warp Tile

    When I reviewed DT1, I expressed disappointment that some of the Pattern components, like Bricks and Weave, were 2D only, and thus couldn't be used as 3D textures. Good news: Four previously 2D-only components--Bricks, Checkerboard, Dots, and Flagstones--can now be mapped in three dimensions, and Flagstone also has a new parameter for rounding corners.

    Among the new components of particular interest to those doing 3D rendering is Incident, which interpolates between two values (colors, etc.) based on the difference between the viewing angle and that of the surface normal. This can be used for very realistic-looking surfaces, or very unrealistic ones. Similar to Incident is Surface Up, in which the resultant value is derived from the difference between the viewer angle and the "up" angle (world Y axis); it's useful for adding top-surface textures such as snow or moss. 3D artists will also be able to make good use of Surface Distance, which blends between two values (textures, etc.) based on viewer distance; sort of an LOD tool for textures.

    In DT1, right-clicking a component did nothing; you had to double-click it to edit it. In DT2, you can do the same, but you can also right-click for a menu with choices like Examine (obviating DT1's eponymous button), Edit Component, and the ability to convert the component and its children (i.e., the subtree) to a different type.

    Another major addition to the editor are tabs in the side panel that previously contained only the component list, which is now available from the default Components tab. New is the Properties tab, which lets you name the texture and its author, add a description, and specify the number of animation frames. Here you also set global thumbnail parameters: mapping type, which includes Frame, Planar, Cylindrical, Spherical, and Cubic; aspect ratio for Frame mapping; and Frame view angles. I'm guessing DT3 will let you set these, as well as the angle settings for the Examine window, interactively. I'll get to the third tab--Tweaks--in a bit.

    Editing Components

    Click-and-drag methods are fine for high-level texture editing, but at some point you've got to examine and possibly hand-alter some parameters. You do this by double-clicking a component, which opens the component editor. Every component has a different set of parameters--the Rough component, from the Noise category, depicted in Figure 4, is fairly representative. Depending on the Views setting, a small window shows the current component, the component as acted on by any children, or the root component as modified by all of its children. This window gets updated while you change a setting, not after as in DT1. You can set translation, rotation and scaling transforms numerically or, new in DT2, with the mouse. And you can align a component with its parent (applying the parent's transform settings to the component), return transform settings to the defaults, and copy and paste transformations between components.


    The lower part of the component editor dialog lets you edit the actual parameters, which are typically numbers and colors. If a child component or tweak is controlling a parameter, the setting is unavailable. Otherwise, you can enter numeric parameters from the keyboard, or use the mouse with the gizmos to the right of the number setting. Called zip-sliders, these work similarly to 3D Studio MAX's spinners, where you can click to change a setting by a small increment, or drag for a larger change. You change colors with a custom color selector, which unfortunately lacks zip-sliders, or drag on the color swatch to change hue, saturation, and value. The editor has an Undo button but doesn't respond to Ctrl-Z, although that key combo is available in the rest of the program.

    Animating and Tweaking

    One of the biggest improvements in DT2 is the addition of the Timer component, which replaces DT1's Trigger component. In DT1, a darktree could use up to 11 triggers for animating various texture elements. However, the triggers were relatively primitive; you could specify start and end frames and start and end values, and that was about it. DT2's Timer component, on the other hand, is one of its most flexible tools, thanks to the new spline editor, shown in Figure 5. Incidentally, the new Spline generator component uses the same editor.


    DT2's spline editor is nicely designed and easy to use. The graph's horizontal and vertical axes represent time (or input) and value respectively. You can add and delete control points, drag them around one at a time, and enter input and value settings with the keyboard or via zip-sliders. Bezier handles aren't implemented, but you can set a point's in and out slopes to smooth or linear. You can also move the whole spline horizontally and vertically, and shift and scale the view horizontally. Lastly, you can specify that the spline should take effect only once, or repeat in standard or Ping-Pong fashion.

    If you prefer a more formulaic animation-control method, you can simply plug a Timer into an intermediate component, such as a generator. For example, if you link a Timer to a bell-curve generator's Input parameter, and then use that to modulate an object's width (say, a brick pattern's mortar), the width starts at 0 in the first frame, increases smoothly to maximum size at the middle frame, and then shrinks to 0 again in the last frame. If you change the Timer's upper value to 50, you get only the left half of the bell curve.

    The other major new feature in DT2 is Tweaks. Basically, what it does is give you external control over any component parameters. This offers three significant benefits:

    • You can control the parameter from the editor's Tweaks panel, without having to open its component.
    • You can tweak one or more parameters with another tweak, thus giving you global control over any number of parameters with a single setting. Of course, the parameters must all be of the same type, such as integer or color.
    • Best of all, you can adjust the tweak within your 3D app of choice via the Simbiont plug-in. No more going back and forth between DT and the 3D program to adjust a component.
    Tweaks are easy to understand and simple to use; a truly powerful addition to an already-great program. The only thing I'd add is that, when you create a new tweak and are presented with a dialog for naming it, that the field be filled in by default with the name of the parameter you're tweaking.

    Plugging In to 3ds max et al

    Using DarkTrees with 3D apps like 3ds max is fairly easy, thanks to free plug-ins you can download from the Darkling Website. With max, you can load a DarkTree file as a map or as a material; in the latter case, the root component must be a shader. You can find a review of SimbiontMAX 2.0, the for-sale version of the 3ds max plug-in, on this site at http://www.creative-3d.net/productFeatureDisplay.cfm?content=simbiontmax.

    The Docs

    One of the nicest new features for documentation junkies like myself is a Help link in most of the components' edit windows. Click it and a browser page opens with a description of the component, an explanation of how it works in more-or-less plain English, and hints for usage. Symbols indicate whether the component works in two or three dimensions, or both, or is a modifier that doesn't actually generate imagery. This is accompanied by brief explanations of each of the component's parameters, both internal and available for linking. Incidentally, those aren't always the same. For example, several of the Tile components have Distortion and Time parameters that are available only for linking. It makes sense when you understand that they need some sort of external function to work.

    The well-written printed manual complements the online component help by offering a number of short, pithy tutorials, plus detailed descriptions of the program's various sections, along with a wealth of techniques for achieving specific results. For instance, the Seamless Looping section tells how to use the Loop components to create animations that can be repeated without an obvious starting or ending point. A number of parameters are common to several members of each component family, and the manual discusses these in greater depth than the online help. You'll be consulting the latter on a regular basis while using DarkTree 2, but if you don't read the printed documentation as well you'll be cheating yourself of much of the program's utility. If you'd like to check out the manual before you buy, download the free version in Acrobat format from http://www.darksim.com/html/arcanum.html.

    Conclusion

    Nice little touches--the obvious result of much thought and care--abound in DarkTree Textures 2. For instance, whenever you drag a component to a tree slot, a dialog opens in which you click a button to indicate the type: Color, Percent, or Bump. Normally, the default type, which to accept all you need do is press Enter, or click if you've set your mouse to automatically move to the default button, is Color. However, if you've pasted a component into the Root socket as different type, this type then becomes the default for all subsequently placed child components.

    Almost all graphical components are 3D textures, so you can produce fascinating animations simply by moving a texture perpendicular to an object surface. To do this in 3ds max, you first apply a UVW Mapping modifier to the object and animate its gizmo on the Z axis. In the Material Editor > Coordinates rollout, set the texture's Source to Explicit Map Channel, and set the Map Channel to the same number as the UVW Mapping modifier's (both default to 1). A relatively small movement can have a noticeable effect.

    I love little 3D graphics programs that don't play by the big boys' rules, thus creating software that's different and outstandingly usable and useful. Amorphium is one excellent example of this; DarkTree Textures 2 is another. DT2 isn't a traditional 3D program by any means; it doesn't do modeling, and it knows nothing about character animation. It does one thing--creating procedural and bitmapped textures--and it does it superbly. It's a 3D program because most of the procedural textures live in three-dimensional space. Thus, moving them perpendicular to an object's surface creates a sequence of "slices" from the texture's depth, generating a fascinating abstract animation that can't be done any other way.

    Imagine a toolchest (or, if you like, a toy box) from which you keep taking items, and every time you look back into the box, you spot a new, enchanting tool that's just what you were looking for. Or even better, you didn't know you were looking for it, but as soon as you see it, you know what you can use it for. And best of all, the box is always full. For 2D and 3D artists, DarkTree Textures 2.0 is that toolchest. From a finite set of components and parameters you can create endless varieties of great-looking textures--it's magic!

    Don't take my word for it: download a free demo version from http://www.darksim.com/html/dt2_demo.html.

     
    Advantages of Procedurals
    Reuse & Modify - DarkTree procedurals can be quickly changed at any time. Old materials can be tweaked and re-used so that every surface looks fresh and new without having to re-design, paint, or photograph a new material.
    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
    Visually Accurate Shading - Using a photograph of a material gets you the right surface color but unfortunately, the photograph also captures diffuse, specular, bump, and other attributes. In other words, the photo is already lit and so provides false lighting cues and surface bump in your rendered scene. Procedurals provide raw unshaded surface attributes to the surface that render more accurately and result in more realistic looking output
    3D Mapping - When you attempt to apply a texture map to a 3D object, you immediatly run in to the problem of how to wrap a 2D bitmap onto a 3D object without distorting the texture. Procedurals, on the other hand, are defined in 3D space and so apply to any complex 3D shape without distortion
    Low Memory Usage - Since procedural textures are calculated, they use up very little memory regardless of the detail or surface area of an object. This is much less of a problem than it was in the past since RAM is so inexpensive now. Large complex scenes, however, are still limited by available memory and can benfit from procedural's low memory needs.
    Disadvantages of Procedurals
    Placement - Traditionally, procedural textures have had a problem with placing texture details. You can have a rusty paint procedural texture, but you cannot specify where the rust is directly. DarkTree 2.0 has solved this problem by allowing you to export high level controls, like rustiness, so that they can be controlled by bitmaps. Unfortunately, not all 3D applications support this kind of bitmap control of parameters. Currently only our 3ds max and LightWave plugins support this feature.
    Aliasing - The bad side of being Resolution Independent is that procedural textures contain a great deal of detail. If you render a detailed procedural from a distance, you are likely to see aliasing problems and scintillation during animations. It can be extreme enough that anti-aliasing filters cannot fix the artifacts. DarkTree 2.0 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.
    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.
    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.
    DarkTree 2.0 Links
    3DLinks 3DShop
    Purchase DarkTree 2.0,at the 3D Shop!


    Darkling Simulations
    Developers of DarkTree 2.0


    DarkTree 2.0 Demo (20MB)
    The DarkTree 2 demo is for the Windows 95/98/ME and Windows NT4/2000 operating systems. Your video display must be running in 24-bit color at a minimum of 800x600 resolution.


    Intro Tutorial
    Runs through the basics and guide you through building your first material.


    Simbiontmax Review
    Review of DarkSims 3DS Max plugin - Simbiontmax, reviewed by David Duberman.