# Reference Section 8.2Documentation

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
 This document is protected, so submissions, corrections and discussions should be held on this documents talk page.

## Contents

### Objects

#### Infinite Solid Objects

Describe a solid, possibly infinite, shape:
INFINITE_SOLID_OBJECT:
`PLANE | POLY | CUBIC | QUARTIC | QUADRIC`

The plane object:
PLANE:
`plane { V_NORMAL, F_DISTANCE [OBJECT_MODIFIERS] }`

The poly object:
POLY:
`poly { ORDER, < POLY_COEFFICIENTS > [POLY_MODIFIERS] }`
ORDER:
An integer value between 2 and 35 inclusive.
POLY_COEFFICIENTS:
A quantity n of FLOATs separated by commas, where n is `((ORDER+1)*(ORDER+2)*(ORDER+3))/6.`
POLY_MODIFIERS:
`[sturm [BOOL]] & [OBJECT_MODIFIERS]`

The polynomial object:
POLYNOMIAL:
`polynomial { ORDER, [POLYNOMIAL_COEFFICIENTS]... [POLY_MODIFIERS] }`
ORDER:
An integer value between 2 and 35 inclusive. The sum of X_POWER, Y_POWER and Z_POWER of any xyz(): coefficient must never be greater than this integer.
POLYNOMIAL_COEFFICIENTS:
```xyz( X_POWER , Y_POWER , Z_POWER):VALUE [,]```
X_POWER
The power of x for that coefficient. It's a positive or null integer.
Y_POWER
The power of y for that coefficient. It's a positive or null integer.
Z_POWER
The power of z for that coefficient. It's a positive or null integer.
VALUE
The value as a FLOAT of the coefficient of the polynomial equation for that powers of x,y and z. If a coefficient is not specified, its value defaults to 0.
POLY_MODIFIERS:
`[sturm [BOOL]] & [OBJECT_MODIFIERS]`

The cubic object:
CUBIC:
`cubic { < CUBIC_COEFFICIENTS > [POLY_MODIFIERS] }`
CUBIC_COEFFICIENTS:
20 FLOATs separated by commas.

The quartic object:
QUARTIC:
`quartic { < QUARTIC_COEFFICIENTS > [POLY_MODIFIERS] }`
QUARTIC_COEFFICIENTS:
35 FLOATs separated by commas.

```quadric { < FLOAT, FLOAT, FLOAT >, < FLOAT, FLOAT, FLOAT >, < FLOAT, FLOAT, FLOAT >, FLOAT [OBJECT_MODIFIERS] }```

Quick Reference Contents

#### CSG

Describe one complex shape from multiple shapes:
CSG_OBJECT:
`UNION | INTERSECTION | DIFFERENCE | MERGE`

Combine multiple shapes into one:
UNION:
`union { UNION_OBJECT UNION_OBJECT... [UNION_MODIFIERS] }`
UNION_OBJECT:
`OBJECT | LIGHT`
UNION_MODIFIERS:
`[split_union BOOL] & [OBJECT_MODIFIERS]`

Create a new shape from the overlapping portions of multiple shapes:
INTERSECTION:
`intersection { SOLID_OBJECT SOLID_OBJECT... [INTERSECTION_MODIFIERS] }`
SOLID_OBJECT:
`FINITE_SOLID_OBJECT | INFINITE_SOLID_OBJECT | ISOSURFACE | CSG_OBJECT`
INTERSECTION_MODIFIERS:
`[cutaway_textures] & [OBJECT_MODIFIERS]`

Subtract one or more shapes from another:
DIFFERENCE:
`difference { SOLID_OBJECT SOLID_OBJECT... [DIFFERENCE_MODIFIERS] }`
DIFFERENCE_MODIFIERS:
`[cutaway_textures] & [OBJECT_MODIFIERS]`

Combine multiple shapes into one, removing internal surfaces:
MERGE:
`merge { SOLID_OBJECT SOLID_OBJECT... [OBJECT_MODIFIERS] }`

Quick Reference Contents

### Object Modifiers

Manipulate the appearance of an object
OBJECT_MODIFIERS:
```[OBJECT_PHOTONS] & [CLIPPED_BY] & [BOUNDED_BY] & [MATERIAL] & [INTERIOR] & [INTERIOR_TEXTURE] &[TEXTURE] & [PIGMENT] & [NORMAL] & [FINISH] & [TRANSFORMATION...] & [no_shadow] & [no_image[BOOL]] & [no_radiosity[BOOL]] & [no_reflection[BOOL]] & [inverse] & [double_illuminate[BOOL]] & [hollow [BOOL]] & [radiosity { importance IMPORTANCE }]```

