<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.povray.org/content?action=history&amp;feed=atom&amp;title=User%3ALe_Forgeron%2Ftesselation</id>
	<title>User:Le Forgeron/tesselation - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.povray.org/content?action=history&amp;feed=atom&amp;title=User%3ALe_Forgeron%2Ftesselation"/>
	<link rel="alternate" type="text/html" href="https://wiki.povray.org/content?title=User:Le_Forgeron/tesselation&amp;action=history"/>
	<updated>2026-04-27T19:26:56Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.povray.org/content?title=User:Le_Forgeron/tesselation&amp;diff=9502&amp;oldid=prev</id>
		<title>Le Forgeron at 20:50, 30 July 2018</title>
		<link rel="alternate" type="text/html" href="https://wiki.povray.org/content?title=User:Le_Forgeron/tesselation&amp;diff=9502&amp;oldid=prev"/>
		<updated>2018-07-30T20:50:21Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 20:50, 30 July 2018&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{User:Le_Forgeron/HgPovray38/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;soon&lt;/del&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{User:Le_Forgeron/HgPovray38/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;available&lt;/ins&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  Yoda: Yes, run! Yes, a Jedi's strength flows from the Renderer. But beware of the dark side.  &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  Yoda: Yes, run! Yes, a Jedi's strength flows from the Renderer. But beware of the dark side.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Le Forgeron</name></author>
	</entry>
	<entry>
		<id>https://wiki.povray.org/content?title=User:Le_Forgeron/tesselation&amp;diff=9491&amp;oldid=prev</id>
		<title>Le Forgeron: Created page with &quot;{{User:Le_Forgeron/HgPovray38/soon}}   Yoda: Yes, run! Yes, a Jedi's strength flows from the Renderer. But beware of the dark side.         Mesh, Heightfield, Bicubic Patch; t...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.povray.org/content?title=User:Le_Forgeron/tesselation&amp;diff=9491&amp;oldid=prev"/>
		<updated>2018-07-04T11:51:57Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{User:Le_Forgeron/HgPovray38/soon}}   Yoda: Yes, run! Yes, a Jedi&amp;#039;s strength flows from the Renderer. But beware of the dark side.         Mesh, Heightfield, Bicubic Patch; t...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{User:Le_Forgeron/HgPovray38/soon}}&lt;br /&gt;
&lt;br /&gt;
 Yoda: Yes, run! Yes, a Jedi's strength flows from the Renderer. But beware of the dark side. &lt;br /&gt;
       Mesh, Heightfield, Bicubic Patch; the dark side of the Force are they. Easily they flow, &lt;br /&gt;
       quick to join you in a fight. If once you start down the dark path, &lt;br /&gt;
       forever will it dominate your destiny, consume you it will, as it did Isosurface's apprentice.&lt;br /&gt;
 Luke: Parametric precompute... Is the dark side stronger?&lt;br /&gt;
 Yoda: No, no, no. Quicker, easier, more seductive.&lt;br /&gt;
 Luke: But how am I to know the good side from the bad?&lt;br /&gt;
 Yoda: You will know... when you are calm, at peace, passive. &lt;br /&gt;
       A Jedi uses the Renderer for knowledge and defense, NEVER for attack.&lt;br /&gt;
 Luke: But tell my why I can't...&lt;br /&gt;
 Yoda: No, no! There is no &amp;quot;why&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
See also [[User:Le_Forgeron/UVMeshable]]&lt;br /&gt;
==Mesh from 3D finite object==&lt;br /&gt;
* it must be 3D, to have an inside test which is meaningfull&lt;br /&gt;
* it must be finite, because the bounding box is used to specify the volume which will be sampled&lt;br /&gt;
&amp;lt;p&amp;gt;Whatever the method used (it will always end as a mesh object, or inside a mesh object). there is some common parameters:&amp;lt;/p&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;original&amp;lt;/code&amp;gt; is followed by the object to sample. It is really mandatory.&lt;br /&gt;
* &amp;lt;code&amp;gt;accuracy&amp;lt;/code&amp;gt; is followed by a 3D vector which specify the number of slices in each direction (it defaults to 10)&lt;br /&gt;
&lt;br /&gt;
===Without texture, using only Inside test (fast)===&lt;br /&gt;
&amp;lt;p&amp;gt;These approaches use a marching cube algorithm, hence their usage were forbidden on the USA thanks to a now expired patent (17 years after December 1987).&amp;lt;/p&amp;gt;&lt;br /&gt;
* bourke ( inspired by Paul Bourke at http://local.wasp.uwa.edu.au/~pbourke/geometry/polygonise/ , named with explicit authorisation, moved to http://paulbourke.net/geometry/polygonise/ ) &lt;br /&gt;
[[Image:LeForgeronBourke.png]]&lt;br /&gt;
* heller ( alternate table from Bourke page made by Geoffrey Heller)&lt;br /&gt;
[[Image:LeForgeronHeller.png]]&lt;br /&gt;
* cubicle (simplistic approach using a cube)&lt;br /&gt;
[[Image:LeForgeronCubicle.png]]&lt;br /&gt;
* cristal (same as cubicle, with inclined face)&lt;br /&gt;
[[Image:LeForgeronCristal.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;bourke &amp;amp; heller allow additional options :&amp;lt;/p&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;precision&amp;lt;/code&amp;gt; with a float, which supersample along the interecting line (by the amount of the float, so only positive integer are of any real interest) for a better fit.&lt;br /&gt;
* &amp;lt;code&amp;gt;offset&amp;lt;/code&amp;gt; is followed by a float which move outward the position of each face of the bounding box used for scanning (default to 0, so beware of very tight perfect bounding box)&lt;br /&gt;
&lt;br /&gt;
===Using Inside test &amp;amp; trace (slower)===&lt;br /&gt;
&amp;lt;p&amp;gt;No marching cube per itself here, the inside test is used to trigger the usage of trace to get the actual intersection.&amp;lt;/p&amp;gt;&lt;br /&gt;
* tesselate&lt;br /&gt;
[[Image:LeForgeronTesselate.png]]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 mesh { ...&lt;br /&gt;
  tesselate { &lt;br /&gt;
    original finite3D_obj&lt;br /&gt;
    [accuracy vector] [albinos] [offset float] [smooth] [texture { Tid }]&lt;br /&gt;
  }&lt;br /&gt;
 ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
OR&lt;br /&gt;
&lt;br /&gt;
 tesselate { &lt;br /&gt;
   original finite3D_obj&lt;br /&gt;
   [accuracy vector] [albinos] [offset float] [smooth] &lt;br /&gt;
&lt;br /&gt;
 [Object_Mods...]&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* tessel&lt;br /&gt;
[[Image:LeForgeronTessel.png]]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 mesh { ...&lt;br /&gt;
  tessel { &lt;br /&gt;
    original finite3D_obj&lt;br /&gt;
    [accuracy vector] [albinos] [offset float] [smooth] [texture { Tid }]&lt;br /&gt;
  }&lt;br /&gt;
 ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
OR&lt;br /&gt;
&lt;br /&gt;
 tessel { &lt;br /&gt;
   original finite3D_obj&lt;br /&gt;
   [accuracy vector] [albinos] [offset float] [smooth] &lt;br /&gt;
&lt;br /&gt;
 [Object_Mods...]&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;As trace is used, the texture from the intersection point is available and can be pushed on the vertex of each generated triangle. This can be prevented with the use of the &amp;lt;code&amp;gt;albinos&amp;lt;/code&amp;gt; option.&amp;lt;/p&amp;gt;&lt;br /&gt;
* a possible parameter is &amp;lt;code&amp;gt;smooth&amp;lt;/code&amp;gt; which would also use the normal reported by the intersection to make &amp;lt;code&amp;gt;smooth_triangle&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;triangle&amp;lt;/code&amp;gt; in the resulting mesh.&lt;br /&gt;
* &amp;lt;code&amp;gt;offset&amp;lt;/code&amp;gt; is followed by a float which move outward the position of each face of the bounding box used for scanning (default to 0, so beware of very tight perfect bounding box)&lt;/div&gt;</summary>
		<author><name>Le Forgeron</name></author>
	</entry>
</feed>