Color Values

All the places that colors turn up in MAXScript (such as wireColor, light color, etc.) are represented by instances of the Color class. You can also use Point3 values as color specifiers.











predefined MAXScript globals


color <r> <g> <b> [ <a> ]

r,g,b and optional alpha are float values in the range 0 to 255

<point3> as color

interprets x as r, y as g, z as b


<color>.red or .r : Float

<color>.green or .g : Float

<color>.blue or .b : Float

<color>.alpha or .a : Float

color component properties

<color>.hue or .h : Float

<color>.saturation or .s : Float

<color>.value or .v : Float

derived properties


<color> == <color>

<color> != <color>


<color> + <color_or_number>

<color> - <color_or_number>

<color> * <color_or_number>

<color> / <color_or_number>

Channel-by-channel math operations. Numbers operate on r,g,b,a channels equally.

- <color>

unary minus


copy <color>

Creates a new copy of the color value.

For example:

newClr = copy oldClr

The new value contains a copy of the input color value, and is independent of the input color value.

random <from_color> <to_color>

Returns a random color between the given colors. The alpha component of the result will always be 255.

composite <color1> <color2>

Composites color1 over color2 through color1's alpha. This function is equivalent to:

color1 + color2*((255. - color1.alpha)/255.)

3D Noise Functions

noise3 <color>

noise4 <color> <phase_float>

turbulence <color> <frequency_float>

fractalNoise <color> <H_float> <lacunarity_float> <octaves_float>

See Point3 Values for a description of the noise functions.


The component values of a Color value (r, g, b, and a) are normally in the range 0.0 to 255.0. However values outside this range are permissible. When color values outside the normal range are used in 3ds Max, 3ds Max clamps the values to the range of 0.0 to 255.0.



The following script shows the use of various literals, constructors, properties, operators, and methods of the Color class.


-- color test bed

magenta=color 255 255 0 255 -- create colors using constructors

aqua = [0, 255, 255] as color

aqua.v /= 2. -- reduce "strength" of aqua color


aqua.alpha=128 -- set aqua to 50% opacity


lightGray=white/4 -- create light gray color by dividing

-- each component of white by 4

composite aqua lightGray -- composite light gray over aqua

random black white -- generate a random color


(color 255 255 0) -- result of line 2. Note that if

-- alpha=255 it is not displayed

(color 0 255 255) -- result of line 3

127.5 -- result of line 4 - value property of aqua

(color 0 127.5 127.5) -- result of line 5 - color of aqua

128 -- result of line 6 - alpha property of aqua

(color 0 127.5 127.5,128) -- result of line 7 - color of aqua

(color 63.75 63.75 63.75) -- result of line 8 - each component divided by 4

(color 31.75 159.25 159.25 159.75) -- result of line 10

(color 170.944 109.543 74.1957) -- result of line 11