Specify how an object should interact with photons:
OBJECT_PHOTONS:
`photons { OBJECT_PHOTON_ITEMS }`
OBJECT_PHOTON_ITEMS:
```[target [F_SPACING_MULT]] & [refraction BOOL] & [reflection BOOL] & [collect BOOL] & [pass_through [BOOL]]```

Slice a portion of a shape:
CLIPPED_BY:
```clipped_by { UNTEXTURED_SOLID_OBJECT... } | clipped_by { bounded_by }```
UNTEXTURED_SOLID_OBJECT:
`FINITE_SOLID_OBJECT | INFINITE_SOLID_OBJECT`
Use neither with a texture applied.

Specify a bounding shape for an object:
BOUNDED_BY:
```bounded_by { UNTEXTURED_SOLID_OBJECT... } | bounded_by { clipped_by }```

Quick Reference Contents

#### UV Mapping

Map a texture to an object using surface coordinates:
UV_MAPPING:
```uv_mapping PIGMENT | pigment { uv_mapping PIGMENT_BODY } | uv_mapping NORMAL | normal { uv_mapping NORMAL_BODY } | uv_mapping TEXTURE | texture { uv_mapping TEXTURE_BODY }```

Quick Reference Contents

#### Material

Group together surface textures and interior properties:
MATERIAL:
`material { [MATERIAL_IDENTIFIER] [MATERIAL_ITEM ...] }`
MATERIAL_ITEMS:
`TEXTURE | INTERIOR_TEXTURE | INTERIOR | TRANSFORMATION`

Quick Reference Contents

#### Interior

Describe the interior of an object:
INTERIOR:
`interior { [INTERIOR_IDENTIFIER] [INTERIOR_ITEMS] }`
INTERIOR_ITEMS:
```[ior FLOAT] & [dispersion FLOAT] & [dispersion_samples INT] & [caustics FLOAT] & [fade_distance FLOAT] & [fade_power FLOAT] & [fade_color COLOR] & [MEDIA...]```

Quick Reference Contents

#### Interior Texture

Describe the interior surface of an object:
INTERIOR_TEXTURE:
`interior_texture { TEXTURE_BODY }`

Quick Reference Contents

### Texture

Describe the surface of an object
TEXTURE:
`PLAIN_TEXTURE | LAYERED_TEXTURE | PATTERNED_TEXTURE`

Quick Reference Contents

#### Plain Texture

Describe a texture consisting of a single pigment, normal and finish:
PLAIN_TEXTURE:
`texture { PLAIN_TEXTURE_BODY }`
PLAIN_TEXTURE_BODY:
`[PLAIN_TEXTURE_IDENT] [PNF_IDENTIFIERS] [PNF_ITEMS]`
PNF_IDENTIFIERS:
`[PIGMENT_IDENTIFIER] & [NORMAL_IDENTIFIER] & [FINISH_IDENTIFIER]`
PNF_ITEMS:
`[PIGMENT] & [NORMAL] & [FINISH] & [TRANSFORMATION...]`

Quick Reference Contents

#### Layered Texture

Describe a texture consisting of two or more semi-transparent layers:
LAYERED_TEXTURE:
`texture { LAYERED_TEXTURE_IDENT } | PLAIN_TEXTURE PLAIN_TEXTURE...`

Quick Reference Contents

#### Patterned Texture

Describe a texture using a pattern or blending function:
PATTERNED_TEXTURE:
`texture { PATTERNED_TEXTURE_BODY }`
PATTERNED_TEXTURE_BODY:
```PATTERNED_TEXTURE_IDENT [TRANSFORMATION...] | TEXTURE_PATTERN [PATTERN_MODIFIERS] | MATERIAL_MAP [TRANSFORMATION...]```
TEXTURE_PATTERN:
`TEXTURE_LIST_PATTERN | MAP_PATTERN TEXTURE_MAP`
TEXTURE_LIST_PATTERN:
```brick TEXTURE, TEXTURE [BRICK_ITEMS] | checker TEXTURE, TEXTURE | hexagon TEXTURE, TEXTURE, TEXTURE | object { LIST_OBJECT TEXTURE, TEXTURE } square TEXTURE, TEXTURE, TEXTURE, TEXTURE | tiling [PATTERN_NUMBER] [TEXTURE_MAP] | triangular TEXTURE, TEXTURE, TEXTURE, TEXTURE, TEXTURE, TEXTURE```

BRICK_ITEMS:

`[brick_size VECTOR] & [mortar FLOAT]`

LIST_OBJECT:

