Image Loaders

Image Loader Loads an image from the specified file.
Texture Loader Loads a DDS textures or an image from the specified file directly into a texture. Supports asynchronous operation.

Image Loader

Creating and using textures is one of the key elements to achieve a great looking scene. There are usually three to four nodes involved into making a geometry use a bitmap file during rendering. The example below shows the nodes that are created (in the Content Editor) when left-dragging the Texture Toolbox entry into the Hierarchy Editor and choosing Image Loader from the selection presented.


Before discussing the individual nodes, there is one important concept that needs to be introduced:

Ventuz distinguishes between Images and Textures. An image is stored on the CPU and is not necessarily related to the rendering process whereas a Texture is usually stored in GPU memory and is optimized for being rendered. Images can be used as input for further transformation or filtering.


The Image Loader itself takes a file name and provides an output of type Image. This image is transformed into a Texture by the Image to Texture node above it. The top-most node is the Texture hierarchy node which takes a Texture as an input and is responsible for activating it during rendering. Finally, to the right of the Texture node is a 2D Mapping node which can be used to manipulate various aspects of the mapping like how much the texture should be scaled before applying it to the object.

An overview of all supported image file formats can be found on the Supported Formats page.

Texture Loader

The Texture Loader is able to load both, images and DDS (DirectDraw Surface) textures.

The main advantage of using DDS files is that they are very similar to what the graphics card uses internally to store textures and therefore loading performance is better than with the image loader even up to the point where it makes sense to convert used images into DDS outside of Ventuz to improve loading times.

Compared to the standard Image Loader, the Texture Loader has two additional major features. For one, it directly provides a Texture without requiring an Image to Texture node. This saves memory as no image representation has to be stored in memory.
The other key aspect is that the Texture Loader supports asynchronous operation so new images can be loaded while for example background animations keep running. With the standard Image Loader, the scene freezes until the image is completely loaded.

In addition this node can resize images/textures on load and create Mipmaps. Mipmaps can only be generated for square images and provided that the graphics card support Mipmap generation. The GenMipMaps property enables this feature if the former requirements are fulfilled.

The ResizeWidth and ResizeHeight can be used to influence the image resize.

If the Resize properties are set to Auto a texture is only resized to the nearest power of 2 size if this is required by the graphics card.


Color Picker

One or more ColorPicker items can be added to the TextureLoader via the Custom Model. Adding a ColorPicker item adds a new input property to specifiy x and y position of the color to be picked on the texture.A new output property provides the color of the selected pixel.

Note that the texture in the picker is scaled down to 128x128 pixels.