Difference between revisions of "Reference:Object"

From POV-Wiki
Jump to navigation Jump to search
m (overzealous cut)
m (Precision about 40 char limited version number)
 
(2 intermediate revisions by 2 users not shown)
Line 4: Line 4:
 
<p>Objects are the building blocks of your scene. There are a lot of different types of objects supported by POV-Ray. In the following sections, we describe [[Reference:Finite Solid Primitives|Finite Solid Primitives]], [[Reference:Finite Patch Primitives|Finite Patch Primitives]] and [[Reference:Infinite Solid Primitives|Infinite Solid Primitives]]. These primitive shapes may be combined into complex shapes using [[Reference:Constructive Solid Geometry|Constructive Solid Geometry]] (also known as CSG).</p>
 
<p>Objects are the building blocks of your scene. There are a lot of different types of objects supported by POV-Ray. In the following sections, we describe [[Reference:Finite Solid Primitives|Finite Solid Primitives]], [[Reference:Finite Patch Primitives|Finite Patch Primitives]] and [[Reference:Infinite Solid Primitives|Infinite Solid Primitives]]. These primitive shapes may be combined into complex shapes using [[Reference:Constructive Solid Geometry|Constructive Solid Geometry]] (also known as CSG).</p>
 
<p>
 
<p>
The basic syntax of an object is a keyword describing its type, some floats,
+
The basic syntax of an object is a keyword describing its type, some floats, vectors or other parameters which further define its location and/or shape and some optional object modifiers such as texture, interior_texture, pigment, normal, finish, interior, bounding, clipping or transformations. Specifically the syntax
vectors or other parameters which further define its location and/or shape
 
and some optional object modifiers such as texture, interior_texture, pigment, normal, finish,
 
interior, bounding, clipping or transformations. Specifically the syntax
 
 
is:</p>
 
is:</p>
 
<pre>
 
<pre>
Line 27: Line 24:
 
</pre>
 
</pre>
  
<p>Object identifiers may be declared to make scene files more readable and
+
<p>Object identifiers may be declared to make scene files more readable and to parameterize scenes so that changing a single declaration changes many values. An identifier is declared as follows.</p>
to parameterize scenes so that changing a single declaration changes many
 
values. An identifier is declared as follows.</p>
 
 
<pre>
 
<pre>
 
OBJECT_DECLARATION:
 
OBJECT_DECLARATION:
Line 37: Line 32:
  
 
<p>Where <em>IDENTIFIER</em> is the name of the identifier and <em>OBJECT</em> is any valid object. To invoke an object identifier, you wrap it in an <code>object{...}</code> statement. You use the <code>object</code> statement regardless of what type of object it originally was. Although early versions of POV-Ray required this <code> object</code> wrapper all of the time, now it is only used with <em>OBJECT_IDENTIFIERS</em>.</p>
 
<p>Where <em>IDENTIFIER</em> is the name of the identifier and <em>OBJECT</em> is any valid object. To invoke an object identifier, you wrap it in an <code>object{...}</code> statement. You use the <code>object</code> statement regardless of what type of object it originally was. Although early versions of POV-Ray required this <code> object</code> wrapper all of the time, now it is only used with <em>OBJECT_IDENTIFIERS</em>.</p>
<p class="Note"><strong>Note:</strong> In previous versions identifier names <em>were</em> limited to 40 characters. There has been a {{Change}} removing that restriction.</p>
+
<p class="Note"><strong>Note:</strong> In versions prior to 3.6.2, identifier names <em>were</em> limited to 40 characters. There has been a {{Change}} removing that restriction.</p>
 
<p>
 
<p>
Object modifiers are covered in detail later. However here is a brief
+
Object modifiers are covered in detail later. However here is a brief overview.</p>
overview.</p>
 
 
<p>
 
<p>
The texture describes the surface properties of the object. Complete details
+
The texture describes the surface properties of the object. Complete details are in [[Reference:Texture|textures]]. Textures are combinations of pigments, normals, and finishes. In the section [[Reference:Pigment|:pigment|pigment]] you will learn how to specify the color or pattern of colors inherent in the material. In [[Reference:Normal|normal]], we describe a method of simulating various patterns of bumps, dents, ripples
are in [[Reference:Texture|textures]]. Textures are combinations of pigments, normals,
+
or waves by modifying the surface normal vector. The section on [[Reference:Finish|finish]] describes the reflective properties of the surface. The [[Reference:Interior|Interior]] is a feature introduced in POV-Ray v3.1. It contains information about the interior of the object which was formerly contained in the finish and halo parts of a texture. Interior items are no longer part of the texture. Instead, they attach directly to the objects. The halo feature has been discontinued and replaced with a new feature called [[Reference:Media|Media]] which replaces both halo and atmosphere.</p>
and finishes. In the section [[Reference:Pigment|:pigment|pigment]] you will learn how to
 
