Applying Texture Projections in ICE
 
 
 

Using ICE, you can create an attribute that can be used as a texture projection. In fact, any 3D vector per point or per polynode can be used as a texture projection. (In Softimage, texture coordinates are always stored as UVW values even if only U and V are used much of the time.)

All you need to do is calculate the UVW values you want to use per point or per polynode and set a custom attribute. You can then specify that attribute in a texture shader or in the render tree.

Note that if you are using a custom ICE attribute as a texture projection, you cannot edit its values in the texture editor. To edit values manually, you must first apply a non-ICE texture projection and set its values with the ICE attribute. After that, any modifications you make in the texture editor are applied on top of the values set by ICE.

There are some factory compounds that set an attribute that can be used as a texture projection:

Camera projections require that the UVW values be treated as homogeneous coordinates. Homogeneous coordinates store values as (U, V, q) where q is the distance to the camera. To tell the renderer that a 3D vector attribute should be treated as homogeneous coordinates, you must define a Boolean attribute on the object using the same name as the 3D vector with the suffix "IsHomogeneous" appended and set it to 1 (True).

You can control other properties of the texture projection by setting per-object attributes based on the name of the attribute being used as a texture projection with a special suffix appended.

Suffix

Description

_u_wrap

Boolean to control texture wrapping in U.

_v_wrap

Boolean to control texture wrapping in V.

_w_wrap

Boolean to control texture wrapping in W.

_transform

4x4 Matrix to control texture transform.

_ishomogeneous

Boolean to control whether coordinates are treated as homogeneous.

_smoothwhensubdi

Boolean to control whether coordinates get smoothed based on the subdivision surface algorithm.

NoteThe effect of these settings are visible only when rendering. You cannot see the effects directly in the viewports without drawing a render region.