Difference between revisions of "Reference:Object Modifiers"

From POV-Wiki
Jump to navigation Jump to search
m (continued corrections and addtions)
m (simplified)
Line 28: Line 28:
 
</pre>
 
</pre>
  
<p>Some conditions can produce unexpected results. When applied to <em>CSG</em> components these modifiers work as expected: <em>All Transforms</em>, <code>[[Reference:Inverse Object Modifier|inverse]]</code>, <code>[[Reference:Bounded By Object Modifier|bounded_by]]</code>, <code>[[Reference:Clipped By Object Modifier|clipped_by]]</code>, <code>[[Reference:Cutaway Textures|cutaway_textures]]</code>, <em>Hierarchy</em>, and <code>[[Reference:Sturm Object Modifier|sturm]]</code>. However by design some modifiers are not passed from nested objects to a <em>CSG</em> resultant involving those objects. This is true when using the following keywords and / or keyword blocks: <code>[[Reference:No Image Object Modifier|no_image]]</code>, <code>[[Reference:No Reflection Object Modifier|no_reflection]]</code>, <code>[[Reference:No Shadow Object Modifier|no_shadow]]</code>, <code>[[Reference:No Radiosity Object Modifier|no_radiosity]]</code>, <code>[[Reference:Double Illuminate Object Modifier|double_illuminate]]</code>, <code>[[Reference:Hollow Object Modifier|hollow]]</code>, <code>[[Reference:Photons|photons]]</code> and <code>[[Reference:Radiosity|radiosity]]</code>. Setting <code>[[Reference:Union#Split_Union|split_union off]]</code> provides the exception with unions and their accepting unions. Interiors get attached to the objects where interiors are defined. The <code>interior</code> and <code>subsurface</code> object and finish modifier block results, respectively, vary where definitions are part of components making up any given <em>CSG</em>. In the case of subsurface, if the distance between the two surfaces is similar or smaller than the translucency value, we start to see through the object. In a <em>CSG</em>, if the back surface doesn't have a similar translucency, you can get unexpected results.</p>
+
<p class="Note"><strong>Note:</strong> Some conditions can produce unexpected results. When applied to <em>CSG</em> components most modifiers work as expected, however by design some modifiers are not passed from nested objects to a <em>CSG</em> resultant involving those objects.</p>
  
<p>See also: <em>All Transforms</em> <code>[[Reference:Transformations#translate|translate]]</code>, <code>[[Reference:Transformations#rotate|rotate]]</code> and <code>[[Reference:Transformations#scale|scale]]</code></p>
+
<p>This is true when using the following keywords and / or keyword blocks: <code>[[Reference:No Image Object Modifier|no_image]]</code>, <code>[[Reference:No Reflection Object Modifier|no_reflection]]</code>, <code>[[Reference:No Shadow Object Modifier|no_shadow]]</code>, <code>[[Reference:No Radiosity Object Modifier|no_radiosity]]</code>, <code>[[Reference:Double Illuminate Object Modifier|double_illuminate]]</code>, <code>[[Reference:Hollow Object Modifier|hollow]]</code>, <code>[[Reference:Photons|photons]]</code> and <code>[[Reference:Radiosity|radiosity]]</code>. <em>CSG</em> unions pass all modifiers listed above unless <code>split_union off</code> has been set, in which case the later list is ignored as with <code>difference</code>, <code>intersection</code> and <code>merge</code>.</p>
<p>See also: <em>Hierarchy</em> <code>[[Reference:Blob|blob]]</code> and <code>[[Reference:Height Field|height_field]]</code></p>
+
 
 +
<p>While not technically object modifiers, object interior and finish subsurface blocks see similar <em>CSG</em> propagation complications.  Interiors get attached to the objects where interiors are defined. The <code>interior</code> and <code>subsurface</code> object and finish modifier block results, respectively, vary where definitions are part of components making up any given <em>CSG</em>. Furthermore, in the case of subsurface, if the distance between the two surfaces is similar or smaller than the translucency value, we start to see through the object. In a <em>CSG</em>, if the back surface doesn't have a similar translucency, you may also see unexpected results.</p>
 +
 
 +
<p>See also: <em>[[Reference:Transformations|Transformations]]</em></p>
 +
<p>See also: <em>Hierarchy</em> in <code>[[Reference:Blob|blob]]</code> or <code>[[Reference:Height Field|height_field]]</code></p>
 
<p>See also: <code>[[Reference:Material|material]]</code>, <code>[[Reference:Texture|texture]]</code>, <code>[[Reference:Pigment|pigment]]</code>, <code>[[Reference:Normal|normal]]</code> and <code>[[Reference:Finish|finish]]</code></p>
 
<p>See also: <code>[[Reference:Material|material]]</code>, <code>[[Reference:Texture|texture]]</code>, <code>[[Reference:Pigment|pigment]]</code>, <code>[[Reference:Normal|normal]]</code> and <code>[[Reference:Finish|finish]]</code></p>
<p>See also: <code>[[Reference:Interior|interior]]</code>, and <code>[[Reference:Media|media]]</code></p>
+
<p>See also: <code>[[Reference:Interior|interior]]</code> and <code>[[Reference:Media|media]]</code></p>

Revision as of 20:30, 27 March 2020

A variety of modifiers can be attached to objects. Some modifiers are specific to a particular object or group of objects, while some modifiers can be applied to all objects. Objects can anything from a simple predefined primitive, such as a sphere or a box to a complex object using Constructive Solid Geometry or CSG.

OBJECT_MODIFIER:
  clipped_by { UNTEXTURED_SOLID_OBJECT... } |
  clipped_by { bounded_by }                 |
  bounded_by { UNTEXTURED_SOLID_OBJECT... } |
  bounded_by { clipped_by }                 |
  no_shadow                  |
  no_image [ Bool ]          |
  no_radiosity [ Bool ]      |
  no_reflection [ Bool ]     |
  inverse                    |
  sturm [ Bool ]             |
  hierarchy [ Bool ]         |
  double_illuminate [ Bool ] |
  hollow  [ Bool ]           |
  interior { INTERIOR_ITEMS... }                        |
  material { [MATERIAL_IDENTIFIER][MATERIAL_ITEMS...] } |
  texture { TEXTURE_BODY }   |
  interior_texture { TEXTURE_BODY } |
  pigment { PIGMENT_BODY }   |
  normal { NORMAL_BODY }     |
  finish { FINISH_ITEMS... } |
  photons { PHOTON_ITEMS...}
  radiosity { RADIOSITY_ITEMS...}
  TRANSFORMATION

Note: Some conditions can produce unexpected results. When applied to CSG components most modifiers work as expected, however by design some modifiers are not passed from nested objects to a CSG resultant involving those objects.

This is true when using the following keywords and / or keyword blocks: no_image, no_reflection, no_shadow, no_radiosity, double_illuminate, hollow, photons and radiosity. CSG unions pass all modifiers listed above unless split_union off has been set, in which case the later list is ignored as with difference, intersection and merge.

While not technically object modifiers, object interior and finish subsurface blocks see similar CSG propagation complications. Interiors get attached to the objects where interiors are defined. The interior and subsurface object and finish modifier block results, respectively, vary where definitions are part of components making up any given CSG. Furthermore, in the case of subsurface, if the distance between the two surfaces is similar or smaller than the translucency value, we start to see through the object. In a CSG, if the back surface doesn't have a similar translucency, you may also see unexpected results.

See also: Transformations

See also: Hierarchy in blob or height_field

See also: material, texture, pigment, normal and finish

See also: interior and media