specify the color or pattern of colors inherent in the material. In [[Reference:Normal|normal]], we describe a method of simulating various patterns of bumps, dents, ripples
 
or waves by modifying the surface normal vector. The section on [[Reference:Finish|finish]] describes the reflective properties of the surface. The [[Reference:Interior|Interior]] is a feature introduced in POV-Ray 3.1. It contains information
 
about the interior of the object which was formerly contained in the finish
 
and halo parts of a texture. Interior items are no longer part of the
 
texture. Instead, they attach directly to the objects. The halo feature has
 
been discontinued and replaced with a new feature called [[Reference:Media|Media]] which replaces both halo and atmosphere.</p>
 
 
<p>
 
<p>
Bounding shapes are finite, invisible shapes which wrap around complex, slow
+
Bounding shapes are finite, invisible shapes which wrap around complex, slow rendering shapes in order to speed up rendering time. Clipping shapes are used to cut away parts of shapes to expose a hollow interior. Transformations tell the ray-tracer how to move, size or rotate the shape and/or the texture in the scene.</p>
rendering shapes in order to speed up rendering time. Clipping shapes are
 
used to cut away parts of shapes to expose a hollow interior. Transformations
 
tell the ray-tracer how to move, size or rotate the shape and/or the texture
 
in the scene.</p>
 

Latest revision as of 20:48, 2 July 2021

Objects are the building blocks of your scene. There are a lot of different types of objects supported by POV-Ray. In the following sections, we describe Finite Solid Primitives, Finite Patch Primitives and Infinite Solid Primitives. These primitive shapes may be combined into complex shapes using Constructive Solid Geometry (also known as CSG).

The basic syntax of an object is a keyword describing its type, some floats, vectors or other parameters which further define its location and/or shape and some optional object modifiers such as texture, interior_texture, pigment, normal, finish, interior, bounding, clipping or transformations. Specifically the syntax is:

OBJECT:
  FINITE_SOLID_OBJECT | FINITE_PATCH_OBJECT | 
  INFINITE_SOLID_OBJECT | CSG_OBJECT | LIGHT_SOURCE |
  object { OBJECT_IDENTIFIER [OBJECT_MODIFIERS...] }
FINITE_SOLID_OBJECT:
  BLOB | BOX | CONE | CYLINDER | HEIGHT_FIELD | ISOSURFACE | JULIA_FRACTAL |
  LATHE | LEMON | OVUS | PARAMETRIC | PRISM | SPHERE | SPHERE_SWEEP | SUPERELLIPSOID |
  SOR | TEXT | TORUS
FINITE_PATCH_OBJECT:
  BICUBIC_PATCH | DISC | MESH | MESH2 | POLYGON | TRIANGLE |
  SMOOTH_TRIANGLE
  INFINITE_SOLID_OBJECT:
  PLANE | POLY | CUBIC | QUARTIC | QUADRIC 
CSG_OBJECT:
  UNION | INTERSECTION | DIFFERENCE | MERGE

Object identifiers may be declared to make scene files more readable and to parameterize scenes so that changing a single declaration changes many values. An identifier is declared as follows.

OBJECT_DECLARATION:
  #declare IDENTIFIER = OBJECT |
  #local IDENTIFIER = OBJECT

Where IDENTIFIER is the name of the identifier and OBJECT is any valid object. To invoke an object identifier, you wrap it in an object{...} statement. You use the object statement regardless of what type of object it originally was. Although early versions of POV-Ray required this object wrapper all of the time, now it is only used with OBJECT_IDENTIFIERS.

Note: In versions prior to 3.6.2, identifier names were limited to 40 characters. There has been a Change removing that restriction.

Object modifiers are covered in detail later. However here is a brief overview.

The texture describes the surface properties of the object. Complete details are in textures. Textures are combinations of pigments, normals, and finishes. In the section pigment you will learn how to specify the color or pattern of colors inherent in the material. In normal, we describe a method of simulating various patterns of bumps, dents, ripples or waves by modifying the surface normal vector. The section on finish describes the reflective properties of the surface. The Interior is a feature introduced in POV-Ray v3.1. It contains information about the interior of the object which was formerly contained in the finish and halo parts of a texture. Interior items are no longer part of the texture. Instead, they attach directly to the objects. The halo feature has been discontinued and replaced with a new feature called Media which replaces both halo and atmosphere.

Bounding shapes are finite, invisible shapes which wrap around complex, slow rendering shapes in order to speed up rendering time. Clipping shapes are used to cut away parts of shapes to expose a hollow interior. Transformations tell the ray-tracer how to move, size or rotate the shape and/or the texture in the scene.