Home Gallery Download Info
Features Tutorials

"4D Blue" Features

Surface Types

"4D Blue" supports multiple surface types:

  • Polygonal Mesh
  • Heightfields - With smooth normals for efficient complex terrains rendering
  • Uniform Spheres
  • Quadrics
  • Algebraic Torus
Subdivision surfaces are not considered as its own surface type in "4D Blue" and are created from polygonal surfaces.

Large Variety of Constructors

Objects, Curves, Lights, and Cameras are all created by transformations called "Constructors". Because most constructors' parameters can be adjusted and animated, the user has full control over the resource being created.

Object's Constructors

P - Polygonal Surfaces
N - NURBS Surfaces
S - Sphere Surface
Q - Quadric Surfaces
T - Torus Surface
HF - Heightfield Surface

Plane (P)
Cube (P, N)
Cone (P, N, Q)
Cylinder (P, N, Q)
Sphere (P, N, Q, S)
Torus (P, N, T)
Teapot (P, N)
Quadrics (Q)
Heightfield (HF)
Bevel (P, N)
Birail (P, N)
Extrude (P, N)
Lathe (P, N)
Loft (P, N)
Planar (P)
"Cookie-Cutter" (P)

Curve's Constructor

Curve's constructor creates an empty curve set at the moment of construction. Then the user is able to add new curves and modify existing ones in the Curve Editor. Curve Editor also contains few of its own internal curve constructors: N-gons, spirals, text, gear wheels, etc...

Light's Constructor

There is a single multipurpose light constructor. It can be initialized at the moment of construction to one of the following light types: Ambient, Point, Spot, Object, Object, or Sky. The type of the light and the large variety of the parameters can be changed and animated at any time after the light is created.

Camera's Constructor

There is also a single multipurpose camera constructor. Like lights, it has large variety of parameters that can be changed and animated at any time after the camera is created.


Constructors are only special cases of all available transformations. Transformations are applied to existing resources, and they modify the resource in some way. Transformations are stackable, (i.e. one transformation can follow another transformation). For example, we might have the following sequence of transformations:
  • Cube Constructor
  • Bend Transformation
  • Subdivide Transformation
The end result would be a bend cube, which also has been subdivided later. Most transformations' parameters can be changed and animated at any time after the transformation is created.

Transformations that are shown below visibly change the object's geometry:

Most of the above transformations are limited only to Polygonal and NURBS surfaces.

The transformations that are not shown are,
  • Container
  • X-Form
  • Mirror
  • Tessellate
  • NURBS Tessellate
  • UVW Mapping
  • Subdivide

Subdivide Transformation

One of the transformations that the example has not shown above is "Subdivide". That is because in order to fully understand how subdivide and subdivision surfaces work, the result has to be compared relative to the number of iterations. The following table shows the same object after different number of subdivision iterations:
0 Iterations
1 Iteration
2 Iterations
3 Iterations
4 Iterations


Morphing allows the parameter-driven blending of two or more resources. Now, the following types of resources can be morphed:

  • Curves
  • Polygonal Surfaces
  • NURBS Surfaces

CSG - Constructive Solid Geometry


"4D Blue" supports Constructive Solid Geometry (CSG) at rendering time. Any surface combination can be used and there is no limit to the number of objects or surfaces. The most common CSG operations that are supported: union, intersection, and subtraction.


Polygonal & NURBS Surfaces Editors


Polygonal and NURBS Editors allow the user to modify existing polygonal and NURBS surfaces. Both give the user a complete interface and a set of tools to adjust and modify the surfaces as needed and desired. They offer a variety of display modes that allow the user to show and hide particular components of the surfaces as needed and at user’s convenience. Each comes with unique features that are relevant to a particular surface type. For example, NURBS Editor allows the user to adjust surface degree in UV directions while Polygonal Editor, for example, has an extended subdivision section that allows the user to subdivide selected parts of the mesh.

Curves Editor


Curves Editor allows the user to create new curves and modify the existing ones. It provides the user with all the basic interface tools as well as a few extra ones such as inserting new point, adding new point, and moving point tangent. When creating the curve, the user has full control over the curve degree up to 8 as well as the type of the curve that can be opened, clamped, or closed. If needed, tools that allow the conversion between control points and knots positions are available; these tools enable the user to specify the curve by control points or by points that the curve goes through. Furthermore, Curves Editor contains its own "Curve Creator", allowing the user to quickly create curves like N-gon, spiral, text, gear wheels, etc.