`UNTEXTURED_SOLID_OBJECT | UNTEXTURED_SOLID_OBJECT_IDENT`
TEXTURE_MAP:
`texture_map { TEXTURE_MAP_BODY } [BLEND_MAP_MODIFIERS]`
TEXTURE_MAP_BODY:
`TEXTURE_MAP_IDENTIFIER | TEXTURE_MAP_ENTRY...`
There may be from 2 to 256 map entries.
TEXTURE_MAP_ENTRY:
`[ FLOAT TEXTURE_BODY ]`
The brackets here are part of the map entry.
TEXTURE_BODY:
`PLAIN_TEXTURE_BODY | LAYERED_TEXTURE_IDENT | PATTERNED_TEXTURE_BODY`
MATERIAL_MAP:
`material_map { BITMAP_IMAGE [BITMAP_MODIFIERS] TEXTURE... }`

Quick Reference Contents

#### Pigment

Describe a color or pattern of colors for a texture:
PIGMENT:
`pigment { PIGMENT_BODY }`
PIGMENT_BODY:
`[PIGMENT_IDENTIFIER] [PIGMENT_TYPE] [PIGMENT_MODIFIERS] [PAVEMENT_MODIFIERS]`
PIGMENT_TYPE:
```COLOR | COLOR_LIST_PATTERN | PIGMENT_LIST_PATTERN | IMAGE_MAP | MAP_PATTERN [COLOR_MAP] | MAP_PATTERN PIGMENT_MAP```
COLOR_LIST_PATTERN:
```brick [COLOR [, COLOR]] [BRICK_ITEMS] | checker [COLOR [, COLOR]] | hexagon [COLOR [, COLOR [, COLOR]]] | object { LIST_OBJECT [COLOR [, COLOR]] } | square [COLOR_1 [, COLOR_2 [, COLOR_3 [, COLOR_4]]]] | tiling [PATTERN_NUMBER] [COLOR_MAP] | triangular [COLOR_1 [, COLOR_2 [, COLOR_3 [, COLOR_4 [, COLOR_5 [, COLOR_6]]]]]]```
PIGMENT_LIST_PATTERN:
```brick PIGMENT, PIGMENT [BRICK_ITEMS] | checker PIGMENT, PIGMENT | hexagon PIGMENT, PIGMENT, PIGMENT | object { LIST_OBJECT PIGMENT, PIGMENT } | square [COLOR_1 [, COLOR_2 [, COLOR_3 [, COLOR_4]]]] | tiling [PATTERN_NUMBER] [PIGMENT_MAP] | triangular [COLOR_1 [, COLOR_2 [, COLOR_3 [, COLOR_4 [, COLOR_5 [, COLOR_6]]]]]]```
IMAGE_MAP:
`image_map {BITMAP_IMAGE [IMAGE_MAP_MODIFIER...] [BITMAP_MODIFIERS] }`
IMAGE_MAP_MODIFIER:
```filter I_PALETTE, F_AMOUNT | filter all F_AMOUNT | transmit I_PALETTE, F_AMOUNT | transmit all F_AMOUNT```
COLOR_MAP:
```color_map { COLOR_MAP_BODY } [BLEND_MAP_MODIFIERS] | colour_map { COLOR_MAP_BODY } [BLEND_MAP_MODIFIERS]```
COLOR_MAP_BODY:
`COLOR_MAP_IDENTIFIER | COLOR_MAP_ENTRY...`
There may be from 2 to 256 map entries.
COLOR_MAP_ENTRY:
`[ FLOAT COLOR ]`
The brackets here are part of the map entry.
PATTERN_NUMBER:
`[ INT ]`
1 of 24 different patterns.
PIGMENT_MAP:
`pigment_map { PIGMENT_MAP_BODY } [BLEND_MAP_MODIFIERS]`
PIGMENT_MAP_BODY:
`PIGMENT_MAP_IDENTIFIER | PIGMENT_MAP_ENTRY...`
There may be from 2 to 256 map entries.
PIGMENT_MAP_ENTRY:
`[ FLOAT PIGMENT_BODY ]`
The brackets here are part of the map entry.
PAVEMENT_MODIFIERS:
```pavement number_of_sides SIDES_VALUE | number_of_tiles TILES_VALUE | pattern PATTERN_VALUE | exterior EXTERIOR_VALUE | interior INTERIOR_VALUE | form FORM_VALUE | PATTERN_MODIFIERS```
PIGMENT_MODIFIERS:
`[QUICK_COLOR] & [PATTERN_MODIFIERS]`
QUICK_COLOR:
`quick_color COLOR | quick_colour COLOR`

Quick Reference Contents

 This document is protected, so submissions, corrections and discussions should be held on this documents talk page.