Texture Editor

The Texture Editor is able to load and preview the various types of bitmap files Maxwell is able to render, including Maxwell MXI files, and other HDR images.

Material Editor Texture Editor Interface
General Info

Texture parameters are fairly self-explanatory, the plugin makes clear any Textures with paths that aren't valid. In addition to standard image-types, both inverted Textures, and MXI/HDR Textures are able to be shown in the viewport. The parameters located in the editor affect how the Texture is to be tiled and offset on a global basis, that is, changes made using the editor will apply to all objects which use the Material that is currently being edited. Due to the modeless nature of the editor, changes can be made with real-time visual feedback ocurring in the viewport.

Copying Texture Paths and Parameters

When using drag-and-drop to copy Texture paths from one Texture to another, holding down the CTRL key will cause the source Texture's parameters to be copied to the destination as well. While adjusting Texture parameters, two modifier-key sequences are available. If , while adjusting a parameter:

Texture Parameters Toolbars

Real Scale

( see also, Object Properties : Real Scale Texture Control )

Real Scale texture mode provides a way of working with textures in an object-size-independent way. By default, textures are projected onto objects by Rhino using a 'surface' mapping. This means that the rectangular texture is stretched out across the surface. Optionally, you may use Rhino's texture-mapping tools to define other explicit planar, cubic, spherical, or cylindrical mappings. Rather than the texture's pixels being stretched to fit the object's surface, they will be 'projected' onto the object using these primitives. When an object which has no explicit mapping is scaled, the texture's pixels are just stretched out differently, depending on how the object was scaled. If it uses an explicit mapping, Rhino will attempt to scale the mapping to match. In both cases, the size of the mapping is dependent on the size of the object. In many cases, this is the desired result - the texture bears some relation to the object it is being assigned to, and when the object changes, the texture should be changed to match. But it is not always desired.

Say, for example, that you are building a model of a piece of wood furniture. You want to assign a woodgrain texture to the various parts of the model. In this case, it is certain that you do not want the size of the texture to be dependent on the size of each object it is assigned to - the size of the woodgrain should remain constant. This is the purpose of the Real Scale function; to maintain texture-size independent of object-size. In Maxwell, this means that rather than defining a texture's size by defining how many times it 'tiles' across the mapped area, this texture may have its' Real Scale feature enabled. After doing so, the meaning of the Tile X/Y size parameters take on a different meaning: if you specify a Tile X value of 0.25, it does not mean to stretch out the texture four times across the mapping, it means that each tile should be an absolute 0.25 meters in the X direction. To use a texture in Real Scale mode, you should not define any explicit Rhino texture-mappings for it - the plugin will create a cubic mapping for each object to which this texture is assigned. After creating the object's mapping, the plugin will size it so that each texture tile is [Tile X/Y times 1 meter] in size, regardless of the current document's unit scale.

This brings a new question: if you are not supposed to define an explicit projector for Real Scale textures, how can you define the orientation of the texture on the object? Normally, this would be done by selecting the Rhino texture-mapping, clicking 'Show Widget', and then manually dragging it around the viewport. Since this is not possible, and the orientation of the mapping is determined only by the plugin, you are provided with three rotation parameters in the Maxwell Object Properties page - these will be shown when the object is selected in the viewport.

So, using Real Scale is actually the simplest method of mapping with the plugin:


This is all that is required; after doing this, the object may be moved/scaled/rotated/modified however you wish, and the plugin will keep the mapping oriented correctly and sized based on the one-meter scale. If a Real Scale-enabled texture uses a Channel other than 0 then the texture will operate just as any other, except that its Tile X/Y parameters will size things inverse to normal - decreasing Tile will decrease the texture-size, and vice-versa. The plugin will cause whichever mapping index is used by the current texture to be shown in the viewport, if one exists - this happens when switching the 'current' texture (i.e. clicking on a texture-button in the Material Editor), or when changing the Channel of the current texture.

Note that because the plugin is a client of the viewport, and not its' owner, there are certain object-modifications you may make which will cause the viewport to show an inaccurate representation of the mapping (i.e. boolean, split, etc. - things which cause UVs to be re-calculated), and it may be necessary to use the 'Refresh viewport Materials' command to restore the Real Scale state of the object in the viewport.