Difference between revisions of "Reference Talk:Potential Pattern"

From POV-Wiki
Jump to navigation Jump to search
(Created page with " copied from the povray.beta-test newsgroup: ---- This version adds a new pigment pattern: pigment { user_defined { function { RED_FUNCTION }, funct...")
 
m (completed mark up)
 
(5 intermediate revisions by one other user not shown)
Line 1: Line 1:
 +
<p>{{New}} in version 3.7.1 a <code>potential</code> pattern has been added to define a pattern based on the <em>potential</em> field of a <code>blob</code> or <code>isosurface</code> object.</p>
 +
<p>Using <code>pigment</code> in the following example, the syntax for the new pattern is as follows:</p>
  
copied from the povray.beta-test newsgroup:
+
<pre>
----
+
pigment {
This version adds a new pigment pattern:
+
  potential { BLOB | ISOSURFACE }
 +
  [threshold BOOL]
 +
  [PIGMENT_MODIFIERS...]
 +
  }
 +
</pre>
  
    pigment {
+
<p>With <code>threshold on</code> the pattern will take the <code>blob</code> or <code>isosurface</code> object's <em>potential minus the threshold</em>; otherwise it will take the <em>raw potential</em> which is the default behavior.</p>
      user_defined {
 
        function { RED_FUNCTION },
 
        function { GREEN_FUNCTION },
 
        function { BLUE_FUNCTION },
 
        function { FILTER_FUNCTION },
 
        function { TRANSMIT_FUNCTION }
 
      }
 
    }
 
  
Each function is optional, in which case the corresponding component is
+
<p>The <em>isosurface's</em> container has no effect on the <code>potential</code> pattern.</p>
set to 0. For example, the following sets the colour to rgbft <x,y,0,0,z>:
 
  
    pigment {
+
<p>The pattern value is <em>not</em> bound to the [0..1] range, unless you explicitly specify a <code>wave_type</code>.</p>
      user_defined {
 
        function { x },
 
        function { y },
 
        ,,
 
        function { z }
 
      }
 
    }
 
  
 +
<p>Applying the <code>inverse</code> keyword to the object will cause the pattern to be reversed as well; so, when using <code>threshold on</code> for blobs, positive pattern values always indicate inside, while negative values indicate outside.</p>
  
Aside from that, the version also includes the data container update as
+
<p class="Note"><strong>Note:</strong> By default this is the opposite for isosurfaces, so for easier use, the new pattern is therefore accompanied by an extension to the <code>isosurface</code> syntax as shown below:</p>
well as the transmission-based highlights/reflections knockout update.
+
 
----
+
<pre>
 +
isosurface {
 +
  ...
 +
  polarity FLOAT
 +
  ...
 +
  }
 +
</pre>
 +
 
 +
<p>Setting <code>polarity</code> to a positive value causes above-threshold values to be interpreted as inside, and below-threshold values as outside, rather than the other way round</p>
 +
 
 +
<p>See also: [[Reference:Blob|Blob]] and [[Reference:Isosurface|Isosurface]]</p>

Latest revision as of 11:20, 20 December 2016

New in version 3.7.1 a potential pattern has been added to define a pattern based on the potential field of a blob or isosurface object.

Using pigment in the following example, the syntax for the new pattern is as follows:

pigment {
  potential { BLOB | ISOSURFACE }
  [threshold BOOL]
  [PIGMENT_MODIFIERS...]
  }

With threshold on the pattern will take the blob or isosurface object's potential minus the threshold; otherwise it will take the raw potential which is the default behavior.

The isosurface's container has no effect on the potential pattern.

The pattern value is not bound to the [0..1] range, unless you explicitly specify a wave_type.

Applying the inverse keyword to the object will cause the pattern to be reversed as well; so, when using threshold on for blobs, positive pattern values always indicate inside, while negative values indicate outside.

Note: By default this is the opposite for isosurfaces, so for easier use, the new pattern is therefore accompanied by an extension to the isosurface syntax as shown below:

isosurface {
  ...
  polarity FLOAT
  ...
  }

Setting polarity to a positive value causes above-threshold values to be interpreted as inside, and below-threshold values as outside, rather than the other way round

See also: Blob and Isosurface