Animation Editor


Animation Editor is a primary tool used to adjust existing animation or to create new one from scratch. It gives the user the ability to choose as many different animation controllers as the user wants and to adjust them at the same time. With Animation Editor, the user can move, insert new keys, and adjust the curve tangents at the key positions, or move the whole animation curve. The tool also provides basic "Copy and Paste" system.

UV Editor


UV Editor allows precise adjustment of UV mapping coordinates on objects. It is mostly useful on Polygonal surfaces, but to some extent also allows mapping adjustments on NURBS surfaces. Complex mapping of NURBS surfaces is a tricky task anyway. The editor gives the user the texture preview in the background and the object's UV mesh wire-frame in the foreground. The user then can adjust the position of the UV coordinates of the vertices using the regular interface. The results can be immediately updated on all the views, giving an instant feedback. UV Editor also allows the exporting of the object UV mesh wire-frame into image files, which is handy in case of creating new textures from scratch.


Shading process in "4D Blue" is controlled by small programs called "shaders". They are solely responsible for the pixels colors as the rays intersect surfaces. The specification is slightly based on RenderMan interface, but overall the “shaders” language is unique. Writing shaders is considered to be either difficult or fun depending on your perspective, but the good news is that you might never need to write a single “shader” when using "4D Blue", since a large variety of all purpose and more specialized shaders is included. You are also free to slightly twitch the existing ones based on the personal needs. But at the same time, if you choose to take full advantage of the “shaders” language, you have a very powerful tool at your disposal to give your scene virtually any look that you wish, may it be realistic or non-photorealistic.

Displacement Shaders

Displacement shaders are responsible for displacing the geometry before it goes into rendering pipeline. The displacement is usually based on a texture value, but the “shader” can use any value it wishes. For example, a wave displacement “shader” could create a wave surface of your preference.

Surface and Global Illumination Shaders

Surface and Global Illumination shaders are the main group of shaders and they are primarily responsible for the look of the surface. They are divided into four groups:

  • Surface Ambient
  • Surface Light
  • GI Photon
  • GI Radiance
"Surface Ambient" shaders are responsible for the ambient contribution, i.e. these shaders are always executed only once and usually compute the ambient light contribution, but they can be more complex such as a mirror surface or glass surface.

"Surface Light" shaders are responsible for the contribution of each individual light. They could be considered the most "natural" shaders as they are directly responsible for the look of diffuse and specular surfaces. These “shaders” usually don't add reflected or refracted light contributions.

"GI Photon" shaders are responsible for the photon’s behavior as they propagate from the light source through the scene. They control whether the photons should be absorbed, stored, as well as the colors that should be stored or propagated.

"GI Radiance" shaders are used during final gather process. They are almost exactly like the surface shaders except that they should only compute the diffuse contribution.

Media Shaders

Media "shaders" controls the lights absorption, scattering and emission as the rays propagate through a medium. They can be as simple as plain fog or as complex as you wish, with time being the only limit.

Shading Editors

"4D Blue" contains an intuitive, feature-full, and flexible set of tools that allow you to control the shaders, textures, materials, and the material assignment to the surfaces.

  • "Shader Editor" allows the users to create new shaders or load existing ones, setup their inputs and complete them.
  • "Texture Editor" allows the user to create new textures or adjust existing ones. A variety of texture types is available.
  • "Material Editor" allows the user to setup the material shaders and their parameters as well as quickly preview the material.
  • "Material Selector" allows the user to assign the materials to surfaces or groups of surfaces.

Shader Editor
Texture Editor
Material Editor
Material Selector


"4D Blue" renderer supports the following features:

  • Anti-Alliasing
  • Depth of field (focus blur)
  • Vector based motion blur
  • Participating media
  • Soft shadows and projector lights
  • Photon maps based Global Illumination

POV-Ray Exporter

POV-Ray Example

"4D Blue" has a build-in POV-Ray exporter. The exporter will automatically tessellate NURBS surfaces, generate textures (especially handy for non-bitmap textures likes waves) and allows the creation of animation "pov" file sequences. This export feature is still considered experimental, and I am waiting for the feedback to see how often it would be used if it is completely finished and working well. Let me know if you want to have it completed, and in the meantime, see what you can do with what is available so far. But be warned, it's quite buggy!

Copyright © 2004-2013 Aleksander Stompel Last Updated: Dec 15, 2013