<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="//news.povray.org/rss/smb_rss2html.xsl"?>
<rss version="2.0" xmlns:povray="//news.povray.org/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">
<channel>
	<title>povray.advanced-users message digest</title>
	<description>Last 500 items posted to group povray.advanced-users</description>
	<link>//news.povray.org/digest/allmessages/</link>
	<povray:self_url>//news.povray.org/rss/povray.advanced-users</povray:self_url>
	<language>en</language>
	<ttl>120</ttl>
	<sy:updateFrequency>1</sy:updateFrequency>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateBase>1970-01-01T08:00+00:00</sy:updateBase>
	<lastBuildDate>Wed, 25 Mar 2026 18:40:00 GMT</lastBuildDate>
	<item>
		<title>[Bald Eagle] A specific layered texture [21 days 19 hours and 34 minutes ago]</title>
		<description>
&lt;pre&gt;Some background on the issue that I'm looking for a workaround to:

From: https://www.povray.org/documentation/view/3.60/356/
&amp;quot;A patterned texture cannot be used as a layer in a layered texture&amp;quot;

I'm wondering why.

So, what are &amp;quot;patterned textures?
https://www.povray.org/documentation/view/3.6.1/352/

&amp;quot;Patterned textures are complex textures made up of multiple textures. The
component textures may be plain textures or may be made up of patterned
textures. A plain texture has just one pigment, normal and finish statement.
Even a pigment with a pigment map is still one pigment and thus considered a
plain texture as are normals with normal map statements.&amp;quot;

What I'm aiming to accomplish:
I have several uv_mapped bicubic_patch objects that obviously have their own
individual textures.
What I'm trying to do is apply a single normal to all the patches that is not
controlled by the patch &amp;lt;u, v&amp;gt; vectors, but the global &amp;lt;x, y, z&amp;gt; vectors of
POV-space.

So although the pigment/texture coloring may differ on each patch, the normal
needs to be continuous, rather than cycling over &amp;lt;0, 0&amp;gt; to &amp;lt;1, 1&amp;gt; at the edge of
every patch.

Any examples / ideas?

- BE
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 25 Mar 2026 18:40:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.69c42be730d25c3e9a57bf1d25979125%40news.povray.org%3E/#%3Cweb.69c42be730d25c3e9a57bf1d25979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.69c42be730d25c3e9a57bf1d25979125%40news.povray.org%3E/#%3Cweb.69c42be730d25c3e9a57bf1d25979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Francois LE COAT] Re: Optical Inertia [91 days 23 hours and 59 minutes ago]</title>
		<description>
&lt;pre&gt;Hi,

Francois LE COAT writes:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; This is a sequence of images from a drone in the forest:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;lt;https://www.youtube.com/watch?v=Kt0mkFYX45A&amp;gt; Drone&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; The drone flies very slowly compared to the acquisition rate of 30&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; frames per second. This makes it much easier to observe the trajectory&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; and visible depth. The successive images in the sequence are highly&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; correlated. It is not necessary to frequently reset the reference image&lt;/span&gt;

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; selection over time, as the correlation between this image and&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; subsequent images remains well above the 60% threshold chosen for&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; resetting.&lt;/span&gt;

Here's a sequence of images from a drone in the forest:

&amp;lt;https://www.youtube.com/watch?v=hFcDUU626po&amp;gt; Swedish woods

This image computing called 3D Optical Inertia looks like SLAM
(Simultaneous Localization and Mapping) method. We obtain both
the location (trajectory) and the visible relief (3D depth map).
However, we're dealing with a monocular (single camera) image
sequence, not a stereoscopic (human vision) one.

Here is the spline trajectory in space: &amp;lt;https://skfb.ly/pFx6u&amp;gt;

Best regards,

-- 
Fran&amp;#231;ois LE COAT
&amp;lt;https://eureka.atari.org/&amp;gt;
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 14 Jan 2026 14:15:03 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C6967a4e7%241%40news.povray.org%3E/#%3C6967a4e7%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C6967a4e7%241%40news.povray.org%3E/#%3C6967a4e7%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Francois LE COAT] Re: Optical Inertia [127 days 23 hours and 44 minutes ago]</title>
		<description>
&lt;pre&gt;Hi,

Francois LE COAT writes:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; This is a large sequence of images from a drone in the forest:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;lt;https://www.youtube.com/watch?v=22QoxEwMBQA&amp;gt; The forest&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; This image computing looks like SLAM (Simultaneous Localization and&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Mapping) method. We obtain both the location (trajectory) and the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; visible relief (3D depth map). However, we're dealing with a monocular&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; (single camera) image sequence, not a stereoscopic (human vision) one.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; The sequence is constituted of 10 000 images at 60 frames per second.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; It is both large and high-resolution.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Here's the drone's trajectory in space: &amp;lt;https://skfb.ly/pDCwR&amp;gt;&lt;/span&gt;

This is a sequence of images from a drone in the forest:

&amp;lt;https://www.youtube.com/watch?v=Kt0mkFYX45A&amp;gt; Drone

The drone flies very slowly compared to the acquisition rate of 30
frames per second. This makes it much easier to observe the trajectory
and visible depth. The successive images in the sequence are highly
correlated. It is not necessary to frequently reset the reference image
selection over time, as the correlation between this image and
subsequent images remains well above the 60% threshold chosen for
resetting.

Best regards,

-- 
Fran&amp;#231;ois LE COAT
&amp;lt;https://eureka.atari.org/&amp;gt;
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 9 Dec 2025 14:30:01 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C69383269%241%40news.povray.org%3E/#%3C69383269%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C69383269%241%40news.povray.org%3E/#%3C69383269%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Using only POV-Ray keywords to make an equat... [128 days 12 hours and 44 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I'll likely follow this up with some other examples and explanatory text,&lt;/span&gt;

Not there yet, but just going put a few links here before they get lost.

https://people.richland.edu/james/lecture/m116/matrices/applications.html

https://math.stackexchange.com/questions/3067779/geometric-proof-evidence-for-the-3x3-matrix-determinants-formula

https://www.themathdoctors.org/how-can-3x3-determinants-give-both-area-and-volume/

https://www.tandfonline.com/doi/full/10.1080/0020739X.2023.2233513#d1e117

https://math.stackexchange.com/questions/313526/intersection-between-two-lines

https://blogs.sas.com/content/iml/2018/07/09/intersection-line-segments.html


Also an interesting link:
https://shipbrook.net/jeff/raytrace/matrix.html

- BE
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 9 Dec 2025 01:30:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.69377a962ef5ca6f1f9dae3025979125%40news.povray.org%3E/#%3Cweb.69377a962ef5ca6f1f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.69377a962ef5ca6f1f9dae3025979125%40news.povray.org%3E/#%3Cweb.69377a962ef5ca6f1f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Leroy] Re: Using only POV-Ray keywords to make an equat... [130 days 20 hours and 24 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Round and round we go.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; IIRC, I wrote a solution for generating a parabola passing through 3 points for&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; jr at one point.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Recently I went through the solver code for the sor {} Catmull-Rom splines&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; And again I touched on the parabola solution while discussing math with my son.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I was looking a few things over to review the math and methods, and I said to&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; myself, &amp;quot;Hey - this all looks awfully familiar.&amp;quot;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Why should I write code to solve a set of linear equations when the code already&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; exists in source and is exposed to the user through matrix transforms?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I'll likely follow this up with some other examples and explanatory text, but&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; for right now behold:  Solving a system of linear equation with 3 unknowns using&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; only keywords.  No &amp;quot;math&amp;quot; to speak of.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; POV-Ray black magic.   :)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Go ahead: change P0, P1, or P2.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Enjoy,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; - BE&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;

 Cool! Works for me! Did a few little changes for 3.7.

Having Fun!
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 6 Dec 2025 17:50:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.69346c9f2ef5ca6fc73c9d94f712fc00%40news.povray.org%3E/#%3Cweb.69346c9f2ef5ca6fc73c9d94f712fc00%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.69346c9f2ef5ca6fc73c9d94f712fc00%40news.povray.org%3E/#%3Cweb.69346c9f2ef5ca6fc73c9d94f712fc00%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Using only POV-Ray keywords to make an equation ... [131 days 11 hours and 9 minutes ago]</title>
		<description>
&lt;pre&gt;Round and round we go.
IIRC, I wrote a solution for generating a parabola passing through 3 points for
jr at one point.
Recently I went through the solver code for the sor {} Catmull-Rom splines
And again I touched on the parabola solution while discussing math with my son.

I was looking a few things over to review the math and methods, and I said to
myself, &amp;quot;Hey - this all looks awfully familiar.&amp;quot;

Why should I write code to solve a set of linear equations when the code already
exists in source and is exposed to the user through matrix transforms?

I'll likely follow this up with some other examples and explanatory text, but
for right now behold:  Solving a system of linear equation with 3 unknowns using
only keywords.  No &amp;quot;math&amp;quot; to speak of.

POV-Ray black magic.   :)

Go ahead: change P0, P1, or P2.

Enjoy,

- BE


#version version;
global_settings {assumed_gamma 1.0}


camera {
 location  &amp;lt;0, 0, -40&amp;gt;
 right  x*image_width/image_height
 up   y
 look_at  &amp;lt;0, 0, 0&amp;gt;
}

light_source {&amp;lt;0, 0, -50&amp;gt; rgb 1}

sky_sphere {pigment {rgb 0.2}}

plane {z, 0 pigment {checker rgb 0.15 rgb 0.2}}


#declare E = 0.000001;
#declare Line = 0.05;

cylinder {-x*100, x*100 Line pigment {rgb x}}
cylinder {-y*100, y*100 Line pigment {rgb y}}



#declare P0 = &amp;lt;0, 6&amp;gt;;
#declare P1 = &amp;lt;3, 3&amp;gt;;
#declare P2 = &amp;lt;-2, -3&amp;gt;;

#declare PointArray = array {P0, P1, P2}

#macro SolveParabola (P)
 // Just some setup stuff to keep later notation short
 #local X02 = P[0].x*P[0].x;
 #local X0  = P[0].x;
 #local Y0  = P[0].y;

 #local X12 = P[1].x*P[1].x;
 #local X1  = P[1].x;
 #local Y1  = P[1].y;

 #local X22 = P[2].x*P[2].x;
 #local X2  = P[2].x;
 #local Y2  = P[2].y;

 // Here's where we do the equation solving

 #local EquationMatrix =
 transform {
  matrix &amp;lt;
   X02, X12, X22,
   X0 , X1 , X2 ,
   1  , 1  , 1  ,
   0  , 0  , 0
  &amp;gt;
 }

 #local Inv = function {transform {EquationMatrix inverse}}

 #local Coeff = Inv (Y0, Y1, Y2);

 #local (a, b, c) = (Coeff.x, Coeff.y, Coeff.z);

 // And we're done.

 //#debug concat (&amp;quot;a = &amp;quot;, str(a, 0, 3),  &amp;quot; b = &amp;quot;, str(b, 0, 3), &amp;quot; c = &amp;quot;, str(c,
0, 3), &amp;quot;\n&amp;quot;)


 #local ParabolaMatrix =
 transform {
  matrix &amp;lt;
   0, a, 0,
   1, b, 0
   0, c, 0
   0, 0, 0
  &amp;gt;
 }

 ParabolaMatrix

#end

// Now we can use a matrix transform again to make the function
#declare Parabola = function {transform {SolveParabola (PointArray)}}

#for (i, 0, 2)
 sphere {PointArray[i], Line*5 pigment {rgb y}}
#end

union {
 #for (i, 0, 20, 0.1)
  #local X = i-10;
  #local Xterms = &amp;lt;X*X, X, 1&amp;gt;;
  #local P = Parabola (Xterms.x, Xterms.y, Xterms.z)-z; // -z compensates for
POV-Ray's auto-fix of &amp;lt;0, 0, 0&amp;gt; scaling
  //#debug concat (&amp;quot;P = &amp;quot;, vstr(3, P, &amp;quot;, &amp;quot;, 0, 3), &amp;quot; \n&amp;quot;)
  sphere {P, Line}
  #if (i&amp;gt;0)
   cylinder {LastP, P, Line}
  #end
  #local LastP = P;
 #end
 pigment {rgb 1}
}
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 6 Dec 2025 03:05:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.69339ccb36705cf71f9dae3025979125%40news.povray.org%3E/#%3Cweb.69339ccb36705cf71f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.69339ccb36705cf71f9dae3025979125%40news.povray.org%3E/#%3Cweb.69339ccb36705cf71f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Calculating normals and perturbing them. [135 days 22 hours and 24 minutes ago]</title>
		<description>
&lt;pre&gt;Desmos 3d Calculator

https://www.desmos.com/3d/m5lelysfl1

Use lines 19 &amp;amp; 20 to change Theta and Phi

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 1 Dec 2025 15:50:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.692db87829c1388798de4e8625979125%40news.povray.org%3E/#%3Cweb.692db87829c1388798de4e8625979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.692db87829c1388798de4e8625979125%40news.povray.org%3E/#%3Cweb.692db87829c1388798de4e8625979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Cousin Ricky] Re: Macro and parameters [136 days 19 hours and 19 minutes ago]</title>
		<description>
&lt;pre&gt;On 2025-11-29 05:05 (-4), kurtz le pirate wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Effectively, it's not a bug, I agree, but it's confusing when you're&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; switching between C and POV. My code wasn't working, and I had a lot of&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; trouble figuring out why.&lt;/span&gt;

Kinda like switching from English to Spanish, and saying &amp;quot;vacunar la
carpeta&amp;quot; when you want to say &amp;quot;vacuum the carpet&amp;quot;; or saying &amp;quot;Estoy
embarazada&amp;quot; when you want to say &amp;quot;I'm embarrassed&amp;quot;; and then having a
lot of trouble figuring out why the locals are looking at you strange.
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 30 Nov 2025 18:54:52 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C692c92fc%241%40news.povray.org%3E/#%3C692c92fc%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C692c92fc%241%40news.povray.org%3E/#%3C692c92fc%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Cousin Ricky] Re: Macro and parameters [137 days 22 hours and 16 minutes ago]</title>
		<description>
&lt;pre&gt;On 2025-11-29 11:09 (-4), Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Cousin Ricky &amp;lt;ric###&amp;nbsp;[at]&amp;nbsp;yahoo&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; and the author of colors.inc::CH2RGB().&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Story time!  :)&lt;/span&gt;

https://news.povray.org/povray.general/thread/%3Cweb.4fb9a70082db4bf885de7b680%40news.povray.org%3E/
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 29 Nov 2025 15:57:56 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C692b1804%241%40news.povray.org%3E/#%3C692b1804%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C692b1804%241%40news.povray.org%3E/#%3C692b1804%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Macro and parameters [137 days 23 hours and 4 minutes ago]</title>
		<description>
&lt;pre&gt;Cousin Ricky &amp;lt;ric###&amp;nbsp;[at]&amp;nbsp;yahoo&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Saw it coming!  This feature (not a bug!) has zapped some veterans,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; including BE, Ive,&lt;/span&gt;

It's an easy thing to forget about.
There has been some discussion about &amp;quot;wrapping&amp;quot; the feature, using a flag/switch
for enabling/protecting against the feature, or issuing a warning &amp;quot;argument
valued altered&amp;quot;.

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; and the author of colors.inc::CH2RGB().&lt;/span&gt;

Story time!  :)


&lt;span class=&quot;RC1&quot;&gt;&amp;gt; The particulars are explained here:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;
https://wiki.povray.org/content/Reference:User_Defined_Macros#Returning_Values_Via_Parameters&lt;/span&gt;

Yes, I had that tab open in my browser just in case.
You beat me to it.
I would like that whole section to moved the the top of the page,

&amp;quot;This mistake is more likely to be made with float identifiers versus float
expressions. Consider these examples.

#declare Value=5.0;
MyMacro(Value)     //MyMacro can change the value of Value but...
MyMacro(+Value)    //This version and the rest are not lone
MyMacro(Value+0.0) // identifiers. They are float expressions
MyMacro(Value*1.0) // which cannot be changed.
Although all four invocations of MyMacro are passed the value 5.0, only the
first may modify the value of the identifier.&amp;quot;

and for the example preceding to be a little clearer.  The box {} example is a
bit too strange to lead in with.

The numerical examples are good, but a full-fledged .pov file with extended
commentary and output would be best - either as a downloadable file or just
cut-n-paste SDL right there on the wiki page.

- BE
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 29 Nov 2025 15:10:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.692b0c9d8e84ac711f9dae3025979125%40news.povray.org%3E/#%3Cweb.692b0c9d8e84ac711f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.692b0c9d8e84ac711f9dae3025979125%40news.povray.org%3E/#%3Cweb.692b0c9d8e84ac711f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[kurtz le pirate] Re: Macro and parameters [138 days 5 hours and 8 minutes ago]</title>
		<description>
&lt;pre&gt;On 29/11/2025 02:05, Cousin Ricky wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Saw it coming!  This feature (not a bug!) has zapped some veterans,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; including BE, Ive, and the author of colors.inc::CH2RGB().&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;

Effectively, it's not a bug, I agree, but it's confusing when you're 
switching between C and POV. My code wasn't working, and I had a lot of 
trouble figuring out why.

Now I will pay much more attention to this situation.





-- 
kurtz le pirate
compagnie de la banquise
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 29 Nov 2025 09:05:40 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C692ab764%241%40news.povray.org%3E/#%3C692ab764%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C692ab764%241%40news.povray.org%3E/#%3C692ab764%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Cousin Ricky] Re: Macro and parameters [138 days 13 hours and 8 minutes ago]</title>
		<description>
&lt;pre&gt;On 2025-11-28 12:07 (-4), kurtz le pirate wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I just spent a long, long time debugging my code.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; For example, this macro :&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; [snip]&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; At first glance, nothing special, but there is a problem, a big problem,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; that I hadn't noticed :(&lt;/span&gt;

I think I see where this is going.

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Can you see it too? Well done.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I also program in C, so perhaps that's where the confusion comes from.&lt;/span&gt;

Now I'm sure of it!

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; But I'll explain it anyway.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; The annoying part is this one :&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160; #if ( k &amp;gt; n-k )&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160; #local k = n - k;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160; #end&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ... and so, the &amp;quot;#local k =&amp;quot; led me to believe I was using a local&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; variable. Well, not at all. &amp;quot;k&amp;quot; represents the variable passed as a&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; parameter and its value is modified in the part that called this macro.&lt;/span&gt;

Saw it coming!  This feature (not a bug!) has zapped some veterans,
including BE, Ive, and the author of colors.inc::CH2RGB().

The particulars are explained here:

https://wiki.povray.org/content/Reference:User_Defined_Macros#Returning_Values_Via_Parameters
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 29 Nov 2025 01:05:46 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C692a46ea%241%40news.povray.org%3E/#%3C692a46ea%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C692a46ea%241%40news.povray.org%3E/#%3C692a46ea%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Macro and parameters [138 days 18 hours and 29 minutes ago]</title>
		<description>
&lt;pre&gt;You can pass by value or pass by reference.

https://news.povray.org/povray.advanced-users/thread/%3Cweb.63dd8ba6afaac3401f9dae3025979125%40news.povray.org%3E/

It's a recurring trap.
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 28 Nov 2025 19:45:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6929fa968e84ac71d33494a025979125%40news.povray.org%3E/#%3Cweb.6929fa968e84ac71d33494a025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6929fa968e84ac71d33494a025979125%40news.povray.org%3E/#%3Cweb.6929fa968e84ac71d33494a025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Leroy] Re: Macro and parameters [138 days 20 hours and 29 minutes ago]</title>
		<description>
&lt;pre&gt;kurtz le pirate &amp;lt;kur###&amp;nbsp;[at]&amp;nbsp;free&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;fr&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Hello,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I just spent a long, long time debugging my code.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; For example, this macro :&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #macro binomial_coefficient(n, k)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    #local result = 0.0;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    #if ( k&amp;lt;0 | k&amp;gt;n)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      #local result = 0.0;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    #elseif (k=0 | k=n)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      #local result = 1.0;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    #else&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      #local result = 1.0;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      #if ( k &amp;gt; n-k )&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;        #local k = n - k;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      #end&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      #local i = 0;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      #while ( i &amp;lt; k )&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;        #local result = result*(n-i);&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;        #local result = result/(i+1);&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;        #local i = i + 1;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      #end&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    #end&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    // return scalar value&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    result&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #end&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; At first glance, nothing special, but there is a problem, a big problem,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; that I hadn't noticed :(&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Can you see it too? Well done.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I also program in C, so perhaps that's where the confusion comes from.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; But I'll explain it anyway.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; The annoying part is this one :&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      #if ( k &amp;gt; n-k )&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;        #local k = n - k;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      #end&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ... and so, the &amp;quot;#local k =&amp;quot; led me to believe I was using a local&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; variable. Well, not at all. &amp;quot;k&amp;quot; represents the variable passed as a&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; parameter and its value is modified in the part that called this macro.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; By simplifying :&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #declare n = 5;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #declare k = 3;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #declare r = binomial_coefficient(n,k);&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ...and here k = 2, not 3 !&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Therefore, be careful not to use a macro parameter in an assignment.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Do you agree with me, or have I misunderstood something again?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; --&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; kurtz le pirate&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; compagnie de la banquise&lt;/span&gt;


I agree! I program in C++ and POV macros and variables are very different!

Try this macro.

#macro ts(R)
 #local R=sphere{0,1 pigment{Gold}}
#end
#declare P=5; ts(P)
object{P}

Have Fun!
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 28 Nov 2025 17:45:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6929df248e84ac71500040e3f712fc00%40news.povray.org%3E/#%3Cweb.6929df248e84ac71500040e3f712fc00%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6929df248e84ac71500040e3f712fc00%40news.povray.org%3E/#%3Cweb.6929df248e84ac71500040e3f712fc00%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[kurtz le pirate] Macro and parameters [138 days 22 hours and 6 minutes ago]</title>
		<description>
&lt;pre&gt;Hello,


I just spent a long, long time debugging my code.

For example, this macro :

#macro binomial_coefficient(n, k)

   #local result = 0.0;

   #if ( k&amp;lt;0 | k&amp;gt;n)
     #local result = 0.0;

   #elseif (k=0 | k=n)
     #local result = 1.0;

   #else
     #local result = 1.0;
     #if ( k &amp;gt; n-k )
       #local k = n - k;
     #end
     #local i = 0;
     #while ( i &amp;lt; k )
       #local result = result*(n-i);
       #local result = result/(i+1);
       #local i = i + 1;
     #end
   #end

   // return scalar value
   result
#end



At first glance, nothing special, but there is a problem, a big problem, 
that I hadn't noticed :(


Can you see it too? Well done.


I also program in C, so perhaps that's where the confusion comes from.
But I'll explain it anyway.


The annoying part is this one :

     #if ( k &amp;gt; n-k )
       #local k = n - k;
     #end

... and so, the &amp;quot;#local k =&amp;quot; led me to believe I was using a local 
variable. Well, not at all. &amp;quot;k&amp;quot; represents the variable passed as a 
parameter and its value is modified in the part that called this macro.

By simplifying :

#declare n = 5;
#declare k = 3;
#declare r = binomial_coefficient(n,k);
...and here k = 2, not 3 !


Therefore, be careful not to use a macro parameter in an assignment.

Do you agree with me, or have I misunderstood something again?



-- 
kurtz le pirate
compagnie de la banquise
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 28 Nov 2025 16:07:13 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C6929c8b1%241%40news.povray.org%3E/#%3C6929c8b1%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C6929c8b1%241%40news.povray.org%3E/#%3C6929c8b1%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Calculating normals and perturbing them. [140 days 13 hours and 29 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I may or may not get the opportunity to try this, but it would be useful to plot&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; expected normal scalar values as an overlay, and also render the potential&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; vector-promoted scalar values to see if they give the same results.&lt;/span&gt;

Well I did.  And it was as (unnecessarily) annoying, confusing, frustrating, and
difficult as these things always are.

I'm very interested in what the/your expected result is.

(very cool version statement - you have a lot of clever little things in your
scenes)


#version max (3.5, min (3.8, version));

global_settings { assumed_gamma 1 }

light_source { &amp;lt;(frame_number = 2? 1: -1), 1, -1.4&amp;gt; * 1000, rgb 1 }

camera
{ location -6 * z
   right x
   angle 30
}

#declare OriginalFunction =
function
{ max
 ( select (x - 1, 1, select (x - 2, 0, 1)),
   select (y - 1, 1, select (y - 2, 0, 1))
 )
}

#declare Pattern = function {
 spline {
  0, &amp;lt;0, 0, 0&amp;gt;,
  1, &amp;lt;1, 1 ,1&amp;gt;
 }
}

#declare VectorValues =
normal {
 average
 normal_map {
  [function { Pattern (OriginalFunction(x, y, z)).red}]
  [function { Pattern (OriginalFunction(x, y, z)).green}]
  [function { Pattern (OriginalFunction(x, y, z)).blue}]
 }
}


#declare Function = 1;

#switch (Function)

 #case (0)
  box
  { 0, 3
     pigment { rgb &amp;lt;1, 0.5, 0.5&amp;gt; }
     normal
     {
      function {OriginalFunction (x, y, z)}
       accuracy 0.1
     }
     translate &amp;lt;-1.5, -1.5, 0&amp;gt;
  }
 #break

 #case (1)
  box
  { 0, 3
     pigment { rgb &amp;lt;1, 0.5, 0.5&amp;gt; }
     normal
     {
      VectorValues
       accuracy 0.1
     }
     translate &amp;lt;-1.5, -1.5, 0&amp;gt;
  }
 #break

#end

#declare Ext = 5;
#for (Y, -Ext, Ext)
 #for (X, -Ext, Ext)
  text { ttf &amp;quot;arial.ttf&amp;quot;, str (OriginalFunction (X, Y, 0), 0, 0), 0.02, 0.0
translate &amp;lt;-0.25, -0.25, 0&amp;gt; scale 0.5 translate &amp;lt;X, Y, -0.01&amp;gt; pigment {rgb
z*0.5} no_shadow}
 #end
#end
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 27 Nov 2025 00:45:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.69279ed729c138871f9dae3025979125%40news.povray.org%3E/#%3Cweb.69279ed729c138871f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.69279ed729c138871f9dae3025979125%40news.povray.org%3E/#%3Cweb.69279ed729c138871f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Calculating normals and perturbing them. [140 days 14 hours and 59 minutes ago]</title>
		<description>
&lt;pre&gt;Cousin Ricky &amp;lt;ric###&amp;nbsp;[at]&amp;nbsp;yahoo&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; So far as I understand, the scalar is an offset from the surface, and as&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; such, a vector perpendicular to the unperturbed surface is implied.&lt;/span&gt;

I mean, that sounds great.
But as far as I am presently aware, POV-Ray enters the Perturb_Normal() function
in normal.cpp with no geometric information other than the &amp;quot;EPoint&amp;quot;.
So in what direction do we offset from that point?  The normal?
I believe that the whole reason for using the pyramid vectors is to compute the
normal in the first place so that it can then be perturbed by a vector-valued
function of amplitude bump_size or scale &amp;lt;x, y, z&amp;gt;.

I could very well be missing some key point, which is why I've been digging into
this when I have the time / remember to.

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; POV-Ray then computes a normal vector by comparing adjacent&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; perturbations, &amp;quot;adjacent&amp;quot; being defined by the 'accuracy' attribute.&lt;/span&gt;

It uses the pyramid vectors to define the sampling points offset from the EPoint
by a value &amp;quot;Delta&amp;quot; which Nathan Kopp hard-codes to 0.02.

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I haven't examined the source code, so I could be wrong, but I would&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; expect &amp;quot;adjacent&amp;quot; samples to be free from bias, at least from opposite&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; directions.&lt;/span&gt;

Yes, it's taken me some time, but I believe that the tetrahedral arrangement of
the sample points ensures exactly that, no matter the orientation.

&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; I believe one would need to use a spline function, a pigment function, or some&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; other vector-valued function to properly use a function {} in a normal statement&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; to get meaningful if not proper results.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; This actually sounds like an excellent way to *introduce* directional&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; bias if you're not careful with the function.  ISTR some of POV-Ray's&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; built-in normals already have that problem.&lt;/span&gt;

But directional bias is exactly how we are creating the normal pattern to begin
with.  If we just multiplied all of the pyramid vectors by a scalar, they would
all cancel out.  Because there's no inherent directional bias.   In order to
&amp;quot;apply a normal&amp;quot; to a surface, we have to introduce some sort of _directional
bias_ in the form of a vector.

That vector comes from the normal pattern functions, and so I think that in
order to create a real and meaningful normal pattern like we think of them, it
needs to be a 3-dimensional vector.  Otherwise, I think that &amp;quot;1&amp;quot; gets
transformed to &amp;lt;1, 1, 1&amp;gt;, &amp;quot;-1&amp;quot; gets transformed to &amp;lt;-1, -1, -1&amp;gt;, etc.

I may or may not get the opportunity to try this, but it would be useful to plot
expected normal scalar values as an overlay, and also render the potential
vector-promoted scalar values to see if they give the same results.

Definitely a lot to be learned here, on several fronts.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 26 Nov 2025 23:15:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6927891629c138871f9dae3025979125%40news.povray.org%3E/#%3Cweb.6927891629c138871f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6927891629c138871f9dae3025979125%40news.povray.org%3E/#%3Cweb.6927891629c138871f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Cousin Ricky] Re: Calculating normals and perturbing them. [140 days 17 hours and 23 minutes ago]</title>
		<description>
&lt;pre&gt;On 2025-11-26 10:53 (-4), Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I was also trying to re-code an old scene where I was initially trying to&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; replicate source-code methods in SDL, and I believe I was trying to do what&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Cousin Ricky was doing - which is trying to use a scalar value to create a&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;quot;normal&amp;quot;.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; A surface normal is, by definition, a vector perpendicular to the surface at&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; that point.   It's a vector, not a scalar, so using the scalar result from an&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; SDL function as a normal really doesn't make any sense.&lt;/span&gt;

So far as I understand, the scalar is an offset from the surface, and as
such, a vector perpendicular to the unperturbed surface is implied.
POV-Ray then computes a normal vector by comparing adjacent
perturbations, &amp;quot;adjacent&amp;quot; being defined by the 'accuracy' attribute.

I haven't examined the source code, so I could be wrong, but I would
expect &amp;quot;adjacent&amp;quot; samples to be free from bias, at least from opposite
directions.

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I believe one would need to use a spline function, a pigment function, or some&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; other vector-valued function to properly use a function {} in a normal statement&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; to get meaningful if not proper results.&lt;/span&gt;

This actually sounds like an excellent way to *introduce* directional
bias if you're not careful with the function.  ISTR some of POV-Ray's
built-in normals already have that problem.
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 26 Nov 2025 20:50:54 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C6927682e%241%40news.povray.org%3E/#%3C6927682e%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C6927682e%241%40news.povray.org%3E/#%3C6927682e%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Calculating normals and perturbing them. [140 days 23 hours and 19 minutes ago]</title>
		<description>
&lt;pre&gt;I've been digging down to the foundations of computing normals, and I was
re-reading the following threads with fresh eyes.

https://news.povray.org/povray.binaries.images/thread/%3C609265e2%40news.povray.org%3E/?mtop=434022

http://news.povray.org/povray.binaries.images/thread/%3C5ff4b8da%241%40news.povray.org%3E/

https://iquilezles.org/articles/normalsSDF/
(Original pouet.net link: https://www.pouet.net/topic.php?which=5604 )

This thread recently got updated due to my inquiries, with no explanations, thus
the pyramid vectors straight from POV-Ray's normals.cpp

https://rodolphe-vaillant.fr/entry/87/normal-to-an-implicit-surface

I was also trying to re-code an old scene where I was initially trying to
replicate source-code methods in SDL, and I believe I was trying to do what
Cousin Ricky was doing - which is trying to use a scalar value to create a
&amp;quot;normal&amp;quot;.

A surface normal is, by definition, a vector perpendicular to the surface at
that point.   It's a vector, not a scalar, so using the scalar result from an
SDL function as a normal really doesn't make any sense.

I believe one would need to use a spline function, a pigment function, or some
other vector-valued function to properly use a function {} in a normal statement
to get meaningful if not proper results.

Perhaps what Richard is seeing is the result of vector promotion or some other
under-the-hood modification of the scalar function, and that' why the raytraced
result is wrong.

I myself am currently trying to unravel the requirements and limitations of
trying to create normals in sdf using the pyramid vector method.

All I can say is that there is no inherent bias introduced by the pyramid vector
method, since everything cancels out to give straightforward central differences
in any orientation.

- BE
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 26 Nov 2025 14:55:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6927144c88506bcb9839f6ab25979125%40news.povray.org%3E/#%3Cweb.6927144c88506bcb9839f6ab25979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6927144c88506bcb9839f6ab25979125%40news.povray.org%3E/#%3Cweb.6927144c88506bcb9839f6ab25979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Francois LE COAT] Re: Optical Inertia [149 days and 3 minutes ago]</title>
		<description>
&lt;pre&gt;Hi,

This is a large sequence of images from a drone in the forest:

&amp;lt;https://www.youtube.com/watch?v=22QoxEwMBQA&amp;gt; The forest

This image computing looks like SLAM (Simultaneous Localization and
Mapping) method. We obtain both the location (trajectory) and the
visible relief (3D depth map). However, we're dealing with a monocular
(single camera) image sequence, not a stereoscopic (human vision) one.

The sequence is constituted of 10 000 images at 60 frames per second.
It is both large and high-resolution.

Here's the drone's trajectory in space: &amp;lt;https://skfb.ly/pDCwR&amp;gt;

Best regards,

-- 
Fran&amp;#231;ois LE COAT
&amp;lt;https://eureka.atari.org/&amp;gt;
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 18 Nov 2025 14:10:15 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C691c7e47%241%40news.povray.org%3E/#%3C691c7e47%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C691c7e47%241%40news.povray.org%3E/#%3C691c7e47%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: 3.8.0-beta.2 - illegal instruction [152 days 9 hours and 48 minutes ago]</title>
		<description>
&lt;pre&gt;On 14/11/2025 20:32, William F Pokorny wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; (*) - Eventually, I plan to move 'yuqk' to github as I am already using &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; git for it locally. At that change I'll be coming up to speed with &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; github for yuqk - and sorting base POV-Ray github issues then, should be &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; easier.&lt;/span&gt;

Good luck with it - Github is a _very_ useful and now &amp;quot;must have&amp;quot;
service. I can suggest desktop version with excellent GUI:
https://desktop.github.com/download/

There is also a Linux fork, which I am using too, but you will need some
googling to find it.
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 15 Nov 2025 04:25:56 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C691800d4%241%40news.povray.org%3E/#%3C691800d4%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C691800d4%241%40news.povray.org%3E/#%3C691800d4%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[William F Pokorny] Re: 3.8.0-beta.2 - illegal instruction [152 days 20 hours and 41 minutes ago]</title>
		<description>
&lt;pre&gt;On 11/10/25 06:44, William F Pokorny wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; It's true I did some github things a year or so ago to get bumped to a &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; developer with the idea I might do a few quick commits like this, but my &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; github upgrade from contributor to developer didn't go well. Best I &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; could tell, I ended up with developer permission to one hidden / &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; developer only fork / branch about which I know nothing.&lt;/span&gt;

I recently got an email from a friend on this subject. I want to make 
clear I am the one who has not pursued fixing the situation above.

It might be something I could fix myself with some time and focus. If 
not, others - like Chris - would certainly try and help me, but I don't 
want others burning time for something I'm currently unlikely to much 
use(*).

Aside:

Thinking about the patch, it's safer to remove the -ffast-math flag, I 
think. I'm unsure how pervasive the -fno-finite-math-only flag is... 
(clang ?)

Bill P.

(*) - Eventually, I plan to move 'yuqk' to github as I am already using 
git for it locally. At that change I'll be coming up to speed with 
github for yuqk - and sorting base POV-Ray github issues then, should be 
easier.
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 14 Nov 2025 17:32:24 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C691767a8%241%40news.povray.org%3E/#%3C691767a8%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C691767a8%241%40news.povray.org%3E/#%3C691767a8%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[William F Pokorny] Re: 3.8.0-beta.2 - illegal instruction [157 days 2 hours and 29 minutes ago]</title>
		<description>
&lt;pre&gt;On 11/10/25 04:52, jr wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; hi,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; William F Pokorny &amp;lt;ano###&amp;nbsp;[at]&amp;nbsp;anonymous&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;org&amp;gt; wrote:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; ...&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; 2) Both the default unix build and the build script jr provided use&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; -ffast-math. There are a number of flaky fails due recent compiler&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; changes to what -ffast-math does. Change that flag to: -fno-fast-math or&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; add the flag -fno-finite-math-only to your CXXFLAGS and try another build.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; in light of yesbird asking whether optimisation should be turned off perhaps, I&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; think it would be beneficial if (at least) the build flags for default *NIX were&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; appended / updated to include the '-fno-finite-math-only'.  can do ?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;

No(*), not easily.

---

It's true I did some github things a year or so ago to get bumped to a 
developer with the idea I might do a few quick commits like this, but my 
github upgrade from contributor to developer didn't go well. Best I 
could tell, I ended up with developer permission to one hidden / 
developer only fork / branch about which I know nothing.

None of the automated, github, build, check and release stuff is 
currently working. I never understood that set up beyond checking 
results of the auto-build-check fails. I have now not used github 
itself, except for occasionally commenting on issues posted there, for 
more than 5 years.

I cannot help with or support any windows specific development.

The suggested change should be made in at least 3 github branches. The 
github support infrastructure is really nice when it's all working - but 
even then, the simplest change takes non-trivial 'git / github' time.

---

My Unix/Linux only yuqk fork is different. The Unix build system itself 
is substantially different. I don't even have the --disable-optimiz 
configure option YB used(**) to build on his machine, for example.

---

Lastly, of late, real life is leaving me with much less time for my 
POV-Ray hobby :-(.

Bill P.


(*) - You're likely guessing correctly that YB's core issue comes down 
to the -ffast-math changes. The --disable-optimize option almost 
certainly turns off fast math.

(**) - Completely non-optimized POV-Ray builds are slow. (Though, it is 
a workaround for the gnu compiler optimizations breaking the dynamic cpu 
detection code issue (fixed in yuqk no matter the compiler optimization 
level))
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 10 Nov 2025 11:44:30 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C6911d01e%241%40news.povray.org%3E/#%3C6911d01e%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C6911d01e%241%40news.povray.org%3E/#%3C6911d01e%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[jr] Re: 3.8.0-beta.2 - illegal instruction [157 days 4 hours and 19 minutes ago]</title>
		<description>
&lt;pre&gt;hi,

William F Pokorny &amp;lt;ano###&amp;nbsp;[at]&amp;nbsp;anonymous&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;org&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; 2) Both the default unix build and the build script jr provided use&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; -ffast-math. There are a number of flaky fails due recent compiler&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; changes to what -ffast-math does. Change that flag to: -fno-fast-math or&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; add the flag -fno-finite-math-only to your CXXFLAGS and try another build.&lt;/span&gt;

in light of yesbird asking whether optimisation should be turned off perhaps, I
think it would be beneficial if (at least) the build flags for default *NIX were
appended / updated to include the '-fno-finite-math-only'.  can do ?


regards, jr.
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 10 Nov 2025 09:55:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6911b5fa7b122386475fba6a6cde94f1%40news.povray.org%3E/#%3Cweb.6911b5fa7b122386475fba6a6cde94f1%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6911b5fa7b122386475fba6a6cde94f1%40news.povray.org%3E/#%3Cweb.6911b5fa7b122386475fba6a6cde94f1%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: 3.8.0-beta.2 - illegal instruction [157 days 13 hours ago]</title>
		<description>
&lt;pre&gt;On 08/11/2025 16:58, jr wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; good that you found a work-around.&lt;/span&gt;

Yes, I did with the help of the community, but don't you think that
it would be better to turn off this optimization by default to
preserve other users from similar issues in future ?
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 10 Nov 2025 01:13:51 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C69113c4f%40news.povray.org%3E/#%3C69113c4f%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C69113c4f%40news.povray.org%3E/#%3C69113c4f%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Getting the most from CPU [157 days 23 hours and 29 minutes ago]</title>
		<description>
&lt;pre&gt;On 09/11/2025 15:47, jr wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; strange.  on my &amp;quot;elderly&amp;quot; i5, the help option reports CPU Intel (with&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; SSE2,AVX,AVX2,FMA3) and noise generator 'avx2fma3-intel'.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; fwiw, when the correct CPU is detected, find out which &amp;quot;chipset&amp;quot; ('Haswell' for&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; this machine), and check if the compiler &amp;quot;knows&amp;quot; that, ie I can use the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; '-march=haswell -mtune=haswell' GCC options.  unsure about &amp;quot;performance boost&amp;quot;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; :-).&lt;/span&gt;

Nothing strange - at home I have Intel, but now building version for
hosting provider's server that works under &amp;quot;AMD EPYC 7763 64-Core&amp;quot; and
want to make optimal configuration.

I will be happy if you suggest me the best options for this
hardware.
-- 
YB
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 9 Nov 2025 14:44:39 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C6910a8d7%241%40news.povray.org%3E/#%3C6910a8d7%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C6910a8d7%241%40news.povray.org%3E/#%3C6910a8d7%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[jr] Re: Getting the most from CPU [158 days 1 hour and 24 minutes ago]</title>
		<description>
&lt;pre&gt;hi,

yesbird wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Now, after successfully build of 3.8.0-beta2 for my home dated&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Intel(R) Core(TM) i5 CPU 750 @ 2.67GHz, ...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Now I see in the following, when asking 'povray --help':&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Dynamic optimizations:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; CPU detected: AMD,FMA4&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Noise generator: generic (portable)&lt;/span&gt;

strange.  on my &amp;quot;elderly&amp;quot; i5, the help option reports CPU Intel (with
SSE2,AVX,AVX2,FMA3) and noise generator 'avx2fma3-intel'.

fwiw, when the correct CPU is detected, find out which &amp;quot;chipset&amp;quot; ('Haswell' for
this machine), and check if the compiler &amp;quot;knows&amp;quot; that, ie I can use the
'-march=haswell -mtune=haswell' GCC options.  unsure about &amp;quot;performance boost&amp;quot;
:-).


regards, jr.
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 9 Nov 2025 12:50:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.69108d631a1716b0475fba6a6cde94f1%40news.povray.org%3E/#%3Cweb.69108d631a1716b0475fba6a6cde94f1%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.69108d631a1716b0475fba6a6cde94f1%40news.povray.org%3E/#%3Cweb.69108d631a1716b0475fba6a6cde94f1%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Getting the most from CPU [158 days 2 hours and 30 minutes ago]</title>
		<description>
&lt;pre&gt;Now, after successfully build of 3.8.0-beta2 for my home dated
Intel(R) Core(TM) i5 CPU 750 @ 2.67GHz, I would like to ask you how to
make a build for powerful architecture which supports more advanced
instructions set.

If I understand well, CPU optimization is switched on by default. The
question is: how to get the most from a particular CPU - are there any
options or defines to turn on support of particular architecture
features ?

Now I see in the following, when asking 'povray --help':
Dynamic optimizations:
CPU detected: AMD,FMA4
Noise generator: generic (portable)
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 9 Nov 2025 11:43:18 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C69107e56%241%40news.povray.org%3E/#%3C69107e56%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C69107e56%241%40news.povray.org%3E/#%3C69107e56%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[jr] Re: 3.8.0-beta.2 - illegal instruction [159 days and 14 minutes ago]</title>
		<description>
&lt;pre&gt;hi,

William F Pokorny &amp;lt;ano###&amp;nbsp;[at]&amp;nbsp;anonymous&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;org&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; 2) Both the default unix build and the build script jr provided use&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; -ffast-math. There are a number of flaky fails due recent compiler&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; changes to what -ffast-math does. Change that flag to: -fno-fast-math or&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; add the flag -fno-finite-math-only to your CXXFLAGS and try another build.&lt;/span&gt;

thanks !


@yesbird
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; The .configure option that helps was '-disable-optimiz'.&lt;/span&gt;

good that you found a work-around.


regards, jr.
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 8 Nov 2025 14:00:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.690f4c6c7b122386475fba6a6cde94f1%40news.povray.org%3E/#%3Cweb.690f4c6c7b122386475fba6a6cde94f1%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.690f4c6c7b122386475fba6a6cde94f1%40news.povray.org%3E/#%3Cweb.690f4c6c7b122386475fba6a6cde94f1%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: 3.8.0-beta.2 - illegal instruction [159 days 1 hour and 8 minutes ago]</title>
		<description>
&lt;pre&gt;On 08/11/2025 14:59, William F Pokorny wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; There can be many causes for what you are seeing. Things you might try:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ... &lt;/span&gt;

Many thanks for such a detailed response, I will put these tips to my
'internal storage' ).

The .configure option that helps was '-disable-optimiz'.
Probably I was too lazy to run:
./configure --help

and examine output, instead of disturbing the community, sorry for
inconvenience.
-- 
YB
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 8 Nov 2025 13:05:26 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C690f4016%241%40news.povray.org%3E/#%3C690f4016%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C690f4016%241%40news.povray.org%3E/#%3C690f4016%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[William F Pokorny] Re: 3.8.0-beta.2 - illegal instruction [159 days 2 hours and 14 minutes ago]</title>
		<description>
&lt;pre&gt;On 11/8/25 02:55, yesbird wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; On 08/11/2025 12:32, jr wrote:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; unsure even what you mean.&amp;#194;&amp;#160; there are some bits of the source which are&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; &amp;quot;hand-optimised&amp;quot; for specific CPU types, but the detection &amp;amp; inclusion is&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; automatic.&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; either way, I've attached another &amp;quot;hack&amp;quot;[*] &amp;lt;/grin&amp;gt;, a beta.2 build &lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; script.&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; [*] anyway, works.&amp;#194;&amp;#160; &amp;lt;/shrug&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Unfortunately results is the same: &amp;quot;no result&amp;quot;.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ---------------------------------------------------------------------&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ./unix/povray +i./scenes/advanced/biscuit.pov -f +d +p +v +w320 +h240 &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; +a0.3 +L./include&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; make: *** [Makefile:1089: check] Illegal instruction (core dumped)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ---------------------------------------------------------------------&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; YB&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;

There can be many causes for what you are seeing. Things you might try:

1) Download the latest yuqk tarball at:

https://news.povray.org/povray.binaries.programming/thread/%3C67eba626%40news.povray.org%3E/

Unpack it and run:

./configure -q COMPILED_BY=&amp;quot;YB_yuqk&amp;quot; CXXFLAGS=&amp;quot;-std=c++17&amp;quot;
make -j4
make check

The yuqk fork ships without any compiler optimizations during 
./configure - aside from the cpu specific noise code where it has fixed 
some 'gnu compiler broken' cpu detection code.

2) Both the default unix build and the build script jr provided use 
-ffast-math. There are a number of flaky fails due recent compiler 
changes to what -ffast-math does. Change that flag to: -fno-fast-math or 
add the flag -fno-finite-math-only to your CXXFLAGS and try another build.

3) You can try a configure with the defines:

-DDISABLE_OPTIMIZED_NOISE_AVXFMA4 -DDISABLE_OPTIMIZED_NOISE_AVX2FMA3 
-DISABLE_OPTIMIZED_NOISE_AVX

Which 'should' turn off any use of the cpu target specific hand 
optimized code - but they might not turn off the dynamic cpu detection 
code which runs ahead of the hand optimized code (I don't remember).

There is too a -DDISABLE_OPTIMIZED_NOISE_AVX_PORTABLE, but my memory is 
fuzzy as to what that means - probably harmless to add it to those above.

4) At a terminal after a illegal instruction problem build, are you able 
to run:

./unix/povray --help

If so, try each of:

touch bogus.pov; ./unix/povray bogus.pov -d +p

touch bogus.pov; ./unix/povray bogus.pov -d -p

touch bogus.pov; ./unix/povray bogus.pov -d +p -fn

Bill P.
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 8 Nov 2025 11:59:11 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C690f308f%241%40news.povray.org%3E/#%3C690f308f%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C690f308f%241%40news.povray.org%3E/#%3C690f308f%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: 3.8.0-beta.2 - illegal instruction [159 days 3 hours and 18 minutes ago]</title>
		<description>
&lt;pre&gt;On 08/11/2025 12:32, jr wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; unsure even what you mean.  there are some bits of the source which are&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;quot;hand-optimised&amp;quot; for specific CPU types, but the detection &amp;amp; inclusion is&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; automatic.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; either way, I've attached another &amp;quot;hack&amp;quot;[*] &amp;lt;/grin&amp;gt;, a beta.2 build script.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; [*] anyway, works.  &amp;lt;/shrug&amp;gt;&lt;/span&gt;


Unfortunately results is the same: &amp;quot;no result&amp;quot;.
---------------------------------------------------------------------
./unix/povray +i./scenes/advanced/biscuit.pov -f +d +p +v +w320 +h240 
+a0.3 +L./include
make: *** [Makefile:1089: check] Illegal instruction (core dumped)
---------------------------------------------------------------------
YB
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 8 Nov 2025 10:55:34 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C690f21a6%241%40news.povray.org%3E/#%3C690f21a6%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C690f21a6%241%40news.povray.org%3E/#%3C690f21a6%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[jr] Re: 3.8.0-beta.2 - illegal instruction [159 days 4 hours and 39 minutes ago]</title>
		<description>
&lt;pre&gt;yesbird wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Thanks, jr, for the fast reply, I will try it, but this solution looks&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; like, a hack.&lt;/span&gt;

well, it is for WFP's &amp;quot;yuqk&amp;quot; fork :-).


&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I'd prefer 'official' method to control usage of advanced&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; CPU instructions, via config parameters.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Don't you know, if it's possible ?&lt;/span&gt;

unsure even what you mean.  there are some bits of the source which are
&amp;quot;hand-optimised&amp;quot; for specific CPU types, but the detection &amp;amp; inclusion is
automatic.

either way, I've attached another &amp;quot;hack&amp;quot;[*] &amp;lt;/grin&amp;gt;, a beta.2 build script.

[*] anyway, works.  &amp;lt;/shrug&amp;gt;


regards, jr.
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 8 Nov 2025 09:35:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.690f0e2f7b122386475fba6a6cde94f1%40news.povray.org%3E/#%3Cweb.690f0e2f7b122386475fba6a6cde94f1%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.690f0e2f7b122386475fba6a6cde94f1%40news.povray.org%3E/#%3Cweb.690f0e2f7b122386475fba6a6cde94f1%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: 3.8.0-beta.2 - illegal instruction [159 days 5 hours and 3 minutes ago]</title>
		<description>
&lt;pre&gt;On 08/11/2025 10:11, jr wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I published build scripts once or twice, see link.  write if further problems.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;lt;news.povray.org/web.660c3b34a01057ea1686e436cde94f1%40news.povray.org&amp;gt;&lt;/span&gt;

Thanks, jr, for the fast reply, I will try it, but this solution looks
like, a hack. I'd prefer 'official' method to control usage of advanced
CPU instructions, via config parameters.

Don't you know, if it's possible ?
-- 
YB
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 8 Nov 2025 09:10:57 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C690f0921%241%40news.povray.org%3E/#%3C690f0921%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C690f0921%241%40news.povray.org%3E/#%3C690f0921%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[jr] Re: 3.8.0-beta.2 - illegal instruction [159 days 6 hours and 59 minutes ago]</title>
		<description>
&lt;pre&gt;hi,

yesbird wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Greetings !&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I am trying to build official beta from this tarball:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; povunix-v3.8.0-beta.2-src.tar.gz.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Build is successful, but on runtime I am getting following error:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Illegal instruction (core dumped).&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I guess that by default 'configure' turns on support for modern&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; instructions, that my CPU is not supported, so what is the best way&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; to control them and avoid this error ?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; My present environment is following:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Intel(R) Core(TM) i5 CPU  750  @ 2.67GHz&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Ubuntu 24.04.3 LTS&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; --&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; YB&lt;/span&gt;

I published build scripts once or twice, see link.  write if further problems.
&amp;lt;news.povray.org/web.660c3b34a01057ea1686e436cde94f1%40news.povray.org&amp;gt;


regards, jr.
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 8 Nov 2025 07:15:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.690eed3d7b122386475fba6a6cde94f1%40news.povray.org%3E/#%3Cweb.690eed3d7b122386475fba6a6cde94f1%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.690eed3d7b122386475fba6a6cde94f1%40news.povray.org%3E/#%3Cweb.690eed3d7b122386475fba6a6cde94f1%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] 3.8.0-beta.2 - illegal instruction [159 days 13 hours and 36 minutes ago]</title>
		<description>
&lt;pre&gt;Greetings !

I am trying to build official beta from this tarball:
povunix-v3.8.0-beta.2-src.tar.gz.

Build is successful, but on runtime I am getting following error:
Illegal instruction (core dumped).

I guess that by default 'configure' turns on support for modern
instructions, that my CPU is not supported, so what is the best way
to control them and avoid this error ?

My present environment is following:
Intel(R) Core(TM) i5 CPU  750  @ 2.67GHz
Ubuntu 24.04.3 LTS
-- 
YB
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 8 Nov 2025 00:37:17 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C690e90bd%241%40news.povray.org%3E/#%3C690e90bd%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C690e90bd%241%40news.povray.org%3E/#%3C690e90bd%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Francois LE COAT] Re: Optical Inertia [162 days 22 hours and 59 minutes ago]</title>
		<description>
&lt;pre&gt;Hi,

Francois LE COAT writes:
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; Here's a drone's long flight through the forest in France...&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;https://www.youtube.com/watch?v=f_Zi811qWFI&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; We're in rather complicated lighting conditions, with shadows and&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; clouds. Hence the significant noise in the video. The optical-flow&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; (DIS - OpenCV) that allows the determination of monocular depth&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; performs rather well. Mathematicians refer to this determination&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; as an &amp;quot;ill-posed problem&amp;quot;. But statistically, for the large images&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; we're dealing with, it works well :-)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Here's a sequence of images from a drone in the forest.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;https://www.youtube.com/watch?v=gOAwt0I7GNE&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; These image computing looks like SLAM (Simultaneous Localization and&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Mapping) method. We obtain both the location (trajectory) and the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; visible relief (3D depth map). However, we're dealing with a monocular&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; (single camera) image sequence, not a stereoscopic (human vision) one.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Here's the drone's trajectory in space: &amp;lt;https://skfb.ly/pCyBy&amp;gt;&lt;/span&gt;

Here's a sequence of images from a drone in the forest:

	&amp;lt;https://www.youtube.com/watch?v=ToRk-o1cD_4&amp;gt;

This image computing looks like SLAM (Simultaneous Localization and
Mapping) method. We obtain both the location (trajectory) and the
visible relief (3D depth map). However, we're dealing with a monocular
(single camera) image sequence, not a stereoscopic (human vision) one.

The question that arises, then, is why do highly accurate inertial
navigation systems drift? Why are loop-closing methods, used with the
SLAM algorithm? Would an optical inertial navigation system be subject
to drift in the trajectory it estimates? That's debatable, isn't it?

Best regards,

-- 
Fran&amp;#231;ois LE COAT
&amp;lt;https://eureka.atari.org/&amp;gt;
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 4 Nov 2025 15:15:04 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C690a1878%241%40news.povray.org%3E/#%3C690a1878%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C690a1878%241%40news.povray.org%3E/#%3C690a1878%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Francois LE COAT] Re: Optical Inertia [176 days 23 hours and 39 minutes ago]</title>
		<description>
&lt;pre&gt;Hi,

Francois LE COAT wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Here's a drone's long flight through the forest in France...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;https://www.youtube.com/watch?v=f_Zi811qWFI&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; We're in rather complicated lighting conditions, with shadows and&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; clouds. Hence the significant noise in the video. The optical-flow&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; (DIS - OpenCV) that allows the determination of monocular depth&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; performs rather well. Mathematicians refer to this determination&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; as an &amp;quot;ill-posed problem&amp;quot;. But statistically, for the large images&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; we're dealing with, it works well :-)&lt;/span&gt;

Here's a sequence of images from a drone in the forest.

	&amp;lt;https://www.youtube.com/watch?v=gOAwt0I7GNE&amp;gt;

These image computing looks like SLAM (Simultaneous Localization and
Mapping) method. We obtain both the location (trajectory) and the
visible relief (3D depth map). However, we're dealing with a monocular
(single camera) image sequence, not a stereoscopic (human vision) one.

Here's the drone's trajectory in space: &amp;lt;https://skfb.ly/pCyBy&amp;gt;

Best regards,

-- 
Fran&amp;#231;ois LE COAT
&amp;lt;https://eureka.atari.org/&amp;gt;
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 21 Oct 2025 14:35:05 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C68f79a19%241%40news.povray.org%3E/#%3C68f79a19%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C68f79a19%241%40news.povray.org%3E/#%3C68f79a19%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Cross products in different coordinate syste... [177 days 18 hours and 14 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;jr&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; the latter (imo), re-order the components.&lt;/span&gt;


Actually, the answer is:  do nothing.

If we were importing/converting the DATA from one system to the other, then we
would need to change the vector components to reflect this and make everything
work properly.

When we're using the RH data in the RH coordinate space, or using the LH data in
the LH coordinate space, the code and vector functions remain unchanged.

(As mentioned in another thread, things got derailed when I had R instead of r,
so the normals were pointing every which way, and my isosurface wasn't behaving
properly either, so that just added to the confusion.)

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 20 Oct 2025 20:00:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.68f6940b4edf7378438b893125979125%40news.povray.org%3E/#%3Cweb.68f6940b4edf7378438b893125979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.68f6940b4edf7378438b893125979125%40news.povray.org%3E/#%3Cweb.68f6940b4edf7378438b893125979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[jr] Re: Cross products in different coordinate syste... [178 days 20 hours and 59 minutes ago]</title>
		<description>
&lt;pre&gt;hi,

&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Let's suppose that I have code that uses vector cross products in a z-up&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; y-forward system.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Now I want replicate the code in our y-up, z-forward system to accomplish the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; same task.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;             What is the best / most efficient way to do this?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Do I need to re-order the vectors in the vcross (A, B) function?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; or&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; do I actually need to change the vector coordinates that I'm using&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; so that z-up &amp;lt;X, Y, Z&amp;gt; = y-up &amp;lt;X, Z, -Y&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I want something sane, ...&lt;/span&gt;

the latter (imo), re-order the components.


regards, jr.
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 19 Oct 2025 17:15:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.68f51c3e4edf73786ddd22546cde94f1%40news.povray.org%3E/#%3Cweb.68f51c3e4edf73786ddd22546cde94f1%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.68f51c3e4edf73786ddd22546cde94f1%40news.povray.org%3E/#%3Cweb.68f51c3e4edf73786ddd22546cde94f1%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Cross products in different coordinate systems. [179 days 14 hours and 39 minutes ago]</title>
		<description>
&lt;pre&gt;Let's suppose that I have code that uses vector cross products in a z-up
y-forward system.

Now I want replicate the code in our y-up, z-forward system to accomplish the
same task.

            What is the best / most efficient way to do this?

Do I need to re-order the vectors in the vcross (A, B) function?

or

do I actually need to change the vector coordinates that I'm using
so that z-up &amp;lt;X, Y, Z&amp;gt; = y-up &amp;lt;X, Z, -Y&amp;gt;

I want something sane, for production code.  Not something hacktastic.

- BE
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 18 Oct 2025 23:35:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.68f423c95edf66ec1f9dae3025979125%40news.povray.org%3E/#%3Cweb.68f423c95edf66ec1f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.68f423c95edf66ec1f9dae3025979125%40news.povray.org%3E/#%3Cweb.68f423c95edf66ec1f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: mesh_camera [186 days 23 hours and 12 minutes ago]</title>
		<description>
&lt;pre&gt;On 11/10/2025 14:18, yesbird wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; If you want to finish it finally, try Three.js and I will share my&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; project as template :).&lt;/span&gt;

Or just use this viewer, as PB do:
https://krpano.com/download/
-- 
YB
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 11 Oct 2025 15:01:08 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C68ea7134%241%40news.povray.org%3E/#%3C68ea7134%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C68ea7134%241%40news.povray.org%3E/#%3C68ea7134%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: mesh_camera [186 days 23 hours and 55 minutes ago]</title>
		<description>
&lt;pre&gt;On 11/10/2025 16:54, ingo wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; yesbird wrote:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; On 11/10/2025 07:02, Paul Bourke wrote:&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; A closing remark ... all working. user_defined camera is BRILLIANT!&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; More details here&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt;      https://paulbourke.net/stereoscopy/pov_odsp/&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; Many thanks for sharing results of your investigation,&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; here is a live illustration to your paper:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; https://povlab.yesbird.online/pb/odsp/&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; --&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; YB&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Nice. Next, render it as tiles and use a tile server to zoom in&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; https://leafletjs.com/index.html&lt;/span&gt;

Thanks, I was working with 'leafletjs', but it designed for flat maps,
while Three.js, which I am using now, for 3D and XR. The more zooming
can be achieved by scaling texture, if necessary.

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I tried that with an udcBox camera that shows the six sides of a box from&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; within. It failed, running a simple animation for all the frames was easier. The&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; project never finished ...&lt;/span&gt;

If you want to finish it finally, try Three.js and I will share my
project as template :).
-- 
YB
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 11 Oct 2025 14:18:18 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C68ea672a%40news.povray.org%3E/#%3C68ea672a%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C68ea672a%40news.povray.org%3E/#%3C68ea672a%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[ingo] Re: mesh_camera [187 days and 19 minutes ago]</title>
		<description>
&lt;pre&gt;yesbird wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; On 11/10/2025 07:02, Paul Bourke wrote:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; A closing remark ... all working. user_defined camera is BRILLIANT!&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; More details here&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt;     https://paulbourke.net/stereoscopy/pov_odsp/&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Many thanks for sharing results of your investigation,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; here is a live illustration to your paper:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; https://povlab.yesbird.online/pb/odsp/&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; --&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; YB&lt;/span&gt;

Nice. Next, render it as tiles and use a tile server to zoom in
https://leafletjs.com/index.html

I tried that with an udcBox camera that shows the six sides of a box from
within. It failed, running a simple animation for all the frames was easier. The
project never finished ...

ingo
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 11 Oct 2025 13:55:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.68ea61aee548611c17bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.68ea61aee548611c17bac71e8ffb8ce3%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.68ea61aee548611c17bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.68ea61aee548611c17bac71e8ffb8ce3%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: mesh_camera [187 days and 48 minutes ago]</title>
		<description>
&lt;pre&gt;On 11/10/2025 07:02, Paul Bourke wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; A closing remark ... all working. user_defined camera is BRILLIANT!&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; More details here&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;     https://paulbourke.net/stereoscopy/pov_odsp/&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;

Many thanks for sharing results of your investigation,
here is a live illustration to your paper:
https://povlab.yesbird.online/pb/odsp/
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 11 Oct 2025 13:25:44 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C68ea5ad8%241%40news.povray.org%3E/#%3C68ea5ad8%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C68ea5ad8%241%40news.povray.org%3E/#%3C68ea5ad8%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[ingo] Re: mesh_camera [187 days 9 hours and 9 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Paul Bourke&amp;quot; &amp;lt;pau###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    https://paulbourke.net/stereoscopy/pov_odsp/&lt;/span&gt;

Nice. It's a powerful thing the user defined camera.

ingo
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 11 Oct 2025 05:05:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.68e9e452e548611c17bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.68e9e452e548611c17bac71e8ffb8ce3%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.68e9e452e548611c17bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.68e9e452e548611c17bac71e8ffb8ce3%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Paul Bourke] Re: mesh_camera [187 days 10 hours and 9 minutes ago]</title>
		<description>
&lt;pre&gt;&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Actually while I had no luck with HgPovray38, Povray version 3.8 built easily.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Now to try the user-defined camera.&lt;/span&gt;

A closing remark ... all working. user_defined camera is BRILLIANT!
More details here
   https://paulbourke.net/stereoscopy/pov_odsp/
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 11 Oct 2025 04:05:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.68e9d6f3e548611cf518fc70784a083c%40news.povray.org%3E/#%3Cweb.68e9d6f3e548611cf518fc70784a083c%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.68e9d6f3e548611cf518fc70784a083c%40news.povray.org%3E/#%3Cweb.68e9d6f3e548611cf518fc70784a083c%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Paul Bourke] Re: mesh_camera [188 days 15 hours and 19 minutes ago]</title>
		<description>
&lt;pre&gt;&lt;span class=&quot;RC1&quot;&gt;&amp;gt; But now back to building 3.8 on MacOS, preferably without the GUI. Anyone with&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; more skills than I have done this? I didn't succeed with HgPovray38 but perhaps&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; the base 3.8 version?&lt;/span&gt;

Actually while I had no luck with HgPovray38, Povray version 3.8 built easily.
Now to try the user-defined camera.
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 9 Oct 2025 22:55:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.68e83c3fe548611cf518fc70784a083c%40news.povray.org%3E/#%3Cweb.68e83c3fe548611cf518fc70784a083c%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.68e83c3fe548611cf518fc70784a083c%40news.povray.org%3E/#%3Cweb.68e83c3fe548611cf518fc70784a083c%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Paul Bourke] Re: mesh_camera [189 days 5 hours and 14 minutes ago]</title>
		<description>
&lt;pre&gt;&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Have you looked at the &amp;quot;User defined projection&amp;quot; in POV-Ray 3.8?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; https://wiki.povray.org/content/Reference:Camera#User_defined_projection&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; An ODS camera has been built with it:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; https://www.clodo.it/blog/omnidirectional-stereo-ods-with-pov-ray/&lt;/span&gt;

Ahhhh, that would be PEFECT. Easy to modify that example to create cylindrical
rather than equirectangular ODSP.

But now back to building 3.8 on MacOS, preferably without the GUI. Anyone with
more skills than I have done this? I didn't succeed with HgPovray38 but perhaps
the base 3.8 version?
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 9 Oct 2025 09:00:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.68e77875e548611cf518fc70784a083c%40news.povray.org%3E/#%3Cweb.68e77875e548611cf518fc70784a083c%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.68e77875e548611cf518fc70784a083c%40news.povray.org%3E/#%3Cweb.68e77875e548611cf518fc70784a083c%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: mesh_camera [189 days 5 hours and 40 minutes ago]</title>
		<description>
&lt;pre&gt;On 09/10/2025 06:30, Paul Bourke wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Yes, the &amp;quot;Omni Directional Stereo camera&amp;quot; in HGPOVRAY38 is what I'm looking for,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; but while building version 3.7 works out of the box on MacOS, I haven't been&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; able to build HGPOVRAY38 yet. Anyone done this? Preferably just the command line&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; version, no gui.&lt;/span&gt;

I've built it for Windows and Ubuntu 24.04, if you have some issues
building for MacOS, please send details and I will try to help,
although, unfortunately, I have no MacOS platform.
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 9 Oct 2025 08:33:12 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C68e77348%40news.povray.org%3E/#%3C68e77348%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C68e77348%40news.povray.org%3E/#%3C68e77348%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[ingo] Re: mesh_camera [189 days 8 hours and 34 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Paul Bourke&amp;quot; &amp;lt;pau###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;quot;Omni Directional Stereo camera&amp;quot;&lt;/span&gt;

Have you looked at the &amp;quot;User defined projection&amp;quot; in POV-Ray 3.8?

https://wiki.povray.org/content/Reference:Camera#User_defined_projection

An ODS camera has been built with it:

https://www.clodo.it/blog/omnidirectional-stereo-ods-with-pov-ray/

ingo
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 9 Oct 2025 05:40:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.68e749f7e548611c17bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.68e749f7e548611c17bac71e8ffb8ce3%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.68e749f7e548611c17bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.68e749f7e548611c17bac71e8ffb8ce3%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Paul Bourke] Re: mesh_camera [189 days 10 hours and 39 minutes ago]</title>
		<description>
&lt;pre&gt;&lt;span class=&quot;RC1&quot;&gt;&amp;gt; In my Mesh Camera experiments I stole some code from Jaime Vives&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Piqueres on how to save the meshes to files once I had generated them so&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; subsequent renders went faster.&lt;/span&gt;

I saw your work and examples, it was useful when I started exploring the
mesh_camera, so thanks.

I'm creating them as an inc file also, except I'm creating them from C/C++.

But the issue remains, for high resolution images reading the mesh data is slow.
But without (efficient) antialiasing I've decided to drop this as an option.
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 9 Oct 2025 03:35:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.68e72d48e548611cf518fc70784a083c%40news.povray.org%3E/#%3Cweb.68e72d48e548611cf518fc70784a083c%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.68e72d48e548611cf518fc70784a083c%40news.povray.org%3E/#%3Cweb.68e72d48e548611cf518fc70784a083c%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Paul Bourke] Re: mesh_camera [189 days 10 hours and 39 minutes ago]</title>
		<description>
&lt;pre&gt;yesbird wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; On 06/10/2025 10:01, Paul Bourke wrote:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; I have the need for a custom camera, specifically an omni directional&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; stereoscopic panorama (cylindrical, not equirectangular). ...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I remember your 'Market' project:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; https://povlab.yesbird.online/pb/&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; For rendering this animation I used HgPovray38:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; https://github.com/LeForgeron/povray&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; with Omni Directional Stereo camera:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; https://wiki.povray.org/content/User:Le_Forgeron/cameras&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; and then, applied video to cylinders with Three.js.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I guess the projection is fine and without noticeable distortions.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; After exploring mesh cameras I switched to HgPovray, as a more reliable&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; solution.&lt;/span&gt;

Yes, the &amp;quot;Omni Directional Stereo camera&amp;quot; in HGPOVRAY38 is what I'm looking for,
but while building version 3.7 works out of the box on MacOS, I haven't been
able to build HGPOVRAY38 yet. Anyone done this? Preferably just the command line
version, no gui.
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 9 Oct 2025 03:35:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.68e72c5fe548611cf518fc70784a083c%40news.povray.org%3E/#%3Cweb.68e72c5fe548611cf518fc70784a083c%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.68e72c5fe548611cf518fc70784a083c%40news.povray.org%3E/#%3Cweb.68e72c5fe548611cf518fc70784a083c%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Paul Bourke] Re: mesh_camera [189 days 10 hours and 44 minutes ago]</title>
		<description>
&lt;pre&gt;&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Hi! Wouldn't using stochastic sampling (&amp;quot;AM3&amp;quot;) with zero value for aa but a tiny&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; camera depth of field &amp;quot;aperture&amp;quot; so that you can keep its sample count minimal&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; between 3 and 5, the whole thing focused at the distance of your cylinder's&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; surface do the trick for you ? (I often ended uo using no aa and using only&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; aperture instead in the cases where I wanted some really photographic look&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; anyway. and it ended being a better trade off.&lt;/span&gt;

Antialiasing is not about depth of field.
The distance to the cylinder is related to where zero parallax in the ODSP.

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Otherwise, Le Forgeron's branch (HGPOVRAY38) has many additional camera types,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; (among which a stereo one) does none suit your use?&lt;/span&gt;

Yes, the &amp;quot;Omni Directional Stereo camera&amp;quot; in HGPOVRAY38 is what I'm looking for,
but while building version 3.7 works out of the box on MacOS, I haven't been
able to build HGPOVRAY38 yet. Anyone done this? Preferably just the command line
version, no gui.
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 9 Oct 2025 03:30:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.68e72c25e548611cf518fc70784a083c%40news.povray.org%3E/#%3Cweb.68e72c25e548611cf518fc70784a083c%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.68e72c25e548611cf518fc70784a083c%40news.povray.org%3E/#%3Cweb.68e72c25e548611cf518fc70784a083c%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Vertex colors rendering [190 days 10 hours and 40 minutes ago]</title>
		<description>
&lt;pre&gt;On 30/09/2025 03:39, yesbird wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Working on file converter, I am importing vertex colors from FBX,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; but cant figure out why POV-Ray rendering is so much different from&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ZBrush. Maybe there is a way to control color distribution and&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; smoothness ?&lt;/span&gt;
The reason was in gamma setting, attached image was rendered with
'assumed_gamma = 3'.
-- 
YB
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 8 Oct 2025 03:33:36 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C68e5db90%40news.povray.org%3E/#%3C68e5db90%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C68e5db90%40news.povray.org%3E/#%3C68e5db90%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Josh English] Re: mesh_camera [191 days 22 hours and 54 minutes ago]</title>
		<description>
&lt;pre&gt;On 10/6/2025 12:01 AM, Paul Bourke wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I have the need for a custom camera, specifically an omni directional&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; stereoscopic panorama (cylindrical, not equirectangular). I've done this in the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; long distant past by modifying the source and building my own version.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I thought I would try the mesh_camera but it seems not as useful as I imagined.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I can readily create the meshes and am getting the right results but ...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; 1. Loading the mesh takes a very long time for high resolution images. The LED&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; cylinder I'm creating for is 12816x2048 pixels, even for 1/4 resolution tests&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; the mesh loading takes longer than the rendering and it's probably 16x longer&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; for the full resolution.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; 2. Is there there still no efficient/clean way to do antialising.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Am I missing something?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
In my Mesh Camera experiments I stole some code from Jaime Vives 
Piqueres on how to save the meshes to files once I had generated them so 
subsequent renders went faster.

The only way I've found to anti-alias is to use multiple copies of the 
mesh moved along the view plane. This also allowed for focal blur and 
motion blur. Since meshes are quick to copy this doesn't add a lot of 
overload.

I've started to experiment with the user-defined camera but I'm not 
getting results yet. The user-defined camera supposedly supports 
anti-aliasing.

Josh
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 6 Oct 2025 15:19:41 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C68e3de0d%40news.povray.org%3E/#%3C68e3de0d%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C68e3de0d%40news.povray.org%3E/#%3C68e3de0d%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: mesh_camera [192 days and 55 minutes ago]</title>
		<description>
&lt;pre&gt;On 06/10/2025 10:01, Paul Bourke wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I have the need for a custom camera, specifically an omni directional&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; stereoscopic panorama (cylindrical, not equirectangular). ...&lt;/span&gt;
I remember your 'Market' project:
https://povlab.yesbird.online/pb/

For rendering this animation I used HgPovray38:
https://github.com/LeForgeron/povray
with Omni Directional Stereo camera:
https://wiki.povray.org/content/User:Le_Forgeron/cameras
and then, applied video to cylinders with Three.js.

I guess the projection is fine and without noticeable distortions.
After exploring mesh cameras I switched to HgPovray, as a more reliable
solution.
-- 
YB
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 6 Oct 2025 13:18:14 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C68e3c196%241%40news.povray.org%3E/#%3C68e3c196%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C68e3c196%241%40news.povray.org%3E/#%3C68e3c196%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Mr] Re: mesh_camera [192 days 2 hours and 34 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Paul Bourke&amp;quot; &amp;lt;pau###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I have the need for a custom camera, specifically an omni directional&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; stereoscopic panorama (cylindrical, not equirectangular). I've done this in the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; long distant past by modifying the source and building my own version.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I thought I would try the mesh_camera but it seems not as useful as I imagined.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I can readily create the meshes and am getting the right results but ...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; 1. Loading the mesh takes a very long time for high resolution images. The LED&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; cylinder I'm creating for is 12816x2048 pixels, even for 1/4 resolution tests&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; the mesh loading takes longer than the rendering and it's probably 16x longer&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; for the full resolution.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; 2. Is there there still no efficient/clean way to do antialising.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Am I missing something?&lt;/span&gt;

Hi! Wouldn't using stochastic sampling (&amp;quot;AM3&amp;quot;) with zero value for aa but a tiny
camera depth of field &amp;quot;aperture&amp;quot; so that you can keep its sample count minimal
between 3 and 5, the whole thing focused at the distance of your cylinder's
surface do the trick for you ? (I often ended uo using no aa and using only
aperture instead in the cases where I wanted some really photographic look
anyway. and it ended being a better trade off.

Otherwise, Le Forgeron's branch (HGPOVRAY38) has many additional camera types,
(among which a stereo one) does none suit your use?
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 6 Oct 2025 11:40:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.68e3aa17e548611c16086ed06830a892%40news.povray.org%3E/#%3Cweb.68e3aa17e548611c16086ed06830a892%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.68e3aa17e548611c16086ed06830a892%40news.povray.org%3E/#%3Cweb.68e3aa17e548611c16086ed06830a892%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Paul Bourke] mesh_camera [192 days 7 hours and 9 minutes ago]</title>
		<description>
&lt;pre&gt;I have the need for a custom camera, specifically an omni directional
stereoscopic panorama (cylindrical, not equirectangular). I've done this in the
long distant past by modifying the source and building my own version.

I thought I would try the mesh_camera but it seems not as useful as I imagined.
I can readily create the meshes and am getting the right results but ...

1. Loading the mesh takes a very long time for high resolution images. The LED
cylinder I'm creating for is 12816x2048 pixels, even for 1/4 resolution tests
the mesh loading takes longer than the rendering and it's probably 16x longer
for the full resolution.

2. Is there there still no efficient/clean way to do antialising.

Am I missing something?
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 6 Oct 2025 07:05:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.68e3695d526a3701f518fc70784a083c%40news.povray.org%3E/#%3Cweb.68e3695d526a3701f518fc70784a083c%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.68e3695d526a3701f518fc70784a083c%40news.povray.org%3E/#%3Cweb.68e3695d526a3701f518fc70784a083c%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Vertex colors rendering [198 days 11 hours and 39 minutes ago]</title>
		<description>
&lt;pre&gt;On 30/09/2025 04:54, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; OK - I think that also maybe the colors for your vertices are done wrong.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;

No, now I see that the problem is not in POV-Ray - 3js renders this
cube the same way (attached). Sorry for inconvenience.
-- 
YB
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 30 Sep 2025 02:34:34 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C68db41ba%40news.povray.org%3E/#%3C68db41ba%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C68db41ba%40news.povray.org%3E/#%3C68db41ba%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Vertex colors rendering [198 days 12 hours ago]</title>
		<description>
&lt;pre&gt;On 30/09/2025 04:54, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; OK - I think that also maybe the colors for your vertices are done wrong.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Make your top left and bottom right four vertices white&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; top right two vertices blue&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; bottom left two vertices green&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
Thanks, it looks much better !
I've checked it already, but see now any errors, will try again.
-- 
YB
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 30 Sep 2025 02:14:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C68db3ce8%241%40news.povray.org%3E/#%3C68db3ce8%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C68db3ce8%241%40news.povray.org%3E/#%3C68db3ce8%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Vertex colors rendering [198 days 12 hours and 3 minutes ago]</title>
		<description>
&lt;pre&gt;On 30/09/2025 04:21, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; You might not want to color by vertex.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ...&lt;/span&gt;

Thanks for the suggestion, but I would like to keep vertex colors for
more complicated paintings, then trivial gradients.

Increasing number of polygons solves this problem and it looks fine
now, but don't you know how to make colors more saturated ?

Please, look at attachments.
-- 
YB
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 30 Sep 2025 02:10:31 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C68db3c17%40news.povray.org%3E/#%3C68db3c17%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C68db3c17%40news.povray.org%3E/#%3C68db3c17%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Vertex colors rendering [198 days 12 hours and 19 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; That's all I have - for the moment.&lt;/span&gt;

OK - I think that also maybe the colors for your vertices are done wrong.

Make your top left and bottom right four vertices white
top right two vertices blue
bottom left two vertices green


#declare model = mesh2 {
vertex_vectors {
  8,
  &amp;lt;-0.20000000298023224,0.20000000298023224,0.20000000298023224&amp;gt;, // 0 Left Top
Rear
  &amp;lt;0.20000000298023224,0.20000000298023224,0.20000000298023224&amp;gt;,  // 1 Right Top
Rear
  &amp;lt;0.20000000298023224,0.20000000298023224,-0.20000000298023224&amp;gt;, // 2 Right Top
Front
  &amp;lt;-0.20000000298023224,0.20000000298023224,-0.20000000298023224&amp;gt;, // 3 Left Top
Front
  &amp;lt;-0.20000000298023224,-0.20000000298023224,0.20000000298023224&amp;gt;, // 4 Left
Bottom Rear
  &amp;lt;0.20000000298023224,-0.20000000298023224,0.20000000298023224&amp;gt;, // 5 Right
Bottom Rear
  &amp;lt;0.20000000298023224,-0.20000000298023224,-0.20000000298023224&amp;gt;, // 6 Right
Bottom Front
  &amp;lt;-0.20000000298023224,-0.20000000298023224,-0.20000000298023224&amp;gt;, // 7 Left
Bottom Front
  }

texture_list {
 8,
 texture{pigment{rgb 1}}
 texture{pigment{rgb z}}
 texture{pigment{rgb z}}
 texture{pigment{rgb 1}}
 texture{pigment{rgb y}}
 texture{pigment{rgb 1}}
 texture{pigment{rgb 1}}
 texture{pigment{rgb y}}
}

face_indices {
  12,
  &amp;lt;0,1,2&amp;gt;, 0,1,2,
  &amp;lt;2,3,0&amp;gt;, 2,3,0,
  &amp;lt;4,5,1&amp;gt;, 4,5,1,
  &amp;lt;1,0,4&amp;gt;, 1,0,4,
  &amp;lt;5,6,2&amp;gt;, 5,6,2,
  &amp;lt;2,1,5&amp;gt;, 2,1,5,
  &amp;lt;6,7,3&amp;gt;, 6,7,3,
  &amp;lt;3,2,6&amp;gt;, 3,2,6,
  &amp;lt;7,4,0&amp;gt;, 7,4,0,
  &amp;lt;0,3,7&amp;gt;, 0,3,7,
  &amp;lt;7,6,5&amp;gt;, 7,6,5,
  &amp;lt;5,4,7&amp;gt;, 5,4,7,
  }
}
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 30 Sep 2025 01:55:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.68db383c87a1b5a91f9dae3025979125%40news.povray.org%3E/#%3Cweb.68db383c87a1b5a91f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.68db383c87a1b5a91f9dae3025979125%40news.povray.org%3E/#%3Cweb.68db383c87a1b5a91f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Vertex colors rendering [198 days 12 hours and 34 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; yesbird wrote:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; Working on file converter, I am importing vertex colors from FBX,&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; but cant figure out why POV-Ray rendering is so much different from&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; ZBrush. Maybe there is a way to control color distribution and&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; smoothness ?&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; Please find images and scene in attachment.&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; --&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; YB&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; You might not want to color by vertex.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Maybe color the entire cube with a gradient and use blend_mode.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; https://wiki.povray.org/content/Reference:Pigment_Map&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; That's all I have - for the moment.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; - BW&lt;/span&gt;

#version 3.8;

global_settings {assumed_gamma 1.0}

#include &amp;quot;functions.inc&amp;quot;

camera {
 location &amp;lt;0, 0, -20&amp;gt;
 look_at &amp;lt;0, 0, 0&amp;gt;
 right x*image_width/image_height
 up y
 sky y
}

sky_sphere {pigment {rgb 1}}

light_source {&amp;lt;0, 50, -50&amp;gt; rgb 1}


box {-5, 5
 pigment {
  gradient x
  pigment_map {
   blend_mode 0 // or 3
   [0, rgb y]
   [0.5, rgb 1]
   [1, rgb z]
  }
  scale sqrt (200)
  translate x*sqrt (200)/2
  rotate z*45
 }
}
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 30 Sep 2025 01:40:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.68db340187a1b5a91f9dae3025979125%40news.povray.org%3E/#%3Cweb.68db340187a1b5a91f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.68db340187a1b5a91f9dae3025979125%40news.povray.org%3E/#%3Cweb.68db340187a1b5a91f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Vertex colors rendering [198 days 12 hours and 49 minutes ago]</title>
		<description>
&lt;pre&gt;yesbird wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Working on file converter, I am importing vertex colors from FBX,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; but cant figure out why POV-Ray rendering is so much different from&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ZBrush. Maybe there is a way to control color distribution and&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; smoothness ?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Please find images and scene in attachment.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; --&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; YB&lt;/span&gt;

You might not want to color by vertex.
Maybe color the entire cube with a gradient and use blend_mode.

https://wiki.povray.org/content/Reference:Pigment_Map

That's all I have - for the moment.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 30 Sep 2025 01:25:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.68db308787a1b5a91f9dae3025979125%40news.povray.org%3E/#%3Cweb.68db308787a1b5a91f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.68db308787a1b5a91f9dae3025979125%40news.povray.org%3E/#%3Cweb.68db308787a1b5a91f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Vertex colors rendering [198 days 13 hours and 34 minutes ago]</title>
		<description>
&lt;pre&gt;Working on file converter, I am importing vertex colors from FBX,
but cant figure out why POV-Ray rendering is so much different from
ZBrush. Maybe there is a way to control color distribution and
smoothness ?

Please find images and scene in attachment.
-- 
YB
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 30 Sep 2025 00:39:08 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C68db26ac%40news.povray.org%3E/#%3C68db26ac%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C68db26ac%40news.povray.org%3E/#%3C68db26ac%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Francois LE COAT] Re: Optical Inertia [212 days and 44 minutes ago]</title>
		<description>
&lt;pre&gt;Hi,

Here's a drone's long flight through the forest in France...

	&amp;lt;https://www.youtube.com/watch?v=f_Zi811qWFI&amp;gt;

We're in rather complicated lighting conditions, with shadows and
clouds. Hence the significant noise in the video. The optical-flow
(DIS - OpenCV) that allows the determination of monocular depth
performs rather well. Mathematicians refer to this determination
as an &amp;quot;ill-posed problem&amp;quot;. But statistically, for the large images
we're dealing with, it works well :-)

Best regards,

-- 
Fran&amp;#231;ois LE COAT
&amp;lt;https://eureka.atari.org/&amp;gt;
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 16 Sep 2025 13:30:04 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C68c9665c%241%40news.povray.org%3E/#%3C68c9665c%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C68c9665c%241%40news.povray.org%3E/#%3C68c9665c%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Francois LE COAT] Re: Optical Inertia [302 days and 59 minutes ago]</title>
		<description>
&lt;pre&gt;Hi,

Francois LE COAT writes:
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; Here is another example of drone in the forest, outside from France:&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; &amp;lt;https://www.youtube.com/watch?v=BO_OUFHFzTY&amp;gt; Forest&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; We also obtained the trajectory in the X-Z plane, of the flight:&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; &amp;lt;https://sketchfab.com/3d-models/forest-e253ebd61e2a4bd6abcd21ac56f25&lt;/span&gt;
bae&amp;gt; 
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; These are filtered measurements and it's not ideal computer graphics.&lt;/span&gt;

&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; Here is a sequence of images of a ballad in the forest. This scene&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; is observed by a tracking drone...&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;https://www.youtube.com/watch?v=46VWJ6-YqtY&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; The camera's movement is estimated in the images using a projective&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; dominant motion measurement. The presence of a man in the image sequen&lt;/span&gt;
ce
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; does not interfere with trajectory estimation, because the character&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; occupies a position in the field of vision that is not dominant. The&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; dominant motion corresponds to the scrolling of the scenery, that is&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; the movement of the forest relative to an observing camera.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Here is a drone in the forest...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;lt;https://www.youtube.com/watch?v=h3vhlRBB9tg&amp;gt; Forest&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; We also obtain the trajectory in space: &amp;lt;https://skfb.ly/pxGqL&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; It's interesting to note that this trajectory loops. That is to say,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; the drone passes over the professional pilot's location, and is in&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; the same place at the end of the video.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; This proves the quality of the trajectory estimation in space. :-)&lt;/span&gt;

Here's a long drone flight through a Swedish forest...

&amp;lt;https://www.youtube.com/watch?v=ppW5BbDPFHc&amp;gt; Swedish forest

We obtain the estimated trajectory in space: &amp;lt;https://skfb.ly/pxZHy&amp;gt;

The image matching algorithm doesn't incorporate any prior knowledge
about what the camera is observing. This might look like a SLAM
(Simultaneous Localization And Mapping) method, which is a sparse
method, but what is presented is a global and dense method based
on optical-flow measurement (Dense Inverse Search - DIS).

This is an algorithm, i.e. a numerical recipe, that does not use
artificial neural networks. We obtain a filtered measurement (by
a Kalman filter) of physical data.

Best regards,

-- 
Fran&amp;#231;ois LE COAT
&amp;lt;https://eureka.atari.org/&amp;gt;
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 18 Jun 2025 13:15:02 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C6852bbd6%241%40news.povray.org%3E/#%3C6852bbd6%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C6852bbd6%241%40news.povray.org%3E/#%3C6852bbd6%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Vector handling [310 days 12 hours and 24 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; In the absence of a vector triggering a misidentification, I'm going to call&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; this 30+ year stumbling block solved.&lt;/span&gt;

OK, I spoke too soon - I was lazy and was leaving out the testing of the
scalars.
Somehow _1_ broke it.
I modified, then _0_ broke it.

I modified again, looked good, tested with sizes 1-5, and all looked well.

IIRC, what brought me back to this was an annoyance with needing to test all
vector sizes separately with size-dependent macros.  And I think I needed a
general solution for . . . something.

I also vaguely recall that sometimes I wanted to compare vectors of unequal
sizes - only comparing the number of components of the smallest vector.
So I added a Boolean flag to do a partial comparison.

And this is what I have so far.  Ugly development code, warts and all.

Needs more testing, since there's probably something else lurking in there.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 10 Jun 2025 01:50:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.68478f382f29ff11f9dae3025979125%40news.povray.org%3E/#%3Cweb.68478f382f29ff11f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.68478f382f29ff11f9dae3025979125%40news.povray.org%3E/#%3Cweb.68478f382f29ff11f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Vector handling [310 days 14 hours and 49 minutes ago]</title>
		<description>
&lt;pre&gt;Looped PermuteVectorComponents (5) fifty times.
Commented out the fopen-write-fclose since I don't need the output in the
absence of misindentifications.

run time
4m 42s

843196 vectors written to TestedValues.txt.
843196 identified correctly.
0 misidentified.

In the absence of a vector triggering a misidentification, I'm going to call
this 30+ year stumbling block solved.

It would be great if I didn't clog the warning stream with 843,000+ &amp;quot;suspicious
expression after rgb&amp;quot; messages . . .      :\

- BW

P.S. I'm also thinking that maybe the folks over on one of the math / statistics
fora could come up with a better / more efficient way.
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 9 Jun 2025 23:25:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.68476cd52f29ff11f9dae3025979125%40news.povray.org%3E/#%3Cweb.68476cd52f29ff11f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.68476cd52f29ff11f9dae3025979125%40news.povray.org%3E/#%3Cweb.68476cd52f29ff11f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Vector handling [310 days 15 hours and 4 minutes ago]</title>
		<description>
&lt;pre&gt;I added 2 more bracketing values to be randomized between -100 and 100, then ran
it again.

19604 identified correctly.
0 misidentified.

Then I ran everything again plus had the the macro generate 5-component vectors
(the former problem) 5 times in a row (randomized).

86836 vectors written to TestedValues.txt.
86836 identified correctly.
0 misidentified.

It's looking good.   :)

-BW
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 9 Jun 2025 23:10:01 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.684769482f29ff11f9dae3025979125%40news.povray.org%3E/#%3Cweb.684769482f29ff11f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.684769482f29ff11f9dae3025979125%40news.povray.org%3E/#%3Cweb.684769482f29ff11f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Vector handling [310 days 15 hours and 44 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; 3904 vectors written to TestedValues.txt.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; 3204 identified correctly.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; 700 misidentified.&lt;/span&gt;

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I will modify to output the offending vectors to a separate file, and then get&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; on with seeing if there's a way to &amp;quot;win&amp;quot;.&lt;/span&gt;

And there seems to be (at the moment)!


3904 vectors written to TestedValues.txt.
3904 identified correctly.
0 misidentified.

CPU time used: kernel 2.59 seconds, user 1.34 seconds, total 3.93 seconds.
Elapsed time 3.98 seconds.


NOW see if you can break it!

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 9 Jun 2025 22:30:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6847601a2f29ff11f9dae3025979125%40news.povray.org%3E/#%3Cweb.6847601a2f29ff11f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6847601a2f29ff11f9dae3025979125%40news.povray.org%3E/#%3Cweb.6847601a2f29ff11f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Vector handling [315 days 13 hours and 54 minutes ago]</title>
		<description>
&lt;pre&gt;Ugggggggh.

I got the vector-creating to work, plugged that into the permutation macro, and
got everything written to a file.

Got an error in my scalar part of the #if block, which led me to believe that
there was a misidentification.

So I made a few modifications, and this is what I presently have:

3904 vectors written to TestedValues.txt.
3204 identified correctly.
700 misidentified.

So there is some combination of values that sabotage my algorithm (which is
exactly why I wanted to test 3904 vectors).

I will modify to output the offending vectors to a separate file, and then get
on with seeing if there's a way to &amp;quot;win&amp;quot;.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 5 Jun 2025 00:20:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6840e19e2f29ff11f9dae3025979125%40news.povray.org%3E/#%3Cweb.6840e19e2f29ff11f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6840e19e2f29ff11f9dae3025979125%40news.povray.org%3E/#%3Cweb.6840e19e2f29ff11f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Vector handling [316 days 1 hour and 49 minutes ago]</title>
		<description>
&lt;pre&gt;OK, there was nary a drop of coffee in my veins, my eyes were blurry, and I was
fielding questions about an interstate flight while trying to process this.

After re-reading after Second Coffee, I can probably use a #for loop to plug the
appropriate number of array elements into a vector to get what I want.

Will try that after I get home 8h from now ... &amp;lt;eyeroll&amp;gt;

Anyway, try the type-identifying macro and see what you think.

Sorry for the confusion.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 4 Jun 2025 12:25:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.684039f82f29ff18becbc4525979125%40news.povray.org%3E/#%3Cweb.684039f82f29ff18becbc4525979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.684039f82f29ff18becbc4525979125%40news.povray.org%3E/#%3Cweb.684039f82f29ff18becbc4525979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Vector handling [316 days 3 hours and 29 minutes ago]</title>
		<description>
&lt;pre&gt;Long time, no see, Mr. K   :)
I hope you are personally well, and professionally successful.

Now with
https://news.povray.org/povray.general/message/%3Cweb.682bc388985098ff1f9dae3025979125%40news.povray.org%3E/#%3Cweb.682
bc388985098ff1f9dae3025979125%40news.povray.org%3E

You don't need the whole #switch block below to handle individual vector sizes.

just
#declare SV = VectorDimTest (v0);
#debug concat(&amp;quot;&amp;lt;&amp;quot;, vstr(2, SV, &amp;quot;, &amp;quot;, 0, -1), &amp;quot;&amp;gt;&amp;quot;)

&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #macro PrintSCalarOrVector(Dim, SV)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;     #switch (Dim)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;         #case (1)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;             #debug str(SV, 0, -1)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;             #break&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;         #case (2)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;             #debug concat(&amp;quot;&amp;lt;&amp;quot;, vstr(2, SV, &amp;quot;, &amp;quot;, 0, -1), &amp;quot;&amp;gt;&amp;quot;)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;             #break&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;         #case (3)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;             #debug concat(&amp;quot;&amp;lt;&amp;quot;, vstr(3, SV, &amp;quot;, &amp;quot;, 0, -1), &amp;quot;&amp;gt;&amp;quot;)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;             #break&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;         #case (4)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;             #debug concat(&amp;quot;&amp;lt;&amp;quot;, vstr(4, SV, &amp;quot;, &amp;quot;, 0, -1), &amp;quot;&amp;gt;&amp;quot;)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;             #break&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;         #case (5)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;             #debug concat(&amp;quot;&amp;lt;&amp;quot;, vstr(5, SV, &amp;quot;, &amp;quot;, 0, -1), &amp;quot;&amp;gt;&amp;quot;)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;             #break&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;         #else&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;             #error &amp;quot;Not a valid vector dimension&amp;quot;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;     #end // switch&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #end // macro PrintSCalarOrVector&lt;/span&gt;


Also, when I stated that i couldn't change Vector.z, I meant by directly
addressing it, like you're doing below with array elements.
I can't say #declare Vector.z = NewValue.
And the awkwardness really kicks in when I'm trying to create a macro like
#macro PermuteVector (SV)

where I just want to make any size vector on the fly and have the result of the
macro be a vector of size SV.   Because it is NOT like working with arrays.

I started off by doing
#local V = array {&amp;lt;1, 0, 0, 0, 0&amp;gt;, &amp;lt;0, 1, 0, 0, 0&amp;gt;, &amp;lt;0, 0, 1, 0, 0&amp;gt;, &amp;lt;0, 0, 0,
1, 0&amp;gt;, &amp;lt;0, 0, 0, 0, 1&amp;gt;};
#local Vector = &amp;lt;0, 0, 0, 0, 0&amp;gt;;

to &amp;quot;address&amp;quot; the individual components (in)directly, but now I'm stuck not
knowing how to take &amp;lt;1, 2, 3, 0, 0&amp;gt; and convert it to &amp;lt;1, 2, 3&amp;gt;.

I would like a simple method to MAKE vectors of an arbitrary (allowed) size,
just like vstr () PRINTS vectors of an arbitrary size.
#declare MyVector = mstr (...)

This sort of hearkens back to the epic dot notation thread where I suggested
vec.n where n = 1...5 as a valid syntax (though that still wouldn't solve the
problem, given the inability to use those as an LValue)

Making a vector from array elements requires a lot of hands-on, fussy, one-off
coding for specially constructing each individual size of vector.  POV-Ray
should be better than that.

- BW

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #macro CreateScalarOrVector(ValueArray)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;     #local Dim = dimension_size(ValueArray, 1);&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;     #switch (Dim)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;         #case (1)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;             #local SV =&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;                 ValueArray[0]&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;             ;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;             #break&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;         #case (2)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;             #local SV =&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;                 &amp;lt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;                     ValueArray[0],&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;                     ValueArray[1]&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;                 &amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;              ;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;             #break&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;         #case (3)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;             #local SV =&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;                 &amp;lt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;                     ValueArray[0],&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;                     ValueArray[1],&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;                     ValueArray[2]&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;                 &amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;             ;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;             #break&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;         #case (4)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;             #local SV =&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;                 &amp;lt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;                     ValueArray[0],&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;                     ValueArray[1],&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;                     ValueArray[2],&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;                     ValueArray[3]&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;                 &amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;             ;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;             #break&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;         #case (5)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;             #local SV =&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;                 &amp;lt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;                     ValueArray[0],&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;                     ValueArray[1],&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;                     ValueArray[2],&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;                     ValueArray[3],&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;                     ValueArray[4]&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;                 &amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;             ;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;             #break&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;         #else&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;             #error &amp;quot;Not a valid vector dimension&amp;quot;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;     #end // switch&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;     SV&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #end // macro CreateScalarOrVector&lt;/span&gt;
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 4 Jun 2025 10:45:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6840237b2f29ff11f9dae3025979125%40news.povray.org%3E/#%3Cweb.6840237b2f29ff11f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6840237b2f29ff11f9dae3025979125%40news.povray.org%3E/#%3Cweb.6840237b2f29ff11f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Tor Olav Kristensen] Re: Vector handling [316 days 9 hours and 54 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; There's no way to really assign a value to the individual vector component&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Vector.z, ...&lt;/span&gt;

I'm not sure if I understand what you mean.

I just tried this - and it seems to work like I expected.


#declare v2D = &amp;lt;2, 3&amp;gt;;
#declare NewV = -33;

#declare v2D = &amp;lt;v2D.u, NewV&amp;gt;;
PrintSCalarOrVector(2, v2D)
#debug &amp;quot;\n&amp;quot;

#declare v2D = v2D*u + NewV*v;
PrintSCalarOrVector(2, v2D)
#debug &amp;quot;\n&amp;quot;

#declare v2D = v2D*&amp;lt;1, 0&amp;gt; + &amp;lt;0, NewV&amp;gt;;
PrintSCalarOrVector(2, v2D)
#debug &amp;quot;\n&amp;quot;


#declare v3D = &amp;lt;3, 4, 5&amp;gt;;
#declare NewZ = -55;

#declare v3D = &amp;lt;v3D.x, v3D.y, NewZ&amp;gt;;
PrintSCalarOrVector(3, v3D)
#debug &amp;quot;\n&amp;quot;

#declare v3D = v3D*(x + y) + NewZ*z;
PrintSCalarOrVector(3, v3D)
#debug &amp;quot;\n&amp;quot;

#declare v3D = v3D*&amp;lt;1, 1, 0&amp;gt; + &amp;lt;0, 0, NewZ&amp;gt;;
PrintSCalarOrVector(3, v3D)
#debug &amp;quot;\n&amp;quot;


#declare v4D = &amp;lt;4, 5, 6, 7&amp;gt;;
#declare NewT = -77;

#declare v4D = &amp;lt;v4D.x, v4D.y, v4D.z, NewT&amp;gt;;
PrintSCalarOrVector(4, v4D)
#debug &amp;quot;\n&amp;quot;

#declare v4D = v4D*(x + y + z) + NewT*t;
PrintSCalarOrVector(4, v4D)
#debug &amp;quot;\n&amp;quot;

#declare v4D = v4D*&amp;lt;1, 1, 1, 0&amp;gt; + &amp;lt;0, 0, 0, NewT&amp;gt;;
PrintSCalarOrVector(4, v4D)
#debug &amp;quot;\n&amp;quot;


#declare v5D = &amp;lt;5, 6, 7, 8, 9&amp;gt;;
#declare NewTransmit = -99;

#declare v5D = &amp;lt;v5D.red, v5D.green, v5D.blue, v5D.filter, NewTransmit&amp;gt;;
PrintSCalarOrVector(5, v5D)
#debug &amp;quot;\n&amp;quot;

#declare v5D = v5D*&amp;lt;1, 1, 1, 1, 0&amp;gt; + &amp;lt;0, 0, 0, 0, NewTransmit&amp;gt;;
PrintSCalarOrVector(5, v5D)
#debug &amp;quot;\n&amp;quot;

--
Tor Olav
http://subcube.com
https://github.com/t-o-k
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 4 Jun 2025 04:20:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.683fc8652f29ff143a63f5189db30a9%40news.povray.org%3E/#%3Cweb.683fc8652f29ff143a63f5189db30a9%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.683fc8652f29ff143a63f5189db30a9%40news.povray.org%3E/#%3Cweb.683fc8652f29ff143a63f5189db30a9%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Tor Olav Kristensen] Re: Vector handling [316 days 10 hours and 44 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; In light of the fact that I was able to solve the scalar / vector typing&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; problem,  I wanted to do a test of the macro with a full complement of vectors&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; that are composed of all permutations of negative, zero, and positive values, so&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; that I can test anything that might trigger some edge case and cause the macro&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; to fail and misidentify an argument.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; To do that, I wrote a macro to generate all of the permutations for any given&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; vector size, however it quickly became apparent that actually outputting vectors&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; of any given size is a challenge.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; There's no way to really assign a value to the individual vector component&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Vector.z, so I'm coming up against an interesting limitation of SDL.  It's not a&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; trivial task to take an array of values and convert it to a vector.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Nor can I (that I know) diminish the size of a vector from 5 to 3.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; (Can we have 1-component vectors?)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I don't want to use ParseString () to generate 4,000 vectors.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I also don't want to individually verify every test case, so I'll probably make&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; the output of the macro a scalar/vector plus the type (1, 2, 3, 4, 5) and have&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; the identification macro compare, and sum any errors.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Can anyone suggest a robust method for composing vectors of sizes 2 through 5&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; with a single, general purpose macro?&lt;/span&gt;

Hi Bill

Could this be something to work with?

// ===== 1 ======= 2 ======= 3 ======= 4 ======= 5 ======= 6 ======= 7

#version 3.7;

global_settings { assumed_gamma 1.0 }

// ===== 1 ======= 2 ======= 3 ======= 4 ======= 5 ======= 6 ======= 7

#macro PrintSCalarOrVector(Dim, SV)

    #switch (Dim)
        #case (1)
            #debug str(SV, 0, -1)
            #break
        #case (2)
            #debug concat(&amp;quot;&amp;lt;&amp;quot;, vstr(2, SV, &amp;quot;, &amp;quot;, 0, -1), &amp;quot;&amp;gt;&amp;quot;)
            #break
        #case (3)
            #debug concat(&amp;quot;&amp;lt;&amp;quot;, vstr(3, SV, &amp;quot;, &amp;quot;, 0, -1), &amp;quot;&amp;gt;&amp;quot;)
            #break
        #case (4)
            #debug concat(&amp;quot;&amp;lt;&amp;quot;, vstr(4, SV, &amp;quot;, &amp;quot;, 0, -1), &amp;quot;&amp;gt;&amp;quot;)
            #break
        #case (5)
            #debug concat(&amp;quot;&amp;lt;&amp;quot;, vstr(5, SV, &amp;quot;, &amp;quot;, 0, -1), &amp;quot;&amp;gt;&amp;quot;)
            #break
        #else
            #error &amp;quot;Not a valid vector dimension&amp;quot;
    #end // switch

#end // macro PrintSCalarOrVector


#debug &amp;quot;\n&amp;quot;

PrintSCalarOrVector(1, 1.0)
#debug &amp;quot;\n&amp;quot;

PrintSCalarOrVector(2, &amp;lt;2.0, 3.0&amp;gt;)
#debug &amp;quot;\n&amp;quot;

PrintSCalarOrVector(3, &amp;lt;3.0, 4.0, 5.0&amp;gt;)
#debug &amp;quot;\n&amp;quot;

PrintSCalarOrVector(4, &amp;lt;4.0, 5.0, 6.0, 7.0&amp;gt;)
#debug &amp;quot;\n&amp;quot;

PrintSCalarOrVector(5, &amp;lt;5.0, 6.0, 7.0, 8.0, 9.0&amp;gt;)
#debug &amp;quot;\n&amp;quot;


#macro CreateScalarOrVector(ValueArray)

    #local Dim = dimension_size(ValueArray, 1);
    #switch (Dim)
        #case (1)
            #local SV =
                ValueArray[0]
            ;
            #break
        #case (2)
            #local SV =
                &amp;lt;
                    ValueArray[0],
                    ValueArray[1]
                &amp;gt;
             ;
            #break
        #case (3)
            #local SV =
                &amp;lt;
                    ValueArray[0],
                    ValueArray[1],
                    ValueArray[2]
                &amp;gt;
            ;
            #break
        #case (4)
            #local SV =
                &amp;lt;
                    ValueArray[0],
                    ValueArray[1],
                    ValueArray[2],
                    ValueArray[3]
                &amp;gt;
            ;
            #break
        #case (5)
            #local SV =
                &amp;lt;
                    ValueArray[0],
                    ValueArray[1],
                    ValueArray[2],
                    ValueArray[3],
                    ValueArray[4]
                &amp;gt;
            ;
            #break
        #else
            #error &amp;quot;Not a valid vector dimension&amp;quot;
    #end // switch

    SV

#end // macro CreateScalarOrVector


#debug &amp;quot;\n&amp;quot;

#declare VS =
    CreateScalarOrVector(
        array[1] { 1.0 }
    )
;
PrintSCalarOrVector(1, VS)
#debug &amp;quot;\n&amp;quot;

#declare VS =
    CreateScalarOrVector(
        array[2] { 2.0, 3.0 }
    )
;
PrintSCalarOrVector(2, VS)
#debug &amp;quot;\n&amp;quot;

#declare VS =
    CreateScalarOrVector(
        array[3] { 3.0, 4.0, 5.0 }
    )
;
PrintSCalarOrVector(3, VS)
#debug &amp;quot;\n&amp;quot;

#declare VS =
    CreateScalarOrVector(
        array[4] { 4.0, 5.0, 6.0, 7.0 }
    )
;
PrintSCalarOrVector(4, VS)
#debug &amp;quot;\n&amp;quot;

#declare VS =
    CreateScalarOrVector(
        array[5] { 5.0, 6.0, 7.0, 8.0, 9.0 }
    )
;
PrintSCalarOrVector(5, VS)
#debug &amp;quot;\n&amp;quot;

#debug &amp;quot;\n&amp;quot;
#error &amp;quot;No error, just finished&amp;quot;


--
Tor Olav
http://subcube.com
https://github.com/t-o-k
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 4 Jun 2025 03:30:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.683fbcb92f29ff143a63f5189db30a9%40news.povray.org%3E/#%3Cweb.683fbcb92f29ff143a63f5189db30a9%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.683fbcb92f29ff143a63f5189db30a9%40news.povray.org%3E/#%3Cweb.683fbcb92f29ff143a63f5189db30a9%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Vector handling [316 days 13 hours and 9 minutes ago]</title>
		<description>
&lt;pre&gt;In light of the fact that I was able to solve the scalar / vector typing
problem,  I wanted to do a test of the macro with a full complement of vectors
that are composed of all permutations of negative, zero, and positive values, so
that I can test anything that might trigger some edge case and cause the macro
to fail and misidentify an argument.

To do that, I wrote a macro to generate all of the permutations for any given
vector size, however it quickly became apparent that actually outputting vectors
of any given size is a challenge.

There's no way to really assign a value to the individual vector component
Vector.z, so I'm coming up against an interesting limitation of SDL.  It's not a
trivial task to take an array of values and convert it to a vector.
Nor can I (that I know) diminish the size of a vector from 5 to 3.

(Can we have 1-component vectors?)

I don't want to use ParseString () to generate 4,000 vectors.
I also don't want to individually verify every test case, so I'll probably make
the output of the macro a scalar/vector plus the type (1, 2, 3, 4, 5) and have
the identification macro compare, and sum any errors.

Can anyone suggest a robust method for composing vectors of sizes 2 through 5
with a single, general purpose macro?


Thanks

- BE
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 4 Jun 2025 01:05:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.683f9ab13a0722be1f9dae3025979125%40news.povray.org%3E/#%3Cweb.683f9ab13a0722be1f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.683f9ab13a0722be1f9dae3025979125%40news.povray.org%3E/#%3Cweb.683f9ab13a0722be1f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Francois LE COAT] Re: Optical Inertia [321 days and 23 minutes ago]</title>
		<description>
&lt;pre&gt;Hi,

Francois LE COAT writes:
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; Here is another example of drone in the forest, outside from France:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; &amp;lt;https://www.youtube.com/watch?v=BO_OUFHFzTY&amp;gt; Forest&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; We also obtained the trajectory in the X-Z plane, of the flight:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; &amp;lt;https://sketchfab.com/3d-models/forest-e253ebd61e2a4bd6abcd21ac56f25b&lt;/span&gt;
ae&amp;gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; These are filtered measurements and it's not ideal computer graphics.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Here is a sequence of images of a ballad in the forest. This scene&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; is observed by a tracking drone...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;https://www.youtube.com/watch?v=46VWJ6-YqtY&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; The camera's movement is estimated in the images using a projective&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; dominant motion measurement. The presence of a man in the image sequenc&lt;/span&gt;
e
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; does not interfere with trajectory estimation, because the character&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; occupies a position in the field of vision that is not dominant. The&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; dominant motion corresponds to the scrolling of the scenery, that is&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; the movement of the forest relative to an observing camera.&lt;/span&gt;

Here is a drone in the forest...

&amp;lt;https://www.youtube.com/watch?v=h3vhlRBB9tg&amp;gt; Forest

We also obtain the trajectory in space: &amp;lt;https://skfb.ly/pxGqL&amp;gt;

It's interesting to note that this trajectory loops. That is to say,
the drone passes over the professional pilot's location, and is in
the same place at the end of the video.

This proves the quality of the trajectory estimation in space. :-)

Best regards,

-- 
Fran&amp;#231;ois LE COAT
&amp;lt;https://eureka.atari.org/&amp;gt;
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 30 May 2025 13:51:05 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C6839b7c9%40news.povray.org%3E/#%3C6839b7c9%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C6839b7c9%40news.povray.org%3E/#%3C6839b7c9%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Francois LE COAT] Re: Optical Inertia [336 days 1 hour and 29 minutes ago]</title>
		<description>
&lt;pre&gt;Hi,

Francois LE COAT writes:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Here is another example of drone in the forest, outside from France:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;lt;https://www.youtube.com/watch?v=BO_OUFHFzTY&amp;gt; Forest&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; We also obtained the trajectory in the X-Z plane, of the flight:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;lt;https://sketchfab.com/3d-models/forest-e253ebd61e2a4bd6abcd21ac56f25ba&lt;/span&gt;
e&amp;gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; These are filtered measurements and it's not ideal computer graphics.&lt;/span&gt;

Here is a sequence of images of a ballad in the forest. This scene
is observed by a tracking drone...

	&amp;lt;https://www.youtube.com/watch?v=46VWJ6-YqtY&amp;gt;

The camera's movement is estimated in the images using a projective
dominant motion measurement. The presence of a man in the image sequence
does not interfere with trajectory estimation, because the character
occupies a position in the field of vision that is not dominant. The
dominant motion corresponds to the scrolling of the scenery, that is
the movement of the forest relative to an observing camera.

Best regards,

-- 
Fran&amp;#231;ois LE COAT
&amp;lt;https://eureka.atari.org/&amp;gt;
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 15 May 2025 12:45:01 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C6825e1cd%241%40news.povray.org%3E/#%3C6825e1cd%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C6825e1cd%241%40news.povray.org%3E/#%3C6825e1cd%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Doyle Spiral [345 days 16 hours and 54 minutes ago]</title>
		<description>
&lt;pre&gt;While working on several projects, I've wanted/needed to implement various
spiral patterns, and the Doyle Spiral is an especially interesting one.

Luckily, I was able to find a good write-up on a Mathematica implementation, as
well as a basic implementation in POV-Ray.

The POV-Ray implementation, although somewhat recent, seemed to have been coded
by someone who hadn't used POV-Ray in a long while, and so used some (what I'd
consider) deprecated code, and bad coding methods (some global identifiers
caused me some debugging grief).  The exponentiation of the complex numbers was
awkwardly (and unnecessarily) split into two parts, where a single general
method works just fine for all exponents.

Adding the lines (&amp;quot;linear spirals&amp;quot; as opposed to the &amp;quot;circular spirals&amp;quot;) was a
long, bumpy ride on the struggle bus, due to simultaneously trying to understand
the fundamentals of what was going on, trying to make that happen with complex
numbers, and being interrupted all day by RL things.

I still need to convert a bunch of stuff that's in macro form to functions,
finish the last bit of complex interpolation, create a prism macro, and then
finally apply a M&amp;#246;bius transform before actually rendering the spiral.

Enjoy.

- BE
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 5 May 2025 21:20:01 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.68192ae936508a0b1f9dae3025979125%40news.povray.org%3E/#%3Cweb.68192ae936508a0b1f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.68192ae936508a0b1f9dae3025979125%40news.povray.org%3E/#%3Cweb.68192ae936508a0b1f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Francois LE COAT] Re: Optical Inertia [364 days and 59 minutes ago]</title>
		<description>
&lt;pre&gt;Hi,

Francois LE COAT writes:
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; Monocular Depth:&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; &amp;lt;https://www.youtube.com/watch?v=34zUDqEzHos&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; A drone flies between the trees of a forest. Thanks to the optical-fl&lt;/span&gt;
ow
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; measured on successive images, the temporal disparity reveals the&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; forest of trees... We take a reference image, the optical-flow is&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; measured on two rectified images. Then we change the reference when&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; the inter-correlation drops below 60%. We can perceive the relief in&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; depth with a single camera, over time.&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; In fact, when we watch images captured by a drone, although there is&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; only one camera, we often see the relief. This is particularly marked&lt;/span&gt;

&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; for trees in a forest. The goal here is to evaluate this relief, with&lt;/span&gt;
 a
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; measurement of &amp;quot;optical-flow&amp;quot;, which allows one image to be matched w&lt;/span&gt;
ith
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; another, when they seem to be close (we say they are &amp;quot;correlated&amp;quot;).&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; We have two eyes, and the methods for measuring visible relief by &lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; stereoscopy are very developed. Since the beginning of photography,&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; there were devices like the &amp;#226;&amp;#128;&amp;#156;stereoscope&amp;#226;&amp;#128;&amp;#157; which
allow&lt;/span&gt;
s you to see the
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; relief with two pictures, naturally. It is possible to measure relief&lt;/span&gt;
,
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; thanks to epipolar geometry, and well-known mathematics. There are ma&lt;/span&gt;
ny
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; measurement methods, very effective and based on human vision.&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; When it comes to measuring relief with a single camera, knowledge is&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; less established. There are 3D cameras, called &amp;quot;RGBD&amp;quot; with a &amp;quot;D&amp;quot; for &lt;/span&gt;

&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;depth&amp;quot;. But how do they work? Is it possible to improve those? What&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; I am showing here does not require the use of any &amp;#226;&amp;#128;&amp;#156;artificial&lt;/span&gt;
 neural
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; network&amp;#226;&amp;#128;&amp;#157;. It is a physical measurement, with a classic algori&lt;/span&gt;
thm,
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; which does not come from A.I. nor a big computer :-)&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; A WEB page was made to illustrate Monocular Depth...&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; &amp;lt;https://hebergement.universite-paris-saclay.fr/lecoat/demoweb/monocul&lt;/span&gt;
ar_depth.html&amp;gt; 
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; This is about measuring monocular depth, just as stereoscopic disparit&lt;/span&gt;
y
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; is measured. It means quantifying the depth, with images from a single&lt;/span&gt;

&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; camera. We can see this relief naturally, but it is a matter of&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; measuring it with the optical-flow :-)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Until now, drone images came from forests in France. The first images&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; were obtained in the French Vosges.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;lt;https://www.youtube.com/watch?v=245yJJrwMQ0&amp;gt; Drone in the forest&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; We are now seeing more and more drones in forests outside of France.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; The available image sources are diversifying...&lt;/span&gt;

Here is another example of drone in the forest, outside from France:

	&amp;lt;https://www.youtube.com/watch?v=BO_OUFHFzTY&amp;gt; Forest

We also obtained the trajectory in the X-Z plane, of the flight:

&amp;lt;https://sketchfab.com/3d-models/forest-e253ebd61e2a4bd6abcd21ac56f25bae&amp;gt;


These are filtered measurements and it's not ideal computer graphics.

Best regards,

-- 
Fran&amp;#195;&amp;#167;ois LE COAT
&amp;lt;https://eureka.atari.org/&amp;gt;
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 17 Apr 2025 13:15:04 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C6800fed8%241%40news.povray.org%3E/#%3C6800fed8%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C6800fed8%241%40news.povray.org%3E/#%3C6800fed8%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Francois LE COAT] Re: Optical Inertia [379 days 20 hours and 59 minutes ago]</title>
		<description>
&lt;pre&gt;Hi,

Francois LE COAT writes:
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; Monocular Depth:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; &amp;lt;https://www.youtube.com/watch?v=34zUDqEzHos&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; A drone flies between the trees of a forest. Thanks to the optical-flo&lt;/span&gt;
w
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; measured on successive images, the temporal disparity reveals the&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; forest of trees... We take a reference image, the optical-flow is&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; measured on two rectified images. Then we change the reference when&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; the inter-correlation drops below 60%. We can perceive the relief in&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; depth with a single camera, over time.&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; In fact, when we watch images captured by a drone, although there is&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; only one camera, we often see the relief. This is particularly marked&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; for trees in a forest. The goal here is to evaluate this relief, with &lt;/span&gt;
a
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; measurement of &amp;quot;optical-flow&amp;quot;, which allows one image to be matched wi&lt;/span&gt;
th
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; another, when they seem to be close (we say they are &amp;quot;correlated&amp;quot;).&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; We have two eyes, and the methods for measuring visible relief by &lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; stereoscopy are very developed. Since the beginning of photography,&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; there were devices like the &amp;#226;&amp;#128;&amp;#156;stereoscope&amp;#226;&amp;#128;&amp;#157; which
allows&lt;/span&gt;
 you to see the
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; relief with two pictures, naturally. It is possible to measure relief,&lt;/span&gt;

&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; thanks to epipolar geometry, and well-known mathematics. There are man&lt;/span&gt;
y
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; measurement methods, very effective and based on human vision.&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; When it comes to measuring relief with a single camera, knowledge is&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; less established. There are 3D cameras, called &amp;quot;RGBD&amp;quot; with a &amp;quot;D&amp;quot; for &lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; &amp;quot;depth&amp;quot;. But how do they work? Is it possible to improve those? What&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; I am showing here does not require the use of any &amp;#226;&amp;#128;&amp;#156;artificial &lt;/span&gt;
neural
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; network&amp;#226;&amp;#128;&amp;#157;. It is a physical measurement, with a classic algorit&lt;/span&gt;
hm,
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; which does not come from A.I. nor a big computer :-)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; A WEB page was made to illustrate Monocular Depth...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;lt;https://hebergement.universite-paris-saclay.fr/lecoat/demoweb/monocula&lt;/span&gt;
r_depth.html&amp;gt; 
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; This is about measuring monocular depth, just as stereoscopic disparity&lt;/span&gt;

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; is measured. It means quantifying the depth, with images from a single&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; camera. We can see this relief naturally, but it is a matter of&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; measuring it with the optical-flow :-)&lt;/span&gt;

Until now, drone images came from forests in France. The first images
were obtained in the French Vosges.

&amp;lt;https://www.youtube.com/watch?v=245yJJrwMQ0&amp;gt; Drone in the forest

We are now seeing more and more drones in forests outside of France.
The available image sources are diversifying...

Best regards,

-- 
Fran&amp;#195;&amp;#167;ois LE COAT
&amp;lt;https://eureka.atari.org/&amp;gt;
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 1 Apr 2025 17:15:03 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C67ec1f17%241%40news.povray.org%3E/#%3C67ec1f17%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C67ec1f17%241%40news.povray.org%3E/#%3C67ec1f17%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Apparent circular pattern of scratches [392 days 23 hours and 24 minutes ago]</title>
		<description>
&lt;pre&gt;Resurrecting an old thread, since I'm digging around with a search engine to
find old scenes / files/ etc. for the organized archive project.

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; When you look at a light source's reflection on a smooth piece of glass or metal&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; or plastic, the scratches all tend to appear as a series of arcs and lines&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; roughly in a circular pattern centered around the &amp;quot;hotspot&amp;quot;.&lt;/span&gt;

https://blenderartists.org/t/scratches-around-relflection/614851/16

https://web.archive.org/web/20180201063002/http://viscorbel.com/microscratches-swirl-marks-spiderwebbing-vray-tutorial/


- BW
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 19 Mar 2025 14:50:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.67dad8df5e3f445025b4de9225979125%40news.povray.org%3E/#%3Cweb.67dad8df5e3f445025b4de9225979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.67dad8df5e3f445025b4de9225979125%40news.povray.org%3E/#%3Cweb.67dad8df5e3f445025b4de9225979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Getting the most from hardware [396 days 1 hour and 47 minutes ago]</title>
		<description>
&lt;pre&gt;I want to compile POV-Ray with maximum support of hardware features,
including AVX2, for example. Could you tell me please, how to do that ?

And how can I know what features already supported by present binary ?
All I can see running the binary is:
---------------------------------------------------------------------
Dynamic optimizations:
   CPU detected: Intel,FMA3,FMA4
   Noise generator: generic (portable)
---------------------------------------------------------------------

I tried to configure it the following way:
---------------------------------------------------------------------
user@ruby3:~/projects/povray$ ./configure --enable-avx2 --without-x 
--prefix=/home/user/povray  COMPILED_BY=&amp;quot;Yesbird &amp;lt;yes###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt;&amp;quot; 
| grep -i avx

configure: WARNING: unrecognized options: --enable-avx2
checking whether C++ compiler accepts -mavx... yes
checking whether C++ compiler accepts -mavx2... yes
---------------------------------------------------------------------
but as you can see without success.

My CPU support following flags:
---------------------------------------------------------------------
fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx
pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl
xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor
ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2
x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm
abm 3dnowprefetch cpuid_fault epb pti ssbd ibrs ibpb stibp tpr_shadow
flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2
erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec
xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window
hwp_epp vnmi md_clear flush_l1d arch_capabilities
---------------------------------------------------------------------
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 16 Mar 2025 12:26:11 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C67d6c363%40news.povray.org%3E/#%3C67d6c363%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C67d6c363%40news.povray.org%3E/#%3C67d6c363%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Calculating normal vectors for meshes [396 days 19 hours and 55 minutes ago]</title>
		<description>
&lt;pre&gt;On 15/03/2025 20:44, GioSeregni wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; This is my easy code for the normals&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; easy to translate to any language&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ...&lt;/span&gt;

Many thanks, it looks very simple, I will implement it without a
problem.
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 15 Mar 2025 18:18:42 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C67d5c482%40news.povray.org%3E/#%3C67d5c482%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C67d5c482%40news.povray.org%3E/#%3C67d5c482%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[GioSeregni] Re: Calculating normal vectors for meshes [396 days 20 hours and 29 minutes ago]</title>
		<description>
&lt;pre&gt;yesbird &amp;lt;sya###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; On 15/03/2025 11:57, Thomas de Groot wrote:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; That mesh looks definitely to be corrupt and needs repairing first!&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Maybe, but POV-Ray renders it without problems and I don't see any&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; issues in syntax. Moreover, I found alternative solution already.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; --&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; YB&lt;/span&gt;

This is my easy code for the normals
easy to translate to any language

xVD=(FACE.y1-FACE.y0)*(FACE.z2-FACE.z0)-(FACE.z1-FACE.z0)*(FACE.y2-FACE.y0)
yVD=(FACE.z1-FACE.z0)*(FACE.x2-FACE.x0)-(FACE.x1-FACE.x0)*(FACE.z2-FACE.z0)
zVD=(FACE.x1-FACE.x0)*(FACE.y2-FACE.y0)-(FACE.y1-FACE.y0)*(FACE.x2-FACE.x0)
NoDivBy0=xVD*xVD+yVD*yVD+zVD*zVD
IF NoDivBy0=0 THEN NoDivBy0=0.000000000001
xND=xVD/sqr(NoDivBy0)
yND=yVD/sqr(NoDivBy0)
zND=zVD/sqr(NoDivBy0)
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 15 Mar 2025 17:45:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.67d5bc81dd89838f1cecd2c359126100%40news.povray.org%3E/#%3Cweb.67d5bc81dd89838f1cecd2c359126100%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.67d5bc81dd89838f1cecd2c359126100%40news.povray.org%3E/#%3Cweb.67d5bc81dd89838f1cecd2c359126100%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Calculating normal vectors for meshes [397 days 2 hours and 24 minutes ago]</title>
		<description>
&lt;pre&gt;On 15/03/2025 11:57, Thomas de Groot wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; That mesh looks definitely to be corrupt and needs repairing first!&lt;/span&gt;

Maybe, but POV-Ray renders it without problems and I don't see any
issues in syntax. Moreover, I found alternative solution already.
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 15 Mar 2025 11:49:29 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C67d56949%241%40news.povray.org%3E/#%3C67d56949%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C67d56949%241%40news.povray.org%3E/#%3C67d56949%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Thomas de Groot] Re: Calculating normal vectors for meshes [397 days 5 hours and 16 minutes ago]</title>
		<description>
&lt;pre&gt;Op 14/03/2025 om 15:17 schreef yesbird:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; On 14/03/2025 14:59, yesbird wrote:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; Working on a data converter from ZBrush's GoZ to Povray's mesh2 format&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; ...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Thanks for your suggestions, I have Poseray, but for unknown reasons&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; it doesn't like my mesh (please, see attached image). Looks like the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; the best solution will be to calculate normals myself in the converter's&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; code.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
That mesh looks definitely to be corrupt and needs repairing first!

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Bill, I will be glad to look at your code for reference.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; -- &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; YB&lt;/span&gt;


-- 
Thomas
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 15 Mar 2025 08:57:44 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C67d54108%241%40news.povray.org%3E/#%3C67d54108%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C67d54108%241%40news.povray.org%3E/#%3C67d54108%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Calculating normal vectors for meshes [397 days 19 hours and 40 minutes ago]</title>
		<description>
&lt;pre&gt;On 14/03/2025 18:36, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Hmm.  That's interesting.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Maybe there's a hole in the mesh, and it needs to get repaired?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ...&lt;/span&gt;

Yes, the mesh produced by my converter, but a workaround with Blender
solved all the problems. Thank you for your assistance.
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 14 Mar 2025 18:33:08 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C67d47664%241%40news.povray.org%3E/#%3C67d47664%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C67d47664%241%40news.povray.org%3E/#%3C67d47664%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Calculating normal vectors for meshes [397 days 22 hours and 34 minutes ago]</title>
		<description>
&lt;pre&gt;yesbird &amp;lt;sya###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Thanks for your suggestions, I have Poseray, but for unknown reasons&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; it doesn't like my mesh (please, see attached image).&lt;/span&gt;

Hmm.  That's interesting.
Maybe there's a hole in the mesh, and it needs to get repaired?

Perhaps try:
https://www.meshlab.net/

and see if that, or another similar tool helps after a round of fixing?

- BW

Are you generating your mesh programmatically?
Are you using an implicit or parametric equation to define the surface?
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 14 Mar 2025 15:40:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.67d44ce4dd89838fb00a87a025979125%40news.povray.org%3E/#%3Cweb.67d44ce4dd89838fb00a87a025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.67d44ce4dd89838fb00a87a025979125%40news.povray.org%3E/#%3Cweb.67d44ce4dd89838fb00a87a025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Calculating normal vectors for meshes [397 days 23 hours and 56 minutes ago]</title>
		<description>
&lt;pre&gt;On 14/03/2025 14:59, yesbird wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Working on a data converter from ZBrush's GoZ to Povray's mesh2 format&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ...&lt;/span&gt;

Thanks for your suggestions, I have Poseray, but for unknown reasons
it doesn't like my mesh (please, see attached image). Looks like the
the best solution will be to calculate normals myself in the converter's
code.

Bill, I will be glad to look at your code for reference.
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 14 Mar 2025 14:17:46 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C67d43a8a%40news.povray.org%3E/#%3C67d43a8a%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C67d43a8a%40news.povray.org%3E/#%3C67d43a8a%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Thomas de Groot] Re: Calculating normal vectors for meshes [398 days 1 hour and 6 minutes ago]</title>
		<description>
&lt;pre&gt;Op 14/03/2025 om 13:52 schreef Bald Eagle:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; yesbird &amp;lt;sya###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; Is there some ready-to-use code or utility for normal vectors&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; calculation for meshes ?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; You'd think there was.  And I suppose that there really ought to be some&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; existing under-the-hood calculation of normals for smooth_triangles.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; (Maybe Pose-Ray does it?  Silo?   TdG would know)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
Yes indeed: Poseray does the job and is easy to use.

https://sites.google.com/site/poseray/

Not sure about Silo. It can manipulate them though, and it is a complex 
program. However, it is not free software as Poseray is.

-- 
Thomas
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 14 Mar 2025 13:07:42 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C67d42a1e%241%40news.povray.org%3E/#%3C67d42a1e%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C67d42a1e%241%40news.povray.org%3E/#%3C67d42a1e%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Calculating normal vectors for meshes [398 days 1 hour and 19 minutes ago]</title>
		<description>
&lt;pre&gt;yesbird &amp;lt;sya###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Is there some ready-to-use code or utility for normal vectors&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; calculation for meshes ?&lt;/span&gt;

You'd think there was.  And I suppose that there really ought to be some
existing under-the-hood calculation of normals for smooth_triangles.

(Maybe Pose-Ray does it?  Silo?   TdG would know)

I'd say that what you're going to have to do is take all of your triangle data
and put it into an array, and then cycle through the array to make your smooth
triangles and calculate normals manually.

I'm at work for the next 7 hours, but I can post working code from one of my
mesh / mesh2 scenes if no one beats me to it.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 14 Mar 2025 12:55:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.67d42686dd89838fb00a87a025979125%40news.povray.org%3E/#%3Cweb.67d42686dd89838fb00a87a025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.67d42686dd89838fb00a87a025979125%40news.povray.org%3E/#%3Cweb.67d42686dd89838fb00a87a025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Mr] Re: Calculating normal vectors for meshes [398 days 1 hour and 44 minutes ago]</title>
		<description>
&lt;pre&gt;yesbird &amp;lt;sya###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Working on a data converter from ZBrush's GoZ to Povray's mesh2 format&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I found that GoZ does not contain normal vectors, so all mesh renderings&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; are flat. Is there some ready-to-use code or utility for normal vectors&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; calculation for meshes ?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Present mesh2 example is attached.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; --&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; YB&lt;/span&gt;

Interested if there is one, but meanwhile you could import your pov file into
Blender using POV@Ble (https://extensions.blender.org/add-ons/povable) and
re-export pov file after using the shade smooth command from Object menu
(https://docs.blender.org/manual/en/2.91/scene_layout/object/editing/shading.html).
If anything goes wrong it now has its own issue tracker, and reporting any
trouble may help these to get priority over other issues or regressions.
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 14 Mar 2025 12:30:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.67d420b9dd89838f16086ed06830a892%40news.povray.org%3E/#%3Cweb.67d420b9dd89838f16086ed06830a892%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.67d420b9dd89838f16086ed06830a892%40news.povray.org%3E/#%3Cweb.67d420b9dd89838f16086ed06830a892%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Calculating normal vectors for meshes [398 days 2 hours and 14 minutes ago]</title>
		<description>
&lt;pre&gt;Working on a data converter from ZBrush's GoZ to Povray's mesh2 format
I found that GoZ does not contain normal vectors, so all mesh renderings
are flat. Is there some ready-to-use code or utility for normal vectors
calculation for meshes ?

Present mesh2 example is attached.
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 14 Mar 2025 11:59:51 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C67d41a37%40news.povray.org%3E/#%3C67d41a37%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C67d41a37%40news.povray.org%3E/#%3C67d41a37%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[William F Pokorny] Re: Spherical Heightfields [401 days 4 hours and 36 minutes ago]</title>
		<description>
&lt;pre&gt;On 3/10/25 22:36, Maetes wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; On my blog I have uploaded some results that are quite impressive.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Several images, some in stereo, and a video.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; More is in the works, publication maybe next week.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Blog:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; https://www.maetes.com/en/astro/moon-renderings-first-results&lt;/span&gt;

Those look pretty good!

A long time ago - 20yrs maybe - I did a bunch of renders of the moon and 
doubt any as were good as those you've posted. :-)

One thing I saw on your first post in this thread 'I think', but I 
didn't mention is that you were not using any interpolation with your 
image_map{} (people often us 2 or 3).

This can help smooth things out with isosurfaces using images for 
offsets when your rendered image resolution nears the resolution of the 
displacement image. At some magnification the limits of the actual image 
information will show - and first away from the poles in a spherical image.

Blurring the image with an image processing tool an option too.

Blurring and interpolation come with the price of distortion, but more 
or less we are always approximating things to some degree.

Bill P.
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 11 Mar 2025 09:37:26 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C67d00456%241%40news.povray.org%3E/#%3C67d00456%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C67d00456%241%40news.povray.org%3E/#%3C67d00456%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Maetes] Re: Spherical Heightfields [401 days 11 hours and 34 minutes ago]</title>
		<description>
&lt;pre&gt;Hi William,
thanks for your textfile.

I had to struggle with artifacts like in the left column of your picture, they
are now gone.
Looks good so far, only at high magnifications I have to deal with vertical
lines, see picture.
I want to work on it again in the next few days and see if I can improve it.
Will try the hints in your article, especially change accuracy settings.

On my blog I have uploaded some results that are quite impressive.
Several images, some in stereo, and a video.
More is in the works, publication maybe next week.

Blog:
https://www.maetes.com/en/astro/moon-renderings-first-results

Youtube (Bad Quality, dont know why):
https://youtu.be/WbDMOhXn8FI

Adios,
M
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 11 Mar 2025 02:40:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.67cfa1516a47dfbb91d9a21130225ff5%40news.povray.org%3E/#%3Cweb.67cfa1516a47dfbb91d9a21130225ff5%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.67cfa1516a47dfbb91d9a21130225ff5%40news.povray.org%3E/#%3Cweb.67cfa1516a47dfbb91d9a21130225ff5%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Smooth, continuous Bezier splines (again) [410 days 14 hours and 34 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Tor Olav Kristensen&amp;quot; &amp;lt;tor###&amp;nbsp;[at]&amp;nbsp;TOBEREMOVEDgmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; It is interesting to see the discontinuities visualized like this.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Have you also made similar tools for working with curved surfaces?&lt;/span&gt;

That was what the whole Gaussian curvature project was about.
Iterating over a surface and showing the curvature combs would be - messy.

I also covered the various production methods of visualizing curvature and
discontinuities using zebra stripes, dots, isophotes, etc.


There is, of course, always so much more to do with this stuff.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 1 Mar 2025 23:40:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.67c39a4496675d9f1f9dae3025979125%40news.povray.org%3E/#%3Cweb.67c39a4496675d9f1f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.67c39a4496675d9f1f9dae3025979125%40news.povray.org%3E/#%3Cweb.67c39a4496675d9f1f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Tor Olav Kristensen] Re: Smooth, continuous Bezier splines (again) [410 days 21 hours and 34 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; That approach was also close to what I was doing, however it doesn't match the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; curvature of the spline segments at the endpoints.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Visually, it still looked too flat-then rounded-then flat-then rounded....&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Although I didn't pore over your code yet, I quickly skimmed it to see where the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; control points were calculated, and then bolted on my curvature comb code to&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; visualize the curvature over all of the spline segments.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; You can see where the mismatches are.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; So I still think I have to degree elevate and then I can mirror the additional&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; control points to get the curvature to match.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; (Also, FYI: the point/tip is actually a hard point.  So 2 separate composite&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; splines - 1 on the left and 1 on the right)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I'll see if I have enough time to patch in my degree elevation code and extend&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; the control-point mirroring that one extra &amp;quot;level&amp;quot; into the splines.&lt;/span&gt;

It is interesting to see the discontinuities visualized like this.

Have you also made similar tools for working with curved surfaces?

--
Tor Olav
http://subcube.com
https://github.com/t-o-k
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 1 Mar 2025 16:40:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.67c337f896675d9f43a63f5189db30a9%40news.povray.org%3E/#%3Cweb.67c337f896675d9f43a63f5189db30a9%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.67c337f896675d9f43a63f5189db30a9%40news.povray.org%3E/#%3Cweb.67c337f896675d9f43a63f5189db30a9%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Tor Olav Kristensen] Re: Making Patterns with functions [410 days 22 hours and 34 minutes ago]</title>
		<description>
&lt;pre&gt;William F Pokorny &amp;lt;ano###&amp;nbsp;[at]&amp;nbsp;anonymous&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;org&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Image attached.&lt;/span&gt;

I like this pattern.

It's lovely!

--
Tor Olav
http://subcube.com
https://github.com/t-o-k
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 1 Mar 2025 15:40:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.67c32942d81b847943a63f5189db30a9%40news.povray.org%3E/#%3Cweb.67c32942d81b847943a63f5189db30a9%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.67c32942d81b847943a63f5189db30a9%40news.povray.org%3E/#%3Cweb.67c32942d81b847943a63f5189db30a9%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[William F Pokorny] Re: Spherical Heightfields [410 days 23 hours and 39 minutes ago]</title>
		<description>
&lt;pre&gt;On 2/26/25 02:01, Maetes wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; One suspicion is: Size does matter.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; So far I have used radii between 1 and 10 for the sphere, Lunex uses &amp;gt; 1000.&lt;/span&gt;

Your &amp;quot;Size does matter&amp;quot; comment got me thinking about adding a short 
article and image to my yuqk documentation. Initial versions of both 
attached; Perhaps of some help.

Bill P.
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 1 Mar 2025 14:35:01 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C67c31b15%40news.povray.org%3E/#%3C67c31b15%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C67c31b15%40news.povray.org%3E/#%3C67c31b15%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Maetes] Re: Spherical Heightfields [414 days 7 hours and 9 minutes ago]</title>
		<description>
&lt;pre&gt;Hmmm... maybe I just see light at the end of a very long tunnel.

I picked out the most important lines from Lunex, cut them down to the bare
minimum, and now it seems to work.

One suspicion is: Size does matter.
So far I have used radii between 1 and 10 for the sphere, Lunex uses &amp;gt; 1000.

I'll continue to play around with it, it's far from perfect, but it looks better
than before, see picture.

Thanks again for the tips.

Martin
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 26 Feb 2025 07:05:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.67bebbab6a47dfbb40074f6e30225ff5%40news.povray.org%3E/#%3Cweb.67bebbab6a47dfbb40074f6e30225ff5%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.67bebbab6a47dfbb40074f6e30225ff5%40news.povray.org%3E/#%3Cweb.67bebbab6a47dfbb40074f6e30225ff5%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Maetes] Re: Spherical Heightfields [414 days 11 hours and 24 minutes ago]</title>
		<description>
&lt;pre&gt;Sorry for the long response-time, was a &amp;quot;strange&amp;quot; week here in Germany.

Thanks for the answers so far, but still I dont get it.


&lt;span class=&quot;RC1&quot;&gt;&amp;gt;Do you get any messages about a max gradient and/or your isosurface may have&lt;/span&gt;
holes?

=&amp;gt; no, none.

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; and yes, your contained by object needs to be large enough to hold the entire&lt;/span&gt;
displaced surface, else it will get clipped.

=&amp;gt; I tried with various diameters, with strange effects and new errors

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; (just curious: try adding the sqrt() around the x y z parts and see if that&lt;/span&gt;
helps any)

=&amp;gt; no effect

&lt;span class=&quot;RC1&quot;&gt;&amp;gt;
https://news.povray.org/povray.binaries.images/thread/%3C5f16dc29%40news.povray.org%3E/&lt;/span&gt;

=&amp;gt; hard stuff, but I will try to understand it.

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; The moon... very good subject. Have you looked at LUNEX ?&lt;/span&gt;

=&amp;gt; Good tip, thanks for that. I didn't know it before, I played around a bit.
Maybe I can learn something from that, because the results look better and
error-free after the first tests.

I will set up a new test environment in the next days/weeks, try to incorporate
Lunex's approach there. Maybe I'll get ahead with it. I can't use Lunex
completely for my purposes, but maybe I can learn from it.

Martin
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 26 Feb 2025 02:50:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.67be801b6a47dfbb40074f6e30225ff5%40news.povray.org%3E/#%3Cweb.67be801b6a47dfbb40074f6e30225ff5%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.67be801b6a47dfbb40074f6e30225ff5%40news.povray.org%3E/#%3Cweb.67be801b6a47dfbb40074f6e30225ff5%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[William F Pokorny] Re: Making Patterns with functions [414 days 14 hours and 51 minutes ago]</title>
		<description>
&lt;pre&gt;On 2/25/25 06:34, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Super.  Maybe you can help me understand why I always have to go through a NEW&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; form of calisthenics when I cross zero.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; (and as you can see, the pattern function is dirt simple)&lt;/span&gt;

If you are working with an equation you wish to use as a pattern, and 
the value of y, say, crossing through 0.0 flips or changes the 
function's behavior, one must deal with it in some way.

In your particular function there is a flip in behavior due internal 
value changes away from zero and another due y changing sign.

Below a yuqk fork scene showing some typical ways for dealing with value 
transitions causing unwanted change with your function based pattern. 
Some work with official POV-Ray releases too. To reproduce your result, 
however, we might need to do something pretty close to what you did! I 
didn't try to exactly match your posted result.

     // Sample scene. 'yuqk y_cross_0.pov +w1024 +h768 +p +mv3.8'
     global_settings { assumed_gamma 1.0 }
     #declare VarOrthoMult =
        20.0/max(image_width/image_height,image_height/image_width);
     #declare Camera01z = camera {
         orthographic
         location &amp;lt;0,0,-2&amp;gt;
         direction z
         right VarOrthoMult*x*max(1,image_width/image_height)
         up VarOrthoMult*y*max(1,image_height/image_width)
     }

     // 'odd()' is one of the fake keywords shipped with official
     // POV-Ray which the yuqk fork removed.
     #include &amp;quot;functions.inc&amp;quot;
     #include &amp;quot;munctions.inc&amp;quot;
     #local Dummy   = M_odd(0.5); // compiling F_odd()
     #local EvenOdd = M_odd(0);   // Later calls run F_odd internally
     #local EvenOdd = F_odd(2);   // = 0
     #local EvenOdd = F_odd(3);   // = 1

     #declare Formula1 = function { (y-sin(x))*(y-cos(x)) }

     // When y moving through zero flips results, it's typical to use
     // pattern value modifiers or similar inbuilt functions.

#if     (1)  // Call as FnY(0,y/2,0)
     #declare FnY = function {
         pattern { gradient y triangle_wave }
     }
#elseif (0)  // Call as FnY(0,y/4,0)
     #declare FnY = function {
         pattern { gradient y function_interval triangle_wave }
     }
#elseif (0)  // Call as FnY(0,y/2,0)
     #declare FnY = function {
         f_triangle_wave(y,0)
     }
#elseif (0)  // Call as FnY(0,y/4,0)
     #declare FnY = function {
         f_triangle_wave(y,1)
     }
#else
     #error &amp;quot;Must pick a definition of function Fny()\n&amp;quot;
#end

     #declare Formula2 = function {
         pattern {
             function { Formula1(x,y,z) }
             triangle_wave
             frequency 4
         }
     }
     #declare Formula3 = function { // Push y positive
         Formula1(x,
             select(
                 F_odd(f_round(y+100+0.5)),
                 0,
                 mod(y+100,1),
                 1-mod(y+100,1)),0)
     }
     #declare FnLine = function {
         select(((Formula2(x,y,z)&amp;gt;-0.1) &amp;amp; (Formula2(x,y,z)&amp;lt;0.1)),
             0, 0, 1)
     }

     plane { -z 0
         pigment {
           //function { Formula1(x,y,z) }
           //function { Formula1(x,FnY(0,y/2,0),z) }
           //function { Formula2(x,FnY(0,y/2,0),z) }
             function { FnLine(  x,FnY(0,y/2,0),z) }
           //function { Formula3(x,           y,z) }
           //raw_wave
             color_map {
                 [-2 rgb &amp;lt;1,0,0&amp;gt;]
                 [-0.01 rgb 0]
                 [+0.01 rgb 0]
                 [+2 rgb &amp;lt;0,1,0&amp;gt;]
             }
         }
         finish { emission 1 }
     }
     camera { Camera01z }

#if (0)
     union {
         sphere {&amp;lt;0, 0,0&amp;gt; , 0.1 }
         sphere {&amp;lt;0,+1,0&amp;gt; , 0.1 }
         sphere {&amp;lt;0,+2,0&amp;gt; , 0.1 }
         sphere {&amp;lt;0,-1,0&amp;gt; , 0.1 }
         sphere {&amp;lt;0,-2,0&amp;gt; , 0.1 }
         pigment { rgb &amp;lt;1,0,0&amp;gt;} finish { emission 1 }
     }
#end


Image attached.

Bill P.
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 25 Feb 2025 23:22:52 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C67be50cc%40news.povray.org%3E/#%3C67be50cc%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C67be50cc%40news.povray.org%3E/#%3C67be50cc%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Making Patterns with functions [415 days 2 hours and 34 minutes ago]</title>
		<description>
&lt;pre&gt;William F Pokorny &amp;lt;ano###&amp;nbsp;[at]&amp;nbsp;anonymous&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;org&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; On 2/24/25 21:02, Bald Eagle wrote:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; Was setting up a basic scene for a completely unrelated pattern, and came up&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; with this.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I really like this one!&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Bill P.&lt;/span&gt;

Super.  Maybe you can help me understand why I always have to go through a NEW
form of calisthenics when I cross zero.
(and as you can see, the pattern function is dirt simple)


#version 3.8;
global_settings {assumed_gamma 1}
default {finish {diffuse 1}}
//#include &amp;quot;colors.inc&amp;quot;
#include &amp;quot;functions.inc&amp;quot;
#include &amp;quot;math.inc&amp;quot;
#declare E = 0.000001;

#declare Zoom = 20;
camera {
 orthographic
 location &amp;lt;0, 0, -50&amp;gt;
 right x*image_width/Zoom
 up y*image_height/Zoom
 look_at &amp;lt;0, 0, 0&amp;gt;
 rotate y*0
}

sky_sphere {pigment {rgb 1}}

light_source {&amp;lt;0, 0, -50&amp;gt; rgb 1}

#declare fmod = function (Value, Modulo) {select (Value, 1 - mod (abs (Value),
Modulo), mod (abs (Value), Modulo))}  // this gives a mod function that remains
consistant across the origin


#declare Formula1 = function {(y-sin(x))*(y-cos(x))}  // graphs 2 functions
simultaneously
#declare Formula2 = function {
 select (y,
 select (odd(floor(y/2)), 0, (fmod(y, 2)-sin(x))*(fmod(y, 2)-cos(x)), (fmod(y,
2)+sin(x))*(fmod(y, 2)+cos(x)) ),
 select (odd(floor(y/2)), 0, (fmod(y, 2)-1-sin(x))*(fmod(y, 2)-1-cos(x)),
(fmod(y, 2)-1+sin(x))*(fmod(y, 2)-1+cos(x)) ) // why?
 )
}


// debugging loop
#for (Y, -10, 10)
 #declare Value = odd(floor(Y/2));
 #declare Value2 = fmod(Y,2);
 #debug concat (&amp;quot; Y = &amp;quot;, str(Y, 0, 0),  &amp;quot;     Value = &amp;quot;, str(Value, 0, 0), &amp;quot;
Value2 = &amp;quot;, str(Value, 0, 0), &amp;quot;\n&amp;quot;)

#end

#declare Formula = function {Formula2 (x, y, z)}

#declare RawPattern = pigment {function {Formula (x, y, z)}}

#declare Thickness = 0.1;

#declare LinePattern = pigment {function {select (abs (Formula (x, y, z)) -
Thickness, 0, 1)}}    // Once (&amp;lt;=1)
#declare LinePattern2 = pigment {function {select (abs (mod (Formula (x, y, z),
1)) - Thickness, 0, 1)}}




plane {z, 0 texture {pigment {LinePattern} finish {diffuse 1}} translate -z*0.1}
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 25 Feb 2025 11:40:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.67bdaae1d81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.67bdaae1d81b84791f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.67bdaae1d81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.67bdaae1d81b84791f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[William F Pokorny] Re: Making Patterns with functions [415 days 4 hours and 10 minutes ago]</title>
		<description>
&lt;pre&gt;On 2/24/25 21:02, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Was setting up a basic scene for a completely unrelated pattern, and came up&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; with this.&lt;/span&gt;

I really like this one!

Bill P.
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 25 Feb 2025 10:03:17 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C67bd9565%241%40news.povray.org%3E/#%3C67bd9565%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C67bd9565%241%40news.povray.org%3E/#%3C67bd9565%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Ilya Razmanov] Re: Making Patterns with functions [415 days 4 hours and 19 minutes ago]</title>
		<description>
&lt;pre&gt;On 25.02.2025 10:34, kurtz le pirate wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Just for a french reader, what PITA meens ?&lt;/span&gt;

Pain in the ass.

-- 
Ilyich the Toad
https://dnyarri.github.io/
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 25 Feb 2025 09:54:19 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C67bd934b%241%40news.povray.org%3E/#%3C67bd934b%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C67bd934b%241%40news.povray.org%3E/#%3C67bd934b%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[kurtz le pirate] Re: Making Patterns with functions [415 days 6 hours and 40 minutes ago]</title>
		<description>
&lt;pre&gt;On 25/02/2025 03:02, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Was setting up a basic scene for a completely unrelated pattern, and came up&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; with this.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Trying to consistently get functions to behave consistently across N=0 is a&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; giant PITA in POV-Ray, when I don't think it ought to be.&lt;/span&gt;


Really impressive patterns. What a good job.
Just for a french reader, what PITA meens ?



-- 
kurtz le pirate
compagnie de la banquise
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 25 Feb 2025 07:34:01 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C67bd7269%241%40news.povray.org%3E/#%3C67bd7269%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C67bd7269%241%40news.povray.org%3E/#%3C67bd7269%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Making Patterns with functions [415 days 12 hours and 9 minutes ago]</title>
		<description>
&lt;pre&gt;Was setting up a basic scene for a completely unrelated pattern, and came up
with this.

Trying to consistently get functions to behave consistently across N=0 is a
giant PITA in POV-Ray, when I don't think it ought to be.


- BW
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 25 Feb 2025 02:05:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.67bd24c6d81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.67bd24c6d81b84791f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.67bd24c6d81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.67bd24c6d81b84791f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[kurtz le pirate] Re: Spherical Heightfields [421 days 22 hours and 10 minutes ago]</title>
		<description>
&lt;pre&gt;On 18/02/2025 13:25, Maetes wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I'm currently trying my hand at spherical heightfields, but I'm running into&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; strange problems.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I put a height map (DEM) of the moon around a sphere, based on these forum&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; posts:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;
https://news.povray.org/povray.binaries.images/thread/%3C38a2dc5b%40news.povray.org%3E&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;
https://news.povray.org/povray.text.scene-files/thread/%3C38A037EB.504C1A6%40inapg.inra.fr%3E/?ttop=444549&amp;amp;toff=750&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Everything looks good in the global view, but when I zoom in closer, radial&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; errors appear at the day-night boundary.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; A higher resolution of the DEM does not change anything, and it works fine when&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; using bump_map.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; But the larger the sphere (contained_by), the finer the disturbances?!&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Unfortunately, I have no idea what the functions in the script do.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; This one in particular puzzles me:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; x*x+y*y+z*z + 0.1 - hftext(x,y,z).y * 0.03&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Can someone help me with that?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Is there a reasonable tutorial that explains the working of user-defined&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; functions well?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Or does anyone find the bug in the script that causes the glitches?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;

The moon... very good subject. Have you looked at LUNEX ?
Lots of examples and code :

&amp;lt;https://www.phpsciencelabs.com/lunex-for-pov-ray/&amp;gt;




-- 
kurtz le pirate
compagnie de la banquise
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 18 Feb 2025 16:03:52 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C67b4af68%241%40news.povray.org%3E/#%3C67b4af68%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C67b4af68%241%40news.povray.org%3E/#%3C67b4af68%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Spherical Heightfields [421 days 23 hours and 14 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Maetes&amp;quot; &amp;lt;nomail@nomail&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Unfortunately, I have no idea what the functions in the script do.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; This one in particular puzzles me:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; x*x+y*y+z*z + 0.1 - hftext(x,y,z).y * 0.03&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Can someone help me with that?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Is there a reasonable tutorial that explains the working of user-defined&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; functions well?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Or does anyone find the bug in the script that causes the glitches?&lt;/span&gt;

Do you get any messages about a max gradient and/or your isosurface may have
holes?

x*x+y*y+z*z + 0.1 - hftext(x,y,z).y * 0.03

So, the standard equation for a sphere is sqrt (x*x + y*y + z*z) - Radius = 0
What you're doing with the above equation is using the elevation of the
heightfield to modify the radius at any given point on the sphere.

and yes, your contained by object needs to be large enough to hold the entire
displaced surface, else it will get clipped.

(just curious: try adding the sqrt() around the x y z parts and see if that
helps any)


&lt;span class=&quot;RC1&quot;&gt;&amp;gt; My code used, greatly simplified:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  #declare hftext = function {&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   pigment {&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    image_map {&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;     png &amp;quot;moon_dem.png&amp;quot;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;     map_type 1&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  #local mResult = isosurface {&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   function {&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    x*x+y*y+z*z + 0.1 -&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    hftext(x,y,z).y * 0.03&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   contained_by {&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    sphere {0,1}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   max_gradient 10&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   threshold 0.95&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   //threshold 2&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   texture {&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;     pigment {&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      color rgb &amp;lt;0.3, 0.3, 0.3&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;     }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Thanks,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Martin&lt;/span&gt;

Also look at:

https://news.povray.org/povray.binaries.images/thread/%3C5f16dc29%40news.povray.org%3E/


- BE
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 18 Feb 2025 15:00:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.67b4a0486a47dfbba5a6be6925979125%40news.povray.org%3E/#%3Cweb.67b4a0486a47dfbba5a6be6925979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.67b4a0486a47dfbba5a6be6925979125%40news.povray.org%3E/#%3Cweb.67b4a0486a47dfbba5a6be6925979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Maetes] Spherical Heightfields [422 days 1 hour and 44 minutes ago]</title>
		<description>
&lt;pre&gt;I'm currently trying my hand at spherical heightfields, but I'm running into
strange problems.
I put a height map (DEM) of the moon around a sphere, based on these forum
posts:
https://news.povray.org/povray.binaries.images/thread/%3C38a2dc5b%40news.povray.org%3E
https://news.povray.org/povray.text.scene-files/thread/%3C38A037EB.504C1A6%40inapg.inra.fr%3E/?ttop=444549&amp;amp;toff=750

Everything looks good in the global view, but when I zoom in closer, radial
errors appear at the day-night boundary.
A higher resolution of the DEM does not change anything, and it works fine when
using bump_map.
But the larger the sphere (contained_by), the finer the disturbances?!

Unfortunately, I have no idea what the functions in the script do.
This one in particular puzzles me:
x*x+y*y+z*z + 0.1 - hftext(x,y,z).y * 0.03

Can someone help me with that?
Is there a reasonable tutorial that explains the working of user-defined
functions well?
Or does anyone find the bug in the script that causes the glitches?

doesnt helps me to understand the stuff:
https://www.povray.org/documentation/view/3.6.2/231/


My code used, greatly simplified:

 #declare hftext = function {
  pigment {
   image_map {
    png &amp;quot;moon_dem.png&amp;quot;
    map_type 1
   }
  }
 }
 #local mResult = isosurface {
  function {
   x*x+y*y+z*z + 0.1 -
   hftext(x,y,z).y * 0.03
  }
  contained_by {
   sphere {0,1}
  }
  max_gradient 10
  threshold 0.95
  //threshold 2
  texture {
    pigment {
     color rgb &amp;lt;0.3, 0.3, 0.3&amp;gt;
    }
  }
 }

Thanks,
Martin
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 18 Feb 2025 12:30:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.67b47b18cb1bd5e34d0a98d30225ff5%40news.povray.org%3E/#%3Cweb.67b47b18cb1bd5e34d0a98d30225ff5%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.67b47b18cb1bd5e34d0a98d30225ff5%40news.povray.org%3E/#%3Cweb.67b47b18cb1bd5e34d0a98d30225ff5%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Thomas] Re: Photon mapping calculation limited to 8 thre... [422 days 14 hours and 44 minutes ago]</title>
		<description>
&lt;pre&gt;Alain Martel &amp;lt;kua###&amp;nbsp;[at]&amp;nbsp;videotron&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;ca&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; So, you have one light and 8 target objects, or 2 lights and 4 target&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; objects, or 4 lights and 2 target objects or 8 lights and 1 target object.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; The maximum number of threads used while photon mapping is the product&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; of the number of light_source by the number of objects with a target block.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; To the best of my knowledge : Currently, it is not possible to divide&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; that process between several threads. The algorithm used is strictly&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; linear and can't get split between multiple threads.&lt;/span&gt;

Makes sense, thanks for clarifying.

However, POV-Ray 3.7 seems to log this incorrectly. With 16 CPU cores, 1 light
source and 3 target objects, I can clearly see 300% CPU usage during photon
mapping (so 3 cores are used), however, 19 threads instead of 3 threads are
logged.

Render Time:
  Photon Time:      0 hours  2 minutes 53 seconds (173.948 seconds)
              using 19 thread(s) with 456.834 CPU-seconds total
  Radiosity Time:   No radiosity
  Trace Time:       0 hours 11 minutes 12 seconds (672.855 seconds)
              using 16 thread(s) with 10100.757 CPU-seconds total


Regards,
Thomas.
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 17 Feb 2025 23:30:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.67b3c55cd73c9149805ef56b753ea5c%40news.povray.org%3E/#%3Cweb.67b3c55cd73c9149805ef56b753ea5c%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.67b3c55cd73c9149805ef56b753ea5c%40news.povray.org%3E/#%3Cweb.67b3c55cd73c9149805ef56b753ea5c%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Tor Olav Kristensen] Re: Using vectors in functions [422 days 14 hours and 54 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; So, I was going to spend some time converting some cool Shadertoy code into SDL,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; and I was annoyed (as usual) that I couldn't do certain things.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I specifically wanted to create a function that performed a rotational matrix&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; transform on a vector given a variable angle.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Well, the function VM doesn't allow transform functions to take user-defined&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; arguments (&amp;quot;parameter names&amp;quot;).&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; And we all &amp;quot;know&amp;quot; that you can't use vectors in functions.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Hell you can't even use vector dot-notation in functions.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; 2.2.1.6.4 Declaring User-Defined Vector Functions&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Right now you may only declare vector functions using one of the special&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; function types. Supported types are transform and spline functions. For example:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  #declare foo = function {&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    transform {&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      rotate &amp;lt;90, 0, 0&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      scale 4&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  #declare myvector = foo(4, 3, 7);&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  #declare foo2 = function {&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    spline {&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      linear_spline&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      0.0, &amp;lt;0,0,0&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      0.5, &amp;lt;1,0,0&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      1.0, &amp;lt;0,0,0&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  #declare myvector2 = foo2(0.7);&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Function splines take the vector size into account. That is, a function&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; containing a spline with five components will also return a five component&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; vector (aka a color), a function containing a spline with two components will&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; only return a two component vector and so on.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Note: the number of parameters of special function types is determined&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; automatically, so you do not need to specify parameter names.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; But, me being ME, that got a few things wiggling up in the ole' brain, and I&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; started to follow a few tenuous ides.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Round and round I went in circles, trying to make vector functions work, and&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; trying to bridge the gap between the SDL parser and the function VM.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; And I have mostly done that as you'll see in the attached file.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; The only thing that would make this FULLY functional would be to find a way to&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; shoehorn the actual vector into an argument allowable by some sort of special&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; function syntax.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; But I hope that this inspires people to start playing around with the functions,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; macros, reading the docs, exploring the various include files in the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; distribution, and doing some experiments that reveal things that we can do (but&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; were told we couldn't).&lt;/span&gt;

Hi Bill

I once did some work on something similar. See this thread:

From: Tor Olav Kristensen
Subject: Visualizing vector fields with a single isosurface
Date: 2010-01-30 08:35:01
http://news.povray.org/povray.binaries.images/thread/%3Cweb.4b6434d658c2698ed6291f840%40news.povray.org%3E/

Here's my (not so good) try at an explanation of what is going on:

In this isosurface, a grid of rounded boxes are created with a function.
And each of the x, y and z arguments to this function are processed by
other functions that does inverse transformations to them. I.e.: For each
points (x, y, z) in space these &amp;quot;preprosessing functions&amp;quot; calculates a
transform to apply to the x, y, z values that are fed to the function
that creates the the grid of rounded boxes.

Also have a look at how the function created by the RotateXYZ_Function()
macro is used in these SDL files:

https://dataduppedings.no/subcube/POV-Ray/Isosurface-Rotated_Noise.txt
https://dataduppedings.no/subcube/POV-Ray/Isosurface-Cubic_Space_Division.txt

--
Tor Olav
http://subcube.com
https://github.com/t-o-k
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 17 Feb 2025 23:20:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.67b3c3ee6aeda660737cc36e89db30a9%40news.povray.org%3E/#%3Cweb.67b3c3ee6aeda660737cc36e89db30a9%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.67b3c3ee6aeda660737cc36e89db30a9%40news.povray.org%3E/#%3Cweb.67b3c3ee6aeda660737cc36e89db30a9%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Using vectors in functions [422 days 18 hours and 39 minutes ago]</title>
		<description>
&lt;pre&gt;So, I was going to spend some time converting some cool Shadertoy code into SDL,
and I was annoyed (as usual) that I couldn't do certain things.
I specifically wanted to create a function that performed a rotational matrix
transform on a vector given a variable angle.

Well, the function VM doesn't allow transform functions to take user-defined
arguments (&amp;quot;parameter names&amp;quot;).
And we all &amp;quot;know&amp;quot; that you can't use vectors in functions.
Hell you can't even use vector dot-notation in functions.

2.2.1.6.4 Declaring User-Defined Vector Functions
Right now you may only declare vector functions using one of the special
function types. Supported types are transform and spline functions. For example:

 #declare foo = function {
   transform {
     rotate &amp;lt;90, 0, 0&amp;gt;
     scale 4
   }
 }

 #declare myvector = foo(4, 3, 7);

 #declare foo2 = function {
   spline {
     linear_spline
     0.0, &amp;lt;0,0,0&amp;gt;
     0.5, &amp;lt;1,0,0&amp;gt;
     1.0, &amp;lt;0,0,0&amp;gt;
   }
 }

 #declare myvector2 = foo2(0.7);

Function splines take the vector size into account. That is, a function
containing a spline with five components will also return a five component
vector (aka a color), a function containing a spline with two components will
only return a two component vector and so on.

Note: the number of parameters of special function types is determined
automatically, so you do not need to specify parameter names.


But, me being ME, that got a few things wiggling up in the ole' brain, and I
started to follow a few tenuous ides.
Round and round I went in circles, trying to make vector functions work, and
trying to bridge the gap between the SDL parser and the function VM.

And I have mostly done that as you'll see in the attached file.

The only thing that would make this FULLY functional would be to find a way to
shoehorn the actual vector into an argument allowable by some sort of special
function syntax.

But I hope that this inspires people to start playing around with the functions,
macros, reading the docs, exploring the various include files in the
distribution, and doing some experiments that reveal things that we can do (but
were told we couldn't).

- Bill &amp;quot;Bald Eagle&amp;quot; Walker
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 17 Feb 2025 19:35:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.67b38f32de1c85dd1f9dae3025979125%40news.povray.org%3E/#%3Cweb.67b38f32de1c85dd1f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.67b38f32de1c85dd1f9dae3025979125%40news.povray.org%3E/#%3Cweb.67b38f32de1c85dd1f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Francois LE COAT] Re: Optical Inertia [436 days 22 hours and 14 minutes ago]</title>
		<description>
&lt;pre&gt;Hi,

Francois LE COAT writes:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Monocular Depth :&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;lt;https://www.youtube.com/watch?v=34zUDqEzHos&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; A drone flies between the trees of a forest. Thanks to the optical-flow&lt;/span&gt;

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; measured on successive images, the temporal disparity reveals the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; forest of trees... We take a reference image, the optical-flow is&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; measured on two rectified images. Then we change the reference when&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; the inter-correlation drops below 60%. We can perceive the relief in&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; depth with a single camera, over time.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; In fact, when we watch images captured by a drone, although there is&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; only one camera, we often see the relief. This is particularly marked&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; for trees in a forest. The goal here is to evaluate this relief, with a&lt;/span&gt;

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; measurement of &amp;quot;optical-flow&amp;quot;, which allows one image to be matched wit&lt;/span&gt;
h
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; another, when they seem to be close (we say they are &amp;quot;correlated&amp;quot;).&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; We have two eyes, and the methods for measuring visible relief by &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; stereoscopy are very developed. Since the beginning of photography,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; there were devices like the &amp;#226;&amp;#128;&amp;#156;stereoscope&amp;#226;&amp;#128;&amp;#157; which
allows &lt;/span&gt;
you to see the
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; relief with two pictures, naturally. It is possible to measure relief,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; thanks to epipolar geometry, and well-known mathematics. There are many&lt;/span&gt;

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; measurement methods, very effective and based on human vision.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; When it comes to measuring relief with a single camera, knowledge is&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; less established. There are 3D cameras, called &amp;quot;RGBD&amp;quot; with a &amp;quot;D&amp;quot; for &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;quot;depth&amp;quot;. But how do they work? Is it possible to improve those? What&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I am showing here does not require the use of any &amp;#226;&amp;#128;&amp;#156;artificial n&lt;/span&gt;
eural
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; network&amp;#226;&amp;#128;&amp;#157;. It is a physical measurement, with a classic algorith&lt;/span&gt;
m,
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; which does not come from A.I. nor a big computer :-)&lt;/span&gt;

A WEB page was made to illustrate Monocular Depth...

&amp;lt;https://hebergement.universite-paris-saclay.fr/lecoat/demoweb/monocular_
depth.html&amp;gt;

This is about measuring monocular depth, just as stereoscopic disparity
is measured. It means quantifying the depth, with images from a single
camera. We can see this relief naturally, but it is a matter of
measuring it with the optical-flow :-)

Best regards,

-- 
Fran&amp;#195;&amp;#167;ois LE COAT
&amp;lt;https://eureka.atari.org/&amp;gt;
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 3 Feb 2025 16:00:01 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C67a0e801%241%40news.povray.org%3E/#%3C67a0e801%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C67a0e801%241%40news.povray.org%3E/#%3C67a0e801%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Leroy] Re: Smooth, continuous Bezier splines (again) [438 days 18 hours and 24 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I've got a diagram of where measured points should be along a CURVE that&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; describes the profile of a solid edge.&lt;/span&gt;

 I came late to this, After I reading all the other inputs, I thought I'd throw
my two cents in. I wrote a win program a long time ago to make prisms and
polygons for POV. PolPrm.exe it's at http://leroyw.byethost15.com with the rest
of my window program I wrote for POV.

I wrote in mainly so I could switch the between different types of prisms and
polygons as needed. It started as a simple project with limited options and a
small working area. After using for it awhile I started adding things to make
life easier. I put in a few predefined shapes, set it so I could dump the data
into an array file, and a bunch of little things.
 The last time I upgraded, it started because someone in this forum wanted to
know how to make a circle out of a prism. I'd like to have that in PolPrm. So
after figuring out how to make the circle, I went on a building spree. I add
more curve shapes, made it where can split a shape in two, combine two shapes
into one,and finally made the long over due undo function. I swore that this was
the last upgrade.
 When I saw your shape I said 'that would fit nicely in PolPrm'. You see PolPrm
still has a small working area 2*2 pov units square. Then reading all the
messages it seamed that what you wanted is the math or a least the conversation
went that way. But I went ahead and put a shape similar to yours in PolPrm and
play around with it. That's when I realize PolPrm wasn't really made for
precision. It make custom shapes very well.
 Another thing I learned after reading all this forum messages is that the real
reason I wrote PolPrm is that I didn't want to the math every time  I made a
prism.

Have Fun!
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 1 Feb 2025 19:50:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.679e79e196675d9f65a8eed3f712fc00%40news.povray.org%3E/#%3Cweb.679e79e196675d9f65a8eed3f712fc00%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.679e79e196675d9f65a8eed3f712fc00%40news.povray.org%3E/#%3Cweb.679e79e196675d9f65a8eed3f712fc00%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Smooth, continuous Bezier splines (again) [440 days 15 hours and 39 minutes ago]</title>
		<description>
&lt;pre&gt;That approach was also close to what I was doing, however it doesn't match the
curvature of the spline segments at the endpoints.

Visually, it still looked too flat-then rounded-then flat-then rounded....

Although I didn't pore over your code yet, I quickly skimmed it to see where the
control points were calculated, and then bolted on my curvature comb code to
visualize the curvature over all of the spline segments.

You can see where the mismatches are.

So I still think I have to degree elevate and then I can mirror the additional
control points to get the curvature to match.

(Also, FYI: the point/tip is actually a hard point.  So 2 separate composite
splines - 1 on the left and 1 on the right)

I'll see if I have enough time to patch in my degree elevation code and extend
the control-point mirroring that one extra &amp;quot;level&amp;quot; into the splines.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 30 Jan 2025 22:35:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.679bfd9d96675d9f1f9dae3025979125%40news.povray.org%3E/#%3Cweb.679bfd9d96675d9f1f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.679bfd9d96675d9f1f9dae3025979125%40news.povray.org%3E/#%3Cweb.679bfd9d96675d9f1f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[ingo] Re: Smooth, continuous Bezier splines (again) [440 days 23 hours and 4 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;quot;What does Fn_RabbitHole () do?  I can't find it in the docs . . .&amp;quot;&lt;/span&gt;

Dig. Dig deeper.


Yes, SDL is slow when one cannot use functions. This is why I implemented the
meshmakermacros and the curves in Nim, but have not married them.

https://gist.github.com/ingoogni/490d2d50710bab4fe5e689714e9ef287

for mesh it is easy, generate and use, for splines it realy depends on the use,

ingo
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 30 Jan 2025 15:10:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.679b962a96675d9f17bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.679b962a96675d9f17bac71e8ffb8ce3%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.679b962a96675d9f17bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.679b962a96675d9f17bac71e8ffb8ce3%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Smooth, continuous Bezier splines (again) [440 days 23 hours and 44 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;ingo&amp;quot; &amp;lt;nomail@nomail&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; William F Pokorny &amp;lt;ano###&amp;nbsp;[at]&amp;nbsp;anonymous&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;org&amp;gt; wrote:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; Rabbit hole...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; good place to hord obscure POV-Ray include files ;)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ingo&lt;/span&gt;

&amp;quot;What does Fn_RabbitHole () do?  I can't find it in the docs . . .&amp;quot;
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 30 Jan 2025 14:30:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.679b8c2f96675d9f25b4de9225979125%40news.povray.org%3E/#%3Cweb.679b8c2f96675d9f25b4de9225979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.679b8c2f96675d9f25b4de9225979125%40news.povray.org%3E/#%3Cweb.679b8c2f96675d9f25b4de9225979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[ingo] Re: Smooth, continuous Bezier splines (again) [440 days 23 hours and 59 minutes ago]</title>
		<description>
&lt;pre&gt;William F Pokorny &amp;lt;ano###&amp;nbsp;[at]&amp;nbsp;anonymous&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;org&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Rabbit hole...&lt;/span&gt;

good place to hord obscure POV-Ray include files ;)

ingo
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 30 Jan 2025 14:15:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.679b88a596675d9f17bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.679b88a596675d9f17bac71e8ffb8ce3%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.679b88a596675d9f17bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.679b88a596675d9f17bac71e8ffb8ce3%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Smooth, continuous Bezier splines (again) [441 days and 4 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;ingo&amp;quot; &amp;lt;nomail@nomail&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; William F Pokorny &amp;lt;ano###&amp;nbsp;[at]&amp;nbsp;anonymous&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;org&amp;gt; wrote:&lt;/span&gt;

&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; The question too is whether some of this 'spline stuff' better fits in&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; spline{} like SDL feature -&lt;/span&gt;


&lt;span class=&quot;RC1&quot;&gt;&amp;gt; interpolate{} always seemed a more fitting keyword to me, even dough I didn't&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; use it in my curves.inc ( https://ingoogni.nl/download/Curve.zip )&lt;/span&gt;


Well - I'm of two minds on this.
1. Yes, I suppose that formally, all of this would conceptually best be grouped
into the spline {} portions of the code.

however:

2. Using a spline in a user-defined SDL function would kill speed, would it not?
(I can also envision that if &amp;lt;x, y, z&amp;gt; were able to be plugged into splines at
render time, someone, somewhere would come up with some amazing thing to do with
that.)

However gets it done faster, or at all, is fine with me.

(This topic also suggests that looking into making array elements available to
functions might be something to look at as well.  After all, if splines can be
used in functions, why can't arrays be used - assuming that the element is of a
type able to be processed by a function {} )
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 30 Jan 2025 14:10:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.679b880396675d9f25b4de9225979125%40news.povray.org%3E/#%3Cweb.679b880396675d9f25b4de9225979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.679b880396675d9f25b4de9225979125%40news.povray.org%3E/#%3Cweb.679b880396675d9f25b4de9225979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[William F Pokorny] Re: Smooth, continuous Bezier splines (again) [441 days 1 hour and 15 minutes ago]</title>
		<description>
&lt;pre&gt;On 1/30/25 01:07, ingo wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; interpolate{} always seemed a more fitting keyword to me, even dough I didn't&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; use it in my curves.inc (https://ingoogni.nl/download/Curve.zip )&lt;/span&gt;

Thanks for the reminder - should be useful. I see, for example, you have 
the quadratic bezier. When I checked I had a copy of your latest 
Curve.zip already stored locally in my Ingo directory.

Some of what you have in there does look more like interpolation within 
the constraints of a curve segment's form. I'll have to play those end 
point velocity control settings.

Rabbit hole...

Bill P.
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 30 Jan 2025 12:58:30 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C679b7776%241%40news.povray.org%3E/#%3C679b7776%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C679b7776%241%40news.povray.org%3E/#%3C679b7776%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[ingo] Re: Smooth, continuous Bezier splines (again) [441 days 8 hours and 4 minutes ago]</title>
		<description>
&lt;pre&gt;William F Pokorny &amp;lt;ano###&amp;nbsp;[at]&amp;nbsp;anonymous&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;org&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; The question too is whether some of this 'spline stuff' better fits in&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; spline{} like SDL feature -&lt;/span&gt;

ABX has added several splines / curves in the past to MegaPov, Akima, x_spline,
TCB (Kochanek/Bartels), SOR spline and maybe even circle spline based on Ron
Parker's torus spline include file.

interpolate{} always seemed a more fitting keyword to me, even dough I didn't
use it in my curves.inc ( https://ingoogni.nl/download/Curve.zip )

ingo
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 30 Jan 2025 06:10:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.679b173f96675d9f17bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.679b173f96675d9f17bac71e8ffb8ce3%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.679b173f96675d9f17bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.679b173f96675d9f17bac71e8ffb8ce3%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Tor Olav Kristensen] Re: Smooth, continuous Bezier splines (again) [441 days 14 hours and 4 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Tor Olav Kristensen&amp;quot; &amp;lt;tor###&amp;nbsp;[at]&amp;nbsp;TOBEREMOVEDgmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; You have probably noticed that I have only provided a 2D solution, with all the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; points within a XY-plane.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Now, if you like a little extra challenge, you can rewrite the code so that it&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; can provide a full 3D solution.&lt;/span&gt;

That is actually not a simple challenge: There are difficult decisions to
be made if 3 of the given points lies on a line.

A simpler challenge is to change the code so that your endpoints are joined
smoothly too.

--
Tor Olav
http://subcube.com
https://github.com/t-o-k
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 30 Jan 2025 00:10:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.679ac2e996675d9fcc90517889db30a9%40news.povray.org%3E/#%3Cweb.679ac2e996675d9fcc90517889db30a9%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.679ac2e996675d9fcc90517889db30a9%40news.povray.org%3E/#%3Cweb.679ac2e996675d9fcc90517889db30a9%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Tor Olav Kristensen] Re: Smooth, continuous Bezier splines (again) [441 days 16 hours and 44 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;quot;Tor Olav Kristensen&amp;quot; &amp;lt;tor###&amp;nbsp;[at]&amp;nbsp;TOBEREMOVEDgmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; The code below shows the results of what I think Ingo suggested.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Thank you.  I thought this would grab your attention - however I was hoping to&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; get some free time to do something with it before you submitted the solution!&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; :D&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Too late.  You win.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I'll take a look when I get home in an hour.&lt;/span&gt;

  ;)

Ingo is guilty too..

You are aware that you do not HAVE to look at my code, or?

You have probably noticed that I have only provided a 2D solution, with all the
points within a XY-plane.

Now, if you like a little extra challenge, you can rewrite the code so that it
can provide a full 3D solution.

--
Tor Olav
http://subcube.com
https://github.com/t-o-k
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 29 Jan 2025 21:30:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.679a9cb296675d9f5ad2295d89db30a9%40news.povray.org%3E/#%3Cweb.679a9cb296675d9f5ad2295d89db30a9%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.679a9cb296675d9f5ad2295d89db30a9%40news.povray.org%3E/#%3Cweb.679a9cb296675d9f5ad2295d89db30a9%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Smooth, continuous Bezier splines (again) [441 days 17 hours and 24 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Tor Olav Kristensen&amp;quot; &amp;lt;tor###&amp;nbsp;[at]&amp;nbsp;TOBEREMOVEDgmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; The code below shows the results of what I think Ingo suggested.&lt;/span&gt;

Thank you.  I thought this would grab your attention - however I was hoping to
get some free time to do something with it before you submitted the solution!
:D
Too late.  You win.

I'll take a look when I get home in an hour.
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 29 Jan 2025 20:50:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.679a939896675d9f327467e125979125%40news.povray.org%3E/#%3Cweb.679a939896675d9f327467e125979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.679a939896675d9f327467e125979125%40news.povray.org%3E/#%3Cweb.679a939896675d9f327467e125979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Smooth, continuous Bezier splines (again) [441 days 17 hours and 44 minutes ago]</title>
		<description>
&lt;pre&gt;William F Pokorny &amp;lt;ano###&amp;nbsp;[at]&amp;nbsp;anonymous&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;org&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I've grabbed code over time for some 2D functions I planned to call&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; f_bezier_2d_quartic() and f_bezier_2d_quintic().&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Do you have - or know of - 3D code for either of these?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Or for a 3D quadratic?&lt;/span&gt;

Maybe I'm misunderstanding, but:
They're not dimensional - they're parametric.
Take any N-D point and the spline just interpolates ALL of the dimensions with
the same equations.
Right?
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 29 Jan 2025 20:30:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.679a8f9996675d9f327467e125979125%40news.povray.org%3E/#%3Cweb.679a8f9996675d9f327467e125979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.679a8f9996675d9f327467e125979125%40news.povray.org%3E/#%3Cweb.679a8f9996675d9f327467e125979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[William F Pokorny] Re: Smooth, continuous Bezier splines (again) [441 days 18 hours and 11 minutes ago]</title>
		<description>
&lt;pre&gt;On 1/29/25 13:27, Tor Olav Kristensen wrote:
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; Perhaps time to add an inbuilt f_bezier_cubic() to yuqk too.
&amp;#240;&amp;#159;&amp;#153;&amp;#130;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Yes, that would be nice.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Then comes the question if adding f_bezier_quadratic() and f_bezier_quartic()&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; also is a good idea.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; And then if the various derivative functions of them should be added...&lt;/span&gt;

I've grabbed code over time for some 2D functions I planned to call 
f_bezier_2d_quartic() and f_bezier_2d_quintic().

Do you have - or know of - 3D code for either of these?

Or for a 3D quadratic?  I might have the quadratic 3D form in my notes 
notes somewhere or in my TCL wrapper script (where I'd coded up some 
simpler spline by segment types maybe 15 years ago). I wonder if 
quadratic that useful excepting having better performance?

FYI. As yuqk inbuilt functions the convenient versions (packed vectors) 
for 3D forms would be limited to a -10 to +10 box and single float 
accuracy rather than double for the any 2D forms.

As for the derivative forms, if you have code in hand, maybe we do a few 
  near term? I don't have anything ready to go.

The question too is whether some of this 'spline stuff' better fits in 
spline{} like SDL feature - one supporting the Bezier segment control 
point forms. We can describe many segment curves, function wrap, but 
what we can do dynamically from the render time VM is limited.

Aside: Jerome coded up a bunch of spline extensions in his hgpovray38 
fork (which 'maybe' came from megapov?). I don't recall any additional 
Bezier support, but my memory is not great these days.

Bill P.
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 29 Jan 2025 20:02:39 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C679a895f%241%40news.povray.org%3E/#%3C679a895f%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C679a895f%241%40news.povray.org%3E/#%3C679a895f%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Smooth, continuous Bezier splines (again) [441 days 18 hours and 54 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Tor Olav Kristensen&amp;quot; &amp;lt;tor###&amp;nbsp;[at]&amp;nbsp;TOBEREMOVEDgmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; William F Pokorny &amp;lt;ano###&amp;nbsp;[at]&amp;nbsp;anonymous&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;org&amp;gt; wrote:&lt;/span&gt;

&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; Perhaps time to add an inbuilt f_bezier_cubic() to yuqk too. :-)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Yes, that would be nice.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Then comes the question if adding f_bezier_quadratic() and f_bezier_quartic()&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; also is a good idea.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; And then if the various derivative functions of them should be added...&lt;/span&gt;

I thought there was already some kind of Bezier spline function - but maybe not
as a proper function.  We have that spline in prism {}.  Unless we consider
user-defined spline functions &amp;quot;good enough&amp;quot;.

Might it not be &amp;quot;easier&amp;quot;, more useful, and more general to have a single
Bezier/Bernstein function that takes the number of control points as an
argument, and can just assemble the spline on the fly? Then you wouldn't need
multiple functions.

And aren't the derivatives just other Bezier splines?

I'm just thinking that if it was done that way, people could really begin to
harness the power of these splines without having to ascend the steep learning
curve.

Also having a feature where the user could just switch over to a linear spline
would allow looping through the control points - perhaps to draw out the control
points and polygon - without having to write another whole block of code to do
so.

Degree elevation and reduction would be super sweet to have as well.

And, if you want, I can provide the curvature functions - which are useful for
designing function-driven textures, examining how splines fit together, etc.

Big rabbit hole to go down, but IMHO, in 2025, a computer graphics program
really ought to have an entire in-built Bezier spline library.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 29 Jan 2025 19:20:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.679a7ef296675d9f327467e125979125%40news.povray.org%3E/#%3Cweb.679a7ef296675d9f327467e125979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.679a7ef296675d9f327467e125979125%40news.povray.org%3E/#%3Cweb.679a7ef296675d9f327467e125979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Tor Olav Kristensen] Re: Smooth, continuous Bezier splines (again) [441 days 19 hours and 44 minutes ago]</title>
		<description>
&lt;pre&gt;William F Pokorny &amp;lt;ano###&amp;nbsp;[at]&amp;nbsp;anonymous&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;org&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; On 1/29/25 10:51, Tor Olav Kristensen wrote:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; #macro CubicBezierFn(c0, c1, c2, c3)&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt;      function(s) {&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt;          0&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt;          + pow(1 - s, 3)*c0&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt;          + 3*pow(1 - s, 2)*s*c1&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt;          + 3*(1 - s)*pow(s, 2)*c2&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt;          + pow(s, 3)*c3&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt;      }&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; #end // macro CubicBezierFn&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Perhaps time to add an inbuilt f_bezier_cubic() to yuqk too. :-)&lt;/span&gt;

Yes, that would be nice.

Then comes the question if adding f_bezier_quadratic() and f_bezier_quartic()
also is a good idea.

And then if the various derivative functions of them should be added...

--
Tor Olav
http://subcube.com
https://github.com/t-o-k
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 29 Jan 2025 18:30:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.679a730696675d9fdd186bde89db30a9%40news.povray.org%3E/#%3Cweb.679a730696675d9fdd186bde89db30a9%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.679a730696675d9fdd186bde89db30a9%40news.povray.org%3E/#%3Cweb.679a730696675d9fdd186bde89db30a9%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[William F Pokorny] Re: Smooth, continuous Bezier splines (again) [441 days 20 hours and 39 minutes ago]</title>
		<description>
&lt;pre&gt;On 1/29/25 10:51, Tor Olav Kristensen wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #macro CubicBezierFn(c0, c1, c2, c3)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      function(s) {&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;          0&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;          + pow(1 - s, 3)*c0&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;          + 3*pow(1 - s, 2)*s*c1&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;          + 3*(1 - s)*pow(s, 2)*c2&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;          + pow(s, 3)*c3&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #end // macro CubicBezierFn&lt;/span&gt;

Perhaps time to add an inbuilt f_bezier_cubic() to yuqk too. :-)

Bill P.
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 29 Jan 2025 17:34:11 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C679a6693%241%40news.povray.org%3E/#%3C679a6693%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C679a6693%241%40news.povray.org%3E/#%3C679a6693%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Tor Olav Kristensen] Re: Smooth, continuous Bezier splines (again) [441 days 22 hours and 19 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;quot;ingo&amp;quot; &amp;lt;nomail@nomail&amp;gt; wrote:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; The bisect of the angles in the current lines are the normals to the handles in&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; that point. The handles should be equally long to get C1/G1 (?) continuity.&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; I think, without testing,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Yes, excellent idea.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;...&lt;/span&gt;

Hi Bill

The code below shows the results of what I think Ingo suggested.

--
Tor Olav
http://subcube.com
https://github.com/t-o-k


// ===== 1 ======= 2 ======= 3 ======= 4 ======= 5 ======= 6 ======= 7

#version 3.7;

global_settings { assumed_gamma 1.0 }

#include &amp;quot;colors.inc&amp;quot;

default {
    texture {
        pigment { color White }
        finish {
            diffuse 0
            emission color White
        }
    }
}

// ===== 1 ======= 2 ======= 3 ======= 4 ======= 5 ======= 6 ======= 7

#macro CubicBezierFn(c0, c1, c2, c3)

    function(s) {
        0
        + pow(1 - s, 3)*c0
        + 3*pow(1 - s, 2)*s*c1
        + 3*(1 - s)*pow(s, 2)*c2
        + pow(s, 3)*c3
    }

#end // macro CubicBezierFn


#macro Plot(FnX, FnY, FnZ, NoOfSegments, Radius)

    #local dS = 1/NoOfSegments;

    union {
        #local S0 = 0;
        #local p0 = &amp;lt;FnX(S0), FnY(S0), FnZ(S0)&amp;gt;;
        // sphere { p0, Radius }
        #for (I, 0, NoOfSegments - 2)
            #local S1 = S0 + dS;
            #local p1 = &amp;lt;FnX(S1), FnY(S1), FnZ(S1)&amp;gt;;
            cylinder { p0, p1, Radius }
            sphere { p1, Radius }
            #local S0 = S1;
            #local p0 = p1;
        #end // for
        #local S1 = S0 + dS;
        #local p1 = &amp;lt;FnX(S1), FnY(S1), FnZ(S1)&amp;gt;;
        cylinder { p0, p1, Radius }
        // sphere { p1, Radius }
    }

#end // macro Plot

// ===== 1 ======= 2 ======= 3 ======= 4 ======= 5 ======= 6 ======= 7

#declare Debug = false;


#declare NoOfPoints = 9;
#declare Points =
    array[NoOfPoints] {
        &amp;lt;-0.297/2, -1.000, 0.000&amp;gt;,
        &amp;lt;-0.203/2, -0.500, 0.000&amp;gt;,
        &amp;lt;-0.115/2, -0.250, 0.000&amp;gt;,
        &amp;lt;-0.069/2, -0.125, 0.000&amp;gt;,
        &amp;lt; 0.000/2,  0.000, 0.000&amp;gt;
        &amp;lt;+0.069/2, -0.125, 0.000&amp;gt;,
        &amp;lt;+0.115/2, -0.250, 0.000&amp;gt;,
        &amp;lt;+0.203/2, -0.500, 0.000&amp;gt;,
        &amp;lt;+0.297/2, -1.000, 0.000&amp;gt;,
    }
;

#declare R = 0.006;

#if (true)
    union {
        #for (I, 0, NoOfPoints - 1)
            sphere { Points[I], R }
        #end // for
        pigment { color White }
    }
#end // if


#declare NoOfOrthogonalVectors = NoOfPoints - 1;
#declare OrthogonalVectors = array[NoOfOrthogonalVectors];
#for (I, 0, NoOfOrthogonalVectors - 1)
    #declare OrthogonalVectors[I] = vnormalize(vcross(Points[I+1] - Points[I],
z));
#end // for

#if (Debug)
    union {
        #for (I, 0, NoOfOrthogonalVectors - 1)
            cylinder {
                0*z, OrthogonalVectors[I], R/4
                translate (Points[I] + Points[I+1])/2
            }
        #end // for
        pigment { color Red }
    }
#end // if


#declare NoOfBisectingVectors = NoOfPoints;
#declare BisectingVectors = array[NoOfBisectingVectors];
#declare BisectingVectors[0] = OrthogonalVectors[0];
#for (I, 1, NoOfBisectingVectors - 2)
    #declare BisectingVectors[I] = vnormalize(OrthogonalVectors[I-1] +
OrthogonalVectors[I]);
#end // for
#declare BisectingVectors[NoOfBisectingVectors-1] =
OrthogonalVectors[NoOfOrthogonalVectors-1];

#if (Debug)
    union {
        #for (I, 0, NoOfBisectingVectors - 1)
            cylinder {
                0*z, BisectingVectors[I], R/4
                translate Points[I]
            }
        #end // for
        pigment { color Magenta }
    }
#end // if


#declare NoOfTangentVectors = NoOfBisectingVectors;
#declare TangentLengths =
    array[NoOfTangentVectors] {
        0.10,
        0.10,
        0.08,
        0.04,
        0.01,
        0.04,
        0.08,
        0.10,
        0.10
    }
;
#declare TangentVectors = array[NoOfTangentVectors];
#for (I, 0, NoOfTangentVectors - 1)
    #declare TangentVectors[I] = TangentLengths[I]*vcross(+z,
BisectingVectors[I]);
#end // for

#if (Debug)
    union {
        #for (I, 0, NoOfTangentVectors - 1)
            cylinder {
                0*z, +TangentVectors[I], R/4
                translate Points[I]
            }
            cylinder {
                0*z, -TangentVectors[I], R/4
                translate Points[I]
            }
        #end // for
        pigment { color Blue }
    }
#end // if


#declare NoOfSegments = 16;
#for (I, 0, NoOfPoints - 2)
    #declare pA = Points[I  ];
    #declare pB = Points[I  ] + TangentVectors[I  ];
    #declare pC = Points[I+1] - TangentVectors[I+1];
    #declare pD = Points[I+1];
    #if (Debug)
        union {
            // sphere { pA, R }
            sphere { pB, R }
            sphere { pC, R }
            // sphere { pD, R }
            pigment { color Blue }
        }
    #end // if
    object {
        Plot(
            CubicBezierFn(pA.x, pB.x, pC.x, pD.x),
            CubicBezierFn(pA.y, pB.y, pC.y, pD.y),
            CubicBezierFn(pA.z, pB.z, pC.z, pD.z),
            NoOfSegments,
            R/4
        )
        pigment { color Black }
        translate -1.0*z
    }
#end // for

// ===== 1 ======= 2 ======= 3 ======= 4 ======= 5 ======= 6 ======= 7

background { color Gray40 }

#declare AR = image_width/image_height;

camera {
    orthographic
    location &amp;lt; 0.0, -0.5, -2.0&amp;gt;
    right AR*x
    up y
    direction z
    angle 30
}

// ===== 1 ======= 2 ======= 3 ======= 4 ======= 5 ======= 6 ======= 7
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 29 Jan 2025 15:55:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.679a4e6d96675d9fdd186bde89db30a9%40news.povray.org%3E/#%3Cweb.679a4e6d96675d9fdd186bde89db30a9%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.679a4e6d96675d9fdd186bde89db30a9%40news.povray.org%3E/#%3Cweb.679a4e6d96675d9fdd186bde89db30a9%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Smooth, continuous Bezier splines (again) [442 days 17 hours and 19 minutes ago]</title>
		<description>
&lt;pre&gt;&lt;span class=&quot;RC1&quot;&gt;&amp;gt; but then I need to figure out how to solve for sets of control point coordinates&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; that give me matching curvatures.&lt;/span&gt;

.. . . and this must be just the thing:

https://ntrs.nasa.gov/api/citations/19900012238/downloads/19900012238.pdf
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 28 Jan 2025 20:55:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.679943ee96675d9f327467e125979125%40news.povray.org%3E/#%3Cweb.679943ee96675d9f327467e125979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.679943ee96675d9f327467e125979125%40news.povray.org%3E/#%3Cweb.679943ee96675d9f327467e125979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Smooth, continuous Bezier splines (again) [442 days 17 hours and 49 minutes ago]</title>
		<description>
&lt;pre&gt;Putting this link here for reference.

https://pomax.github.io/bezierinfo/#curvature

Holy 70-page comprehensive review article! :O
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 28 Jan 2025 20:25:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.67993c5996675d9f327467e125979125%40news.povray.org%3E/#%3Cweb.67993c5996675d9f327467e125979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.67993c5996675d9f327467e125979125%40news.povray.org%3E/#%3Cweb.67993c5996675d9f327467e125979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Smooth, continuous Bezier splines (again) [442 days 18 hours and 54 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; There are still &amp;quot;bumps&amp;quot;, so I think I still need to somehow account for the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; varying curvature along the splines.&lt;/span&gt;

So, I guess what I'm going to have to do is work out the first and second
derivatives of the Bernstein polynomials and calculate the curvature K (okay, I
already know how to do this, and have done it, and have code)

K = (x' y'' - x'' y') / (x' x' + y' y') ^ (3/2)

but then I need to figure out how to solve for sets of control point coordinates
that give me matching curvatures.

The task of fairing these curves to match &amp;quot;smoothly&amp;quot; is a conceptually
straightforward thing - hammering out the details of how to do that appears to
be a bit more mathematically involved than most would first imagine.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 28 Jan 2025 19:20:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.67992cb396675d9f327467e125979125%40news.povray.org%3E/#%3Cweb.67992cb396675d9f327467e125979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.67992cb396675d9f327467e125979125%40news.povray.org%3E/#%3Cweb.67992cb396675d9f327467e125979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Smooth, continuous Bezier splines (again) [442 days 19 hours and 29 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;ingo&amp;quot; &amp;lt;nomail@nomail&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; The bisect of the angles in the current lines are the normals to the handles in&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; that point. The handles should be equally long to get C1/G1 (?) continuity.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I think, without testing,&lt;/span&gt;

Yes, excellent idea.

I was futzing around with something along those lines yesterday, but I'm stuck
doing it in M$ Office 365 Copilot web version - which is painful enough - but I
was working on it piecemeal, so I only had so much time in one stretch to focus.

At present, I take 3 control points, bisect the angle, find the perpendicular
slope (negative reciprocal), use the equation of that line to sub in 1/3 of the
shorter vector, and solve for the control point y-values on either side of the
endpoint.

I have the Bezier splines charted using the Bernstein polynomials, and
concatenated together using &amp;quot;helper cells&amp;quot;.

There are still &amp;quot;bumps&amp;quot;, so I think I still need to somehow account for the
varying curvature along the splines.
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 28 Jan 2025 18:45:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.679924fb96675d9f327467e125979125%40news.povray.org%3E/#%3Cweb.679924fb96675d9f327467e125979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.679924fb96675d9f327467e125979125%40news.povray.org%3E/#%3Cweb.679924fb96675d9f327467e125979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[ingo] Re: Smooth, continuous Bezier splines (again) [443 days 7 hours and 49 minutes ago]</title>
		<description>
&lt;pre&gt;The bisect of the angles in the current lines are the normals to the handles in
that point. The handles should be equally long to get C1/G1 (?) continuity.

I think, without testing,

ingo
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 28 Jan 2025 06:25:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6798782996675d9f17bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.6798782996675d9f17bac71e8ffb8ce3%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6798782996675d9f17bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.6798782996675d9f17bac71e8ffb8ce3%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Smooth, continuous Bezier splines (again) [443 days 18 hours and 19 minutes ago]</title>
		<description>
&lt;pre&gt;I've got a diagram of where measured points should be along a CURVE that
describes the profile of a solid edge.

You can see from the diagram, that a linear connection of the points would give
me a shape where the measured dimension points would be at the vertices of
concave angles, and so the appropriately shaped object {} would touch the lines
rather than the dimension points.

What I'd like to do is use those dimension points as the endpoints of Bezier
splines, such that the resulting curve was smooth and continuous.

I feel like, after all of the Bezier spline research that I've done, that I
really _ought_ to be able to just do this off the top of my head; however,
although I can make a continuous spline that's &amp;quot;smooth&amp;quot; and intersects the
dimension points, I don't get an &amp;quot;adequately&amp;quot; smooth curve - it has &amp;quot;wiggles&amp;quot;.

This leads me to believe that either need to degree elevate the spline in order
to match the _curvature_ of the segments

OR

I need to degree reduce the cubic splines to quadratic splines so that I only
have a single intermediate control point.

I tried to quickly test that out by just making the 2 internal control points
the same, however since the control points to either side of the endpoints need
to be colinear with the control point, and preferably offset by a vector of the
same magnitude, that's a problem when the spline segments are different lengths.

So I'm leaning toward degree elevation.
But that seems like it would open things up to even MORE wiggle, and I have no
idea at the moment how to calculate the position of that extra control point.

I'm just stuck trying to figure out / remember how to calculate the positions of
the internal control points.

- BE
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 27 Jan 2025 19:55:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6797e39ce9acc1774cc51b5c25979125%40news.povray.org%3E/#%3Cweb.6797e39ce9acc1774cc51b5c25979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6797e39ce9acc1774cc51b5c25979125%40news.povray.org%3E/#%3Cweb.6797e39ce9acc1774cc51b5c25979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Making Patterns with functions [470 days 21 hours and 14 minutes ago]</title>
		<description>
&lt;pre&gt;I was trying to track down something completely unrelated, and came across this
page:

National Curve Bank
A Collection of Famous Plane Curves
created in POVRAY (Persistence Of Vision RAY tracing)

https://old.nationalcurvebank.org/povray/povray.htm
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 31 Dec 2024 17:00:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.677421e6d81b8479d97b426e25979125%40news.povray.org%3E/#%3Cweb.677421e6d81b8479d97b426e25979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.677421e6d81b8479d97b426e25979125%40news.povray.org%3E/#%3Cweb.677421e6d81b8479d97b426e25979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Francois LE COAT] Re: Optical Inertia [472 days 21 hours and 13 minutes ago]</title>
		<description>
&lt;pre&gt;Hi,

Monocular Depth :

&amp;lt;https://www.youtube.com/watch?v=34zUDqEzHos&amp;gt;

A drone flies between the trees of a forest. Thanks to the optical-flow
measured on successive images, the temporal disparity reveals the
forest of trees... We take a reference image, the optical-flow is
measured on two rectified images. Then we change the reference when
the inter-correlation drops below 60%. We can perceive the relief in
depth with a single camera, over time.

In fact, when we watch images captured by a drone, although there is
only one camera, we often see the relief. This is particularly marked
for trees in a forest. The goal here is to evaluate this relief, with a
measurement of &amp;quot;optical-flow&amp;quot;, which allows one image to be matched with
another, when they seem to be close (we say they are &amp;quot;correlated&amp;quot;).

We have two eyes, and the methods for measuring visible relief by 
stereoscopy are very developed. Since the beginning of photography,
there were devices like the &amp;#226;&amp;#128;&amp;#156;stereoscope&amp;#226;&amp;#128;&amp;#157; which
allows yo
u to see the
relief with two pictures, naturally. It is possible to measure relief,
thanks to epipolar geometry, and well-known mathematics. There are many
measurement methods, very effective and based on human vision.

When it comes to measuring relief with a single camera, knowledge is
less established. There are 3D cameras, called &amp;quot;RGBD&amp;quot; with a &amp;quot;D&amp;quot; for 
&amp;quot;depth&amp;quot;. But how do they work? Is it possible to improve those? What
I am showing here does not require the use of any &amp;#226;&amp;#128;&amp;#156;artificial neu
ral
network&amp;#226;&amp;#128;&amp;#157;. It is a physical measurement, with a classic algorithm,

which does not come from A.I. nor a big computer :-)

Best regards,

-- 
Fran&amp;#195;&amp;#167;ois LE COAT
&amp;lt;https://eureka.atari.org/&amp;gt;
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 29 Dec 2024 17:00:58 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C6771804a%40news.povray.org%3E/#%3C6771804a%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C6771804a%40news.povray.org%3E/#%3C6771804a%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[MichaelJF] Re: Condition in functions [482 days 21 hours and 33 minutes ago]</title>
		<description>
&lt;pre&gt;Am 19.12.2024 um 17:00 schrieb kurtz le pirate:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; On 17/12/2024 12:16, Bald Eagle wrote:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; Have you simply tried adding &amp;quot;open&amp;quot; to your isosurface block, so you &lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; don't see&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; the containing sphere?&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I also tried it. It fixes the problem.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I've never seen/used this option, which is still not very clear to me :(&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
As I understand it, all points below the threshold value of the 
isosurface are considered as inside the surface and all above as 
outside. All points on the surface of the containing box or sphere of an 
isosurface considered as part of the interior of the isosurface are 
closed. The open keyword removes this coating.

This explains the behavior here. But I my be wrong again.

Best regards
Michael
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 19 Dec 2024 16:40:16 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C67644c70%241%40news.povray.org%3E/#%3C67644c70%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C67644c70%241%40news.povray.org%3E/#%3C67644c70%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[kurtz le pirate] Re: Condition in functions [482 days 22 hours and 14 minutes ago]</title>
		<description>
&lt;pre&gt;On 17/12/2024 12:16, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Have you simply tried adding &amp;quot;open&amp;quot; to your isosurface block, so you don't see&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; the containing sphere?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;

I also tried it. It fixes the problem.

I've never seen/used this option, which is still not very clear to me :(






-- 
kurtz le pirate
compagnie de la banquise
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 19 Dec 2024 16:00:02 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C67644302%40news.povray.org%3E/#%3C67644302%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C67644302%40news.povray.org%3E/#%3C67644302%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Condition in functions [484 days 16 hours and 59 minutes ago]</title>
		<description>
&lt;pre&gt;MichaelJF &amp;lt;fri###&amp;nbsp;[at]&amp;nbsp;t-online&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;de&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; In a way, you have to look at the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; surface from the &amp;quot;inside&amp;quot; of the object.&lt;/span&gt;

Sorta.
I think it has more to do with the extent of the visible surface:

https://wiki.povray.org/content/Reference:Isosurface

&amp;quot;When the isosurface is not fully contained within the contained_by object,
there will be a cross section. When this happens, you will see the surface of
the container. Using the open keyword, these cross section surfaces are removed,
and the inside of the isosurface becomes visible.&amp;quot;
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 17 Dec 2024 21:15:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6761e99232068233471fd7cd25979125%40news.povray.org%3E/#%3Cweb.6761e99232068233471fd7cd25979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6761e99232068233471fd7cd25979125%40news.povray.org%3E/#%3Cweb.6761e99232068233471fd7cd25979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[MichaelJF] Re: Condition in functions [484 days 23 hours and 39 minutes ago]</title>
		<description>
&lt;pre&gt;Am 17.12.2024 um 12:16 schrieb Bald Eagle:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; MichaelJF &amp;lt;fri###&amp;nbsp;[at]&amp;nbsp;t-online&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;de&amp;gt; wrote:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;      contained_by { sphere { 0,L-0.1 } }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Have you simply tried adding &amp;quot;open&amp;quot; to your isosurface block, so you don't see&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; the containing sphere?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
Thanks, that solves the riddle. In a way, you have to look at the 
surface from the &amp;quot;inside&amp;quot; of the object. I can't remember ever having 
consciously used this option.
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 17 Dec 2024 14:34:10 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C67618be2%40news.povray.org%3E/#%3C67618be2%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C67618be2%40news.povray.org%3E/#%3C67618be2%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Condition in functions [485 days 2 hours and 54 minutes ago]</title>
		<description>
&lt;pre&gt;MichaelJF &amp;lt;fri###&amp;nbsp;[at]&amp;nbsp;t-online&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;de&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt;     contained_by { sphere { 0,L-0.1 } }&lt;/span&gt;

Have you simply tried adding &amp;quot;open&amp;quot; to your isosurface block, so you don't see
the containing sphere?
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 17 Dec 2024 11:20:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.67615d86320682331f9dae3025979125%40news.povray.org%3E/#%3Cweb.67615d86320682331f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.67615d86320682331f9dae3025979125%40news.povray.org%3E/#%3Cweb.67615d86320682331f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[MichaelJF] Re: Condition in functions [485 days 9 hours and 48 minutes ago]</title>
		<description>
&lt;pre&gt;Am 16.12.2024 um 23:36 schrieb Bald Eagle:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; MichaelJF &amp;lt;fri###&amp;nbsp;[at]&amp;nbsp;t-online&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;de&amp;gt; wrote:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Hmmm.   It looks like maybe it's a sign issue?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Inside and outside are switched?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Try just negating the function and see what happens.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I'm not sure if that might have to do with the left-handed coordinate system, or&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; what.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; - BW&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
Sorry, I mixed up the image yesterday. Here is the corrected version. 
It's even worse. Yesterday is was one of my tests to solve the riddle, 
in which I had commented out the exponential term as a test:

#declare GyroidLatice_1 = function (x,y,z) {
    select(isoCondition(x,y,z),Iso2(x,y,z),1) - //exp(isoCondition(x,y,z)/5)
}

The actual version depicts the full expression without the comment.

The difference between the functions Iso2 and Iso3 is just a change of 
signs and in GyroidLatice_1 the exponential term is subtracted whereas 
in GyroidLatice_2 it is added.

Below you can find the POV-part of the code with the MathMod-Code within 
the comments. Maybe someone else can spot the difference. The parameter 
t from MathMod is not used in this examnple.

Best regards
Michael

#declare L=23/2;
#declare c=1/10000;
#declare Th1=5/10;
#declare Th2=-8/10;


/* isoCondition=(x^N+y^N+z^N-(L-1/10)^N)  (N=2)*/
#declare isoCondition = function(x,y,z) { x*x+y*y+z*z-(L-1/10)*(L-1/10) }

/* Iso =
    cos(x)*sin(y)+cos(y)*sin(z)+cos(z)*sin(x) */
#declare Iso = function(x,y,z) {
    cos(x)*sin(y)+cos(y)*sin(z)+cos(z)*sin(x)
}


/* DFx=((Iso(x+c,y,z,t)-Iso(x,y,z,t))/c)
    DFy=((Iso(x,y+c,z,t)-Iso(x,y,z,t))/c)
    DFz=((Iso(x,y,z+c,t)-Iso(x,y,z,t))/c) */
#declare DFx = function(x,y,z) { (Iso(x+c,y,z)-Iso(x,y,z))/c }
#declare DFy = function(x,y,z) { (Iso(x,y+c,z)-Iso(x,y,z))/c }
#declare DFz = function(x,y,z) { (Iso(x,y,z+c)-Iso(x,y,z))/c }

/* Rapp=(x/sqrt(x*x+y*y+z*z)) */
#declare Rapp = function(x,y,z) {x/sqrt(x*x+y*y+z*z) }

/* &amp;quot;Iso2 =
    Iso(x+Th2*Rapp(DFx(x,y,z,t),DFy(x,y,z,t),DFz(x,y,z,t),t),
        y+Th2*Rapp(DFy(x,y,z,t),DFz(x,y,z,t),DFx(x,y,z,t),t),
        z+Th2*Rapp(DFz(x,y,z,t),DFx(x,y,z,t),DFy(x,y,z,t),t),t)
    ) */
#declare Iso2 = function(x,y,z) {
    Iso(x+Th2*Rapp(DFx(x,y,z),DFy(x,y,z),DFz(x,y,z)),
        y+Th2*Rapp(DFy(x,y,z),DFz(x,y,z),DFx(x,y,z)),
        z+Th2*Rapp(DFz(x,y,z),DFx(x,y,z),DFy(x,y,z))
    )
}

/* Iso3 =
    Iso(x-Th2*Rapp(DFx(x,y,z,t),DFy(x,y,z,t),DFz(x,y,z,t),t),
        y-Th2*Rapp(DFy(x,y,z,t),DFz(x,y,z,t),DFx(x,y,z,t),t),
        z-Th2*Rapp(DFz(x,y,z,t),DFx(x,y,z,t),DFy(x,y,z,t),t),t)
    )*/
#declare Iso3 = function(x,y,z) {
    Iso(x-Th2*Rapp(DFx(x,y,z),DFy(x,y,z),DFz(x,y,z)),
        y-Th2*Rapp(DFy(x,y,z),DFz(x,y,z),DFx(x,y,z)),
        z-Th2*Rapp(DFz(x,y,z),DFx(x,y,z),DFy(x,y,z))
    )
}

/* Iso4 =
    Iso(x+Th1*Rapp(DFx(x,y,z,t),DFy(x,y,z,t),DFz(x,y,z,t),t),
        y+Th1*Rapp(DFy(x,y,z,t),DFz(x,y,z,t),DFx(x,y,z,t),t),
        z+Th1*Rapp(DFz(x,y,z,t),DFx(x,y,z,t),DFy(x,y,z,t),t),t)
    ) */
#declare Iso4 = function(x,y,z) {
    Iso(x+Th1*Rapp(DFx(x,y,z),DFy(x,y,z),DFz(x,y,z)),
        y+Th1*Rapp(DFy(x,y,z),DFz(x,y,z),DFx(x,y,z)),
        z+Th1*Rapp(DFz(x,y,z),DFx(x,y,z),DFy(x,y,z))
    )
}

/* Iso5 =
    Iso(x-Th1*Rapp(DFx(x,y,z,t),DFy(x,y,z,t),DFz(x,y,z,t),t),
        y-Th1*Rapp(DFy(x,y,z,t),DFz(x,y,z,t),DFx(x,y,z,t),t),
        z-Th1*Rapp(DFz(x,y,z,t),DFx(x,y,z,t),DFy(x,y,z,t),t),t)
    )*/
#declare Iso5 = function(x,y,z) {
    Iso(x-Th1*Rapp(DFx(x,y,z),DFy(x,y,z),DFz(x,y,z)),
        y-Th1*Rapp(DFy(x,y,z),DFz(x,y,z),DFx(x,y,z)),
        z-Th1*Rapp(DFz(x,y,z),DFx(x,y,z),DFy(x,y,z))
    )
}

/* ThickIso2=(Iso4(x,y,z,t)*Iso5(x,y,z,t)) */
#declare ThickIso2 = function(x,y,z) { Iso4(x,y,z) * Iso5(x,y,z) }


/* 
GyroidLatice_1=if(isoCondition(x,y,z,t)&amp;lt;(0),Iso2(x,y,z,t),1)-exp(isoCondition(x,y,z,t)/5)

*/

#declare GyroidLatice_1 = function (x,y,z) {
    select(isoCondition(x,y,z),Iso2(x,y,z),1) - exp(isoCondition(x,y,z)/5)
}

/* 
GyroidLatice_2=if(isoCondition(x,y,z,t)&amp;lt;(0),Iso3(x,y,z,t),1)+exp(isoCondition(x,y,z,t)/5)

*/
#declare GyroidLatice_2 = function (x,y,z) {
    select(isoCondition(x,y,z),Iso3(x,y,z),1) + exp(isoCondition(x,y,z)/5)
}

/* 
GyroidLatice_3=if(isoCondition(x,y,z,t)&amp;lt;(0),ThickIso2(x,y,z,t),1)+exp(isoCondition(x,y,z,t)/5)

*/
#declare GyroidLatice_3 = function (x,y,z) {
    select(isoCondition(x,y,z),ThickIso2(x,y,z),1) + 
exp(isoCondition(x,y,z)/5)
}

#declare G1 = isosurface {
    function {
       GyroidLatice_1(x,y,z)
    }
    contained_by { sphere { 0,L-0.1} }
    threshold 0
    max_gradient 1000

    pigment { colour Yellow }
}

#declare G2 = isosurface {
    function {
       GyroidLatice_2(x,y,z)
    }
    contained_by { sphere { 0,L-0.1 } }
    threshold 0
    max_gradient 1000

    pigment { colour Orange }
}

#declare G3 = isosurface {
    function {
       GyroidLatice_3(x,y,z)
    }
    contained_by { sphere { 0,L-0.1 } }
    threshold 0
    max_gradient 1000

    pigment { colour Red }
}
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 17 Dec 2024 04:25:47 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C6760fd4b%40news.povray.org%3E/#%3C6760fd4b%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C6760fd4b%40news.povray.org%3E/#%3C6760fd4b%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Condition in functions [485 days 15 hours and 34 minutes ago]</title>
		<description>
&lt;pre&gt;MichaelJF &amp;lt;fri###&amp;nbsp;[at]&amp;nbsp;t-online&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;de&amp;gt; wrote:

Hmmm.   It looks like maybe it's a sign issue?
Inside and outside are switched?

Try just negating the function and see what happens.

I'm not sure if that might have to do with the left-handed coordinate system, or
what.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 16 Dec 2024 22:40:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6760ab55320682331f9dae3025979125%40news.povray.org%3E/#%3Cweb.6760ab55320682331f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6760ab55320682331f9dae3025979125%40news.povray.org%3E/#%3Cweb.6760ab55320682331f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[MichaelJF] Re: Condition in functions [485 days 22 hours and 3 minutes ago]</title>
		<description>
&lt;pre&gt;Am 08.12.2024 um 17:25 schrieb kurtz le pirate:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I also have problems with PrettyBall_1. 3 isosurfaces. Two are ok. The &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; third really doesn't match. Yet the code is/looks ok.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
Indeed, this is actually a very strange difference between POV and 
MathMod. In the top row are the three objects as isosurfaces in POV, 
below are the objects exported from MathMod with the same formulae. The 
second and third objects match quite well, while the first one is 
completely different. I cannot judge whether the error is in POV or in 
MathMod.

If you compare the two objects on the right and in the centre in the 
bottom row (MathMod), you may get the impression that the one on the 
right could be created from the middle one as a point reflection at the 
origin (scale &amp;lt;-1,-1,-1&amp;gt;) and in fact both are largely congruent after 
this operation. You will get the correct result with POV if you create 
the first object from the centre one with the mentioned scaling or 
change the definition of GyroidLatice_1 as follows:

#declare GyroidLatice_1 = function {
    select(isoCondition(x,y,z),Iso3(-x,-y,-z),1) + 
exp(isoCondition(x,y,z)/5)
//   select(isoCondition(x,y,z),Iso2(x,y,z),1)// - 
exp(isoCondition(x,y,z)/5)
}


Best regards
Michael
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 16 Dec 2024 16:10:57 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C67605111%40news.povray.org%3E/#%3C67605111%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C67605111%40news.povray.org%3E/#%3C67605111%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[jr] Re: Condition in functions [492 days 9 hours and 19 minutes ago]</title>
		<description>
&lt;pre&gt;hi,

kurtz le pirate &amp;lt;kur###&amp;nbsp;[at]&amp;nbsp;free&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;fr&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I put an image of the result in p.b.i.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I can ost functions if someone is interested.&lt;/span&gt;

the vase looks pretty cool.  the functions as such would not be much use to me,
I guess, but how about creating a macro ?  perhaps with options to supply one's
own material and for scaling (making the vase taller/shorter, slimmer/more
bulge), and such ?


regards, jr.
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 10 Dec 2024 04:55:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6757c8a332068233b2e841a6cde94f1%40news.povray.org%3E/#%3Cweb.6757c8a332068233b2e841a6cde94f1%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6757c8a332068233b2e841a6cde94f1%40news.povray.org%3E/#%3Cweb.6757c8a332068233b2e841a6cde94f1%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[kurtz le pirate] Re: Condition in functions [492 days 22 hours and 21 minutes ago]</title>
		<description>
&lt;pre&gt;Following Tor's advice, I corrected my 'select()'.

I've also put the 't' parameter back into the functions. I mistakenly 
thought that this parameter was only used for animation and morphing. 
This is not the case at all.


I put an image of the result in p.b.i.


I can ost functions if someone is interested.



-- 
kurtz le pirate
compagnie de la banquise
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 9 Dec 2024 15:52:49 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C67571251%241%40news.povray.org%3E/#%3C67571251%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C67571251%241%40news.povray.org%3E/#%3C67571251%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[kurtz le pirate] Re: Condition in functions [493 days 21 hours and 48 minutes ago]</title>
		<description>
&lt;pre&gt;On 07/12/2024 19:54, Tor Olav Kristensen wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Hi Kurtz&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; That's an interesting project.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I found some MathMod documentation here:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;
https://fossies.org/linux/mathmod/documentation/index.html#SupportedOperatorsFunctions&lt;/span&gt;

Hi Tor,

I also found the doc in the MathMod package.


&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; One of its mathematical functions:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; if(A, B, C)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; if A differs from 0, the return value of this function is B, else C&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; In POV-Ray 0 = 0.0, so I have removed the all the int() calls in the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; expressions above.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  From this documentation I understand that any value equal to 0 is treated&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; as a logical False and any other numerical value is treated as logical True.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; (I think this convention makes expressions harder to understand, so I will&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; not use it further in my simplified expressions, even if POV-Ray also uses it.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Writing readable expressions is more important than writing compact&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; expressions.)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
Yes, indeed, difficult to understand.
MathMod's language is, on certain points, obscure ... at least for me.

I also have problems with PrettyBall_1. 3 isosurfaces. Two are ok. The 
third really doesn't match. Yet the code is/looks ok.



&lt;span class=&quot;RC1&quot;&gt;&amp;gt; To make it easier to get an overview, I rename the MathMod functions in your&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; post, remove their parameter lists and arguments, insert some white space&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; and finally simplify them a bit.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; isoTransform_2(): IT2()&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; isoTransform_6(): IT6()&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; CarvinCondition(): CC()&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ThickIsoExterior(): TIE()&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ThickIso2(): TI2()&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Iso6(): I6()&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; IT2() =&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      if(&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;          CC() = 0,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;          TIE(),&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;          1&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      )&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; IT2() =&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      if(&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;          CC(),&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;          1,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;          TIE()&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      )&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; IT6() =&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      if(&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;          CC() &amp;amp; (TIE() &amp;lt; 0),&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;          -TI2()*I6()*I6(),&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;          1&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      )&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; IT6() =&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      if(&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;          TIE() &amp;lt; 0,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;          if(&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;              CC(),&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;              -TI2()*I6()*I6(),&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;              1&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;          ),&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;          1&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      )&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; The nested ifs above has the same effect as the &amp;amp; operator.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Now a rewrite to POV-Ray expressions is not so difficult:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; IT2():&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      select(&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;          CC(),&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;          1,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;          TIE(),&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;          1&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      )&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; IT6():&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      select(&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;          TIE(),&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;          select(&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;              CC(),&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;              -TI2()*I6()*I6(),&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;              1,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;              -TI2()*I6()*I6()&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;          ),&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;          1&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      )&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; The nested selects above has the same effect as the &amp;amp; operator.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Now you can fill in the parameter lists, the arguments, give back functions&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; their original names and give them a proper POV-Ray function syntax.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;

Ingenious approach. I'm going to look into it very closely.




Thanks+



-- 
kurtz le pirate
compagnie de la banquise
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 8 Dec 2024 16:25:16 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C6755c86c%241%40news.povray.org%3E/#%3C6755c86c%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C6755c86c%241%40news.povray.org%3E/#%3C6755c86c%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Tor Olav Kristensen] Re: Condition in functions [494 days 19 hours and 19 minutes ago]</title>
		<description>
&lt;pre&gt;kurtz le pirate &amp;lt;kur###&amp;nbsp;[at]&amp;nbsp;free&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;fr&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Hello,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; This exemple come from MathMod, &amp;quot;Vase_3 by Abderrahman Taha 31/10/2019&amp;quot;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Several isosurfaces and functions including these two :&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; isoTransform_2 =&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; if(CarvinCondition(x,y,z,t)=(0),ThickIsoExterior(x,y,z,t),1)&amp;quot;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;
isoTransform_6=if(CarvinCondition(x,y,z,t)&amp;amp;ThickIsoExterior(x,y,z,t)&amp;lt;(0),-ThickIso2((6*x),(6*y),(6*z),t)*Iso6((x*6),(&lt;/span&gt;
y*6),(z*6),-1)
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; *(Iso6((x*6),(y*6),(z*6),1)),1)&amp;quot;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; CarvinCondition, ThickIsoExterior, ThickIso2, Iso6 are others functions.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; The (my) transcription for POV gives :&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #declare isoTransform_2 = function(x,y,z,T) {&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    select (&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   // A (condition)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;     CarvinCondition(x,y,z,T),&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   // B : A &amp;lt; 0&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      ThickIsoExterior(x,y,z,T),&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;     // C : A = 0&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;     1,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;     // D : A &amp;gt; 0&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      ThickIsoExterior(x,y,z,T)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      )&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;     }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #declare isoTransform_6 = function(x,y,z,T) {&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  select (&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   // A (condition)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   (CarvinCondition(x,y,z,T) &amp;amp; ThickIsoExterior(x,y,z,T)),&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   // B : A &amp;lt;0&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   -ThickIso2((6*x),(6*y),(6*z),T) * Iso6((x*6),(y*6),(z*6),-1) *&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; (Iso6((x*6),(y*6),(z*6),1)),&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   // C : A &amp;gt;= 0&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;     1&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;     )&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Do you agree with the use of select() to replace if() ?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I'm struggling a bit and I would like to check this option already.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; On the left is MathMod, on the right where I am.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;...&lt;/span&gt;

Hi Kurtz

That's an interesting project.

I found some MathMod documentation here:
https://fossies.org/linux/mathmod/documentation/index.html#SupportedOperatorsFunctions

Some of its mathematical operators in order of precedence:

! A
unary logical not (result is 1 if A is 0, else 0)

A = B    A &amp;lt; B    A &amp;lt;= B    A != B    A &amp;gt; B    A &amp;gt;= B
comparison between A and B (result is either 0 or 1)

A &amp;amp; B
result is 1 if A and B differ from 0, else 0

A | B
result is 1 if A or B differ from 0, else 0


One of its mathematical functions:

if(A, B, C)
if A differs from 0, the return value of this function is B, else C


In POV-Ray 0 = 0.0, so I have removed the all the int() calls in the
expressions above.

From this documentation I understand that any value equal to 0 is treated
as a logical False and any other numerical value is treated as logical True.
(I think this convention makes expressions harder to understand, so I will
not use it further in my simplified expressions, even if POV-Ray also uses it.
Writing readable expressions is more important than writing compact
expressions.)

To make it easier to get an overview, I rename the MathMod functions in your
post, remove their parameter lists and arguments, insert some white space
and finally simplify them a bit.

isoTransform_2(): IT2()
isoTransform_6(): IT6()
CarvinCondition(): CC()
ThickIsoExterior(): TIE()
ThickIso2(): TI2()
Iso6(): I6()


IT2() =
    if(
        CC() = 0,
        TIE(),
        1
    )

IT2() =
    if(
        CC(),
        1,
        TIE()
    )

IT6() =
    if(
        CC() &amp;amp; (TIE() &amp;lt; 0),
        -TI2()*I6()*I6(),
        1
    )

IT6() =
    if(
        TIE() &amp;lt; 0,
        if(
            CC(),
            -TI2()*I6()*I6(),
            1
        ),
        1
    )

The nested ifs above has the same effect as the &amp;amp; operator.

Now a rewrite to POV-Ray expressions is not so difficult:

IT2():
    select(
        CC(),
        1,
        TIE(),
        1
    )

IT6():
    select(
        TIE(),
        select(
            CC(),
            -TI2()*I6()*I6(),
            1,
            -TI2()*I6()*I6()
        ),
        1
    )

The nested selects above has the same effect as the &amp;amp; operator.

Now you can fill in the parameter lists, the arguments, give back functions
their original names and give them a proper POV-Ray function syntax.

--
Tor Olav
http://subcube.com
https://github.com/t-o-k
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 7 Dec 2024 18:55:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.67549961320682334afe95ff89db30a9%40news.povray.org%3E/#%3Cweb.67549961320682334afe95ff89db30a9%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.67549961320682334afe95ff89db30a9%40news.povray.org%3E/#%3Cweb.67549961320682334afe95ff89db30a9%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Condition in functions [495 days 17 hours and 49 minutes ago]</title>
		<description>
&lt;pre&gt;Alain Martel &amp;lt;kua###&amp;nbsp;[at]&amp;nbsp;videotron&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;ca&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; select() is&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt; &amp;gt;&amp;gt; pretty much the only option.&lt;/span&gt;

&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; Well, I don't think that's entirely true.&lt;/span&gt;

What I meant is that select() is not the ONLY option.

It will be a while before I can check and confirm, but I think that one can
embed conditional statements into a function such as (Theta &amp;lt; pi/2) which will
be evaluated to true (1) or false (0).

Plus all of the other methods I referred to.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 6 Dec 2024 20:25:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.67535ccd32068233b00a87a025979125%40news.povray.org%3E/#%3Cweb.67535ccd32068233b00a87a025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.67535ccd32068233b00a87a025979125%40news.povray.org%3E/#%3Cweb.67535ccd32068233b00a87a025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Alain Martel] Re: Condition in functions [495 days 18 hours and 39 minutes ago]</title>
		<description>
&lt;pre&gt;Le 2024-12-06 &amp;#195;&amp;#160; 13:44, Bald Eagle a &amp;#195;&amp;#169;crit&amp;#194;&amp;#160;:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Alain Martel &amp;lt;kua###&amp;nbsp;[at]&amp;nbsp;videotron&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;ca&amp;gt; wrote:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; As if() can't be used in the function of an isosurface, select() is&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; pretty much the only option.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Well, I don't think that's entirely true.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; If you take advantage of the fact that expressions inside of parentheses get&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; evaluated, and make use of functions like sgn, min, max, etc, then you can&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; multiply terms in an equation by values that select them (multiply by 1 or -1)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; or cancel them out (multiply by 0).&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; So if you wanted to alternate signs, you could use a sine wave and take the sign&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; of that:  sgn(sin(N))&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; - BW&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;

According to what I remember from a discussion here a while back :
The if() is normally evaluated at parse time. That makes it unsuitable 
to be used in an isosurface that need to evaluate it at render time.
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 6 Dec 2024 19:34:59 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C675351e3%241%40news.povray.org%3E/#%3C675351e3%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C675351e3%241%40news.povray.org%3E/#%3C675351e3%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Condition in functions [495 days 19 hours and 29 minutes ago]</title>
		<description>
&lt;pre&gt;Alain Martel &amp;lt;kua###&amp;nbsp;[at]&amp;nbsp;videotron&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;ca&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; As if() can't be used in the function of an isosurface, select() is&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; pretty much the only option.&lt;/span&gt;

Well, I don't think that's entirely true.

If you take advantage of the fact that expressions inside of parentheses get
evaluated, and make use of functions like sgn, min, max, etc, then you can
multiply terms in an equation by values that select them (multiply by 1 or -1)
or cancel them out (multiply by 0).

So if you wanted to alternate signs, you could use a sine wave and take the sign
of that:  sgn(sin(N))

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 6 Dec 2024 18:45:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6753460f32068233b00a87a025979125%40news.povray.org%3E/#%3Cweb.6753460f32068233b00a87a025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6753460f32068233b00a87a025979125%40news.povray.org%3E/#%3Cweb.6753460f32068233b00a87a025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Alain Martel] Re: Condition in functions [496 days and 35 minutes ago]</title>
		<description>
&lt;pre&gt;Le 2024-12-06 &amp;#195;&amp;#160; 06:15, kurtz le pirate a &amp;#195;&amp;#169;crit&amp;#194;&amp;#160;:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Do you agree with the use of select() to replace if() ?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I'm struggling a bit and I would like to check this option already.&lt;/span&gt;

As if() can't be used in the function of an isosurface, select() is 
pretty much the only option.

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; On the left is MathMod, on the right where I am.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I'm trying to figure out why the &amp;#226;&amp;#128;&amp;#156;laces&amp;#226;&amp;#128;&amp;#157; are
missing.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Thanks&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 6 Dec 2024 13:38:22 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C6752fe4e%241%40news.povray.org%3E/#%3C6752fe4e%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C6752fe4e%241%40news.povray.org%3E/#%3C6752fe4e%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Condition in functions [496 days 2 hours and 9 minutes ago]</title>
		<description>
&lt;pre&gt;kurtz le pirate &amp;lt;kur###&amp;nbsp;[at]&amp;nbsp;free&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;fr&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; This exemple come from MathMod, &amp;quot;Vase_3 by Abderrahman Taha 31/10/2019&amp;quot;&lt;/span&gt;

Nice.  There have been a lot of MathMod shapes that I'd like to replicate in
POV-Ray.

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Do you agree with the use of select() to replace if() ?&lt;/span&gt;
Yes - there are few other options to do that, if any.

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; On the left is MathMod, on the right where I am.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I'm trying to figure out why the &amp;#147;laces&amp;#148; are missing.&lt;/span&gt;

No time for me to investigate this in detail right now but:

Isosurfaces of complex things can be tricky - especially if you're trying to use
certain &amp;quot;forms&amp;quot; of equations.

First thing is to check messages and see what the gradient is.

Then I'd try to take the abs () of the equation and subtract a tiny amount to
see if anything shows up.

Then I might see if subtracting the equation from the r (x,y,z) function gets
you anywhere.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 6 Dec 2024 12:05:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6752e771320682331f9dae3025979125%40news.povray.org%3E/#%3Cweb.6752e771320682331f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6752e771320682331f9dae3025979125%40news.povray.org%3E/#%3Cweb.6752e771320682331f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[kurtz le pirate] Condition in functions [496 days 2 hours and 58 minutes ago]</title>
		<description>
&lt;pre&gt;Hello,

This exemple come from MathMod, &amp;quot;Vase_3 by Abderrahman Taha 31/10/2019&amp;quot;

Several isosurfaces and functions including these two :

isoTransform_2 = 
if(CarvinCondition(x,y,z,t)=(0),ThickIsoExterior(x,y,z,t),1)&amp;quot;

isoTransform_6=if(CarvinCondition(x,y,z,t)&amp;amp;ThickIsoExterior(x,y,z,t)&amp;lt;(0),-ThickIso2((6*x),(6*y),(6*z),t)*Iso6((x*6),(y*6),(z*6),-1)

*(Iso6((x*6),(y*6),(z*6),1)),1)&amp;quot;

CarvinCondition, ThickIsoExterior, ThickIso2, Iso6 are others functions.



The (my) transcription for POV gives :

#declare isoTransform_2 = function(x,y,z,T) {
  	select (
		// A (condition)
  		CarvinCondition(x,y,z,T),
		// B : A &amp;lt; 0
   		ThickIsoExterior(x,y,z,T),
  		// C : A = 0
  		1,
  		// D : A &amp;gt; 0
   		ThickIsoExterior(x,y,z,T)
   		)
   	}

#declare isoTransform_6 = function(x,y,z,T) {
	select (
		// A (condition)
		(CarvinCondition(x,y,z,T) &amp;amp; ThickIsoExterior(x,y,z,T)),
		// B : A &amp;lt;0
		-ThickIso2((6*x),(6*y),(6*z),T) * Iso6((x*6),(y*6),(z*6),-1) * 
(Iso6((x*6),(y*6),(z*6),1)),
		// C : A &amp;gt;= 0
  		1
  		)
  	}


Do you agree with the use of select() to replace if() ?
I'm struggling a bit and I would like to check this option already.



On the left is MathMod, on the right where I am.
I'm trying to figure out why the &amp;#226;&amp;#128;&amp;#156;laces&amp;#226;&amp;#128;&amp;#157; are
missing.





Thanks



-- 
kurtz le pirate
compagnie de la banquise
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 6 Dec 2024 11:15:08 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C6752dcbc%40news.povray.org%3E/#%3C6752dcbc%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C6752dcbc%40news.povray.org%3E/#%3C6752dcbc%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Making Patterns with functions [497 days 15 hours and 39 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Finally had a moment of clarity, and figured out a fish-scale pattern that I&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; wanted to make.&lt;/span&gt;

And here's a modification to make it less semi-circular.
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 4 Dec 2024 22:35:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6750d8fdd81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.6750d8fdd81b84791f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6750d8fdd81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.6750d8fdd81b84791f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Making Patterns with functions [497 days 15 hours and 44 minutes ago]</title>
		<description>
&lt;pre&gt;Finally had a moment of clarity, and figured out a fish-scale pattern that I
wanted to make.
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 4 Dec 2024 22:30:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6750d737d81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.6750d737d81b84791f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6750d737d81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.6750d737d81b84791f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Francois LE COAT] Re: Optical Inertia [510 days 22 hours and 58 minutes ago]</title>
		<description>
&lt;pre&gt;Hi,

Here is another result...

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Bald Eagle writes:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; Even if I were to simply use a POV-Ray scene, where I rendered two ima&lt;/span&gt;
ges with
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; different camera locations - then I'm assuming that I could calculate &lt;/span&gt;
a vector
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; field and a projection matrix. (something simple like cubes, spheres, &lt;/span&gt;
and cylinders)
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; Given The projection matrix and one of the two renders, would I then h&lt;/span&gt;
ave the
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; necessary and sufficient information to write a .pov scene to recreate&lt;/span&gt;
 the
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; render from scratch?&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; - BW&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; For the moment, the work with depth from monocular vision is not enough&lt;/span&gt;

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; advanced that we can recreate the visible scene. Vision with two camera&lt;/span&gt;
s
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; or more, gives a much advanced result for 3D reconstruction of scenes.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Let remind us the starting point from this thread... We've redone the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; experiment from Hernan Badino, who is walking with a camera on his head&lt;/span&gt;
:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;https://www.youtube.com/watch?v=MmFJwGVwJG8&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Hernan determines his 2D ego-motion in the x-y plane, from correspondin&lt;/span&gt;
g
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; interest points that persist in the video stream. That means he is&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; calculating the projection matrix of the movement to deduce translation&lt;/span&gt;
s
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; in the ground plane. With time integration, it gives him the trajectory&lt;/span&gt;
.
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; We're doing almost the same, but I work with OpenCV's optical-flow, and&lt;/span&gt;

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; not interest points. And my motion model is 3D, to obtain 8 parameters&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; in rotation and translation, that I can use in Persistence Of Vision.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I hope you're understanding... I'm reconstituting the 3D movement, and &lt;/span&gt;
I
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; discover it's giving &amp;quot;temporal disparity&amp;quot;, that is depth from motion.&lt;/span&gt;

An instrumented motorcycle rolls on the track of a speed circuit. Thanks
to the approximation of optical flow (DIS - OpenCV) by the dominant
projective movement, we determine translations on the ground plane,
roll and yaw. That is to say the trajectory by projective parameters
(Tx,Tz,Ry,Rz).

&amp;lt;https://www.youtube.com/watch?v=-QLJ2ke9mN8&amp;gt;

Image data comes from the publication:

Bastien Vincke, Pauline Michel, Abdelhafid El Ouardi, Bruno Larnaudie,
Flavien Delgehier, Rabah Sadoun, Samir Bouaziz, St&amp;#233;phane Espi&amp;#233;, Sergi
o
Rodriguez, Abderrahmane Boubezoul. (Dec. 2024). Real Track Experiment
Dataset for Motorcycle Rider Behavior and Trajectory Reconstruction.
Data in Brief, Vol. 57, 111026.

The instrumented motorcycle makes a complete lap of the track. The
correlation threshold is set at 90% between successive images, to
reset the calculation of the projective dynamic model.

Best regards,

-- 
Fran&amp;#231;ois LE COAT
&amp;lt;https://eureka.atari.org/&amp;gt;
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 21 Nov 2024 15:15:42 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C673f4e9e%241%40news.povray.org%3E/#%3C673f4e9e%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C673f4e9e%241%40news.povray.org%3E/#%3C673f4e9e%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Francois LE COAT] Re: Optical Inertia [533 days 22 hours and 57 minutes ago]</title>
		<description>
&lt;pre&gt;Hi,

Bald Eagle writes:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Even if I were to simply use a POV-Ray scene, where I rendered two imag&lt;/span&gt;
es with
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; different camera locations - then I'm assuming that I could calculate a&lt;/span&gt;
 vector
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; field and a projection matrix. (something simple like cubes, spheres, a&lt;/span&gt;
nd
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; cylinders)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Given The projection matrix and one of the two renders, would I then ha&lt;/span&gt;
ve the
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; necessary and sufficient information to write a .pov scene to recreate &lt;/span&gt;
the
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; render from scratch?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; - BW&lt;/span&gt;

For the moment, the work with depth from monocular vision is not enough
advanced that we can recreate the visible scene. Vision with two cameras
or more, gives a much advanced result for 3D reconstruction of scenes.

Let's remind us the starting point from this thread... We've redone the
experiment from Hernan Badino, who is walking with a camera on his head:

	&amp;lt;https://www.youtube.com/watch?v=GeVJMamDFXE&amp;gt;

Hernan determines his 2D ego-motion in the x-y plane, from corresponding
interest points that persist in the video stream. That means he is
calculating the projection matrix of the movement to deduce translations
in the ground plane. With time integration, it gives him the trajectory.

We're doing almost the same, but I work with OpenCV's optical-flow, and
not interest points. And my motion model is 3D, to obtain 8 parameters
in rotation and translation, that I can use in Persistence Of Vision.

I hope you're understanding... I'm reconstituting the 3D movement, and I
discover it's giving &amp;quot;temporal disparity&amp;quot;, that is depth from motion.

Best regards,

-- 
Fran&amp;#231;ois LE COAT
&amp;lt;https://eureka.atari.org/&amp;gt;
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 29 Oct 2024 15:16:58 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C6720fc6a%241%40news.povray.org%3E/#%3C6720fc6a%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C6720fc6a%241%40news.povray.org%3E/#%3C6720fc6a%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Optical Inertia [544 days 2 hours and 4 minutes ago]</title>
		<description>
&lt;pre&gt;Francois LE COAT &amp;lt;lec###&amp;nbsp;[at]&amp;nbsp;atari&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;org&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I have the first reference image, and the second one, from which I&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; determine the optical-flow. That means every pixel integer displacement&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; between an image, to the other. That gives a vector field that can&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; be approximated by a global projective transformation. That means eight&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; parameters in rotation and translation, that match the two images the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; best. The quality of the images' matching is measured with correlation,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; between the first image and the second (projectively) transformed.&lt;/span&gt;

So, you have this vector field that - sort of maps the pixels in the second
frame to the pixels in the first frame.
And then somehow the projection matrix is calculated from that.

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Disparity field which is an integer displacement between images, is&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; linked to depth in the image (3rd dimension) with an inverse relation&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; (depth=base/disparity). That means we can evaluate image's depth from&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; a continuous video stream.&lt;/span&gt;

Presumably when an object gets closer, the image gets &amp;quot;scaled up&amp;quot; in the frame,
and you use that to calculate the distance of the object from the camera.

&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; I'm also wondering if you could create a 3D rendering with the data you&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; 're&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; extracting, and maybe a 2D orthographic overhead map of the scene that&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; the&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; drones are flying through, mapping the position of the drones in the fo&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; rest.&lt;/span&gt;

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; All is not so perfect, that we can imagine what&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; you're wishing, from the state of the art...&lt;/span&gt;

Well, I'm just thinking that you must have an approximate idea of where each
tree is, given that you calculate a projection matrix and know something about
the depth.  So I was just wondering if, given that information, you could simply
place a cylinder of the approximate diameter and at the right depth.

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; It's a long work since I can show some promising results. Now I'm&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; happy to share it with a larger audience. Unfortunately all the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; good people that worked with me, are not here to appreciate. That's&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; why I'm surprised with your interest =)&lt;/span&gt;

Well, I have been interested in the fundamentals of photogrammetry for quite
some time.  And I have been following your work for the last several years,
hoping to learn how to create such projection matrices and apply them.

https://news.povray.org/povray.advanced-users/thread/%3C5be592ea%241%40news.povray.org%3E/

I don't work in academia or the graphics industry, so I only have what free time
that I can devote to independently learning this stuff on my own.

Even if I were to simply use a POV-Ray scene, where I rendered two images with
different camera locations - then I'm assuming that I could calculate a vector
field and a projection matrix. (something simple like cubes, spheres, and
cylinders)

Given The projection matrix and one of the two renders, would I then have the
necessary and sufficient information to write a .pov scene to recreate the
render from scratch?

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 19 Oct 2024 12:10:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6713a0d94e45f5111f9dae3025979125%40news.povray.org%3E/#%3Cweb.6713a0d94e45f5111f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6713a0d94e45f5111f9dae3025979125%40news.povray.org%3E/#%3Cweb.6713a0d94e45f5111f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Francois LE COAT] Re: Optical Inertia [544 days 13 hours and 53 minutes ago]</title>
		<description>
&lt;pre&gt;Hi,

Bald Eagle writes:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Francois LE COAT wrote:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; I have the first reference image, and the second one, from which I&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; determine the optical-flow. That means every pixel integer displacemen&lt;/span&gt;
t
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; between an image, to the other. That gives a vector field that can&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; be approximated by a global projective transformation. That means eigh&lt;/span&gt;
t
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; parameters in rotation and translation, that match the two images the&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; best. The quality of the images' matching is measured with correlation&lt;/span&gt;
,
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; between the first image and the second (projectively) transformed.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; So, you have this vector field that - sort of maps the pixels in the se&lt;/span&gt;
cond
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; frame to the pixels in the first frame.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; And then somehow the projection matrix is calculated from that.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; Disparity field which is an integer displacement between images, is&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; linked to depth in the image (3rd dimension) with an inverse relation&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; (depth=base/disparity). That means we can evaluate image's depth fro&lt;/span&gt;
m
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; a continuous video stream.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Presumably when an object gets closer, the image gets &amp;quot;scaled up&amp;quot; in th&lt;/span&gt;
e frame,
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; and you use that to calculate the distance of the object from the camer&lt;/span&gt;
a.
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; I'm also wondering if you could create a 3D rendering with the data y&lt;/span&gt;
ou're
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; extracting, and maybe a 2D orthographic overhead map of the scene tha&lt;/span&gt;
t the
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; drones are flying through, mapping the position of the drones in the &lt;/span&gt;
forest.
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; All is not so perfect, that we can imagine what&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; you're wishing, from the state of the art...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Well, I'm just thinking that you must have an approximate idea of where&lt;/span&gt;
 each
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; tree is, given that you calculate a projection matrix and know somethin&lt;/span&gt;
g about
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; the depth.  So I was just wondering if, given that information, you cou&lt;/span&gt;
ld simply
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; place a cylinder of the approximate diameter and at the right depth.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; It's a long work since I can show some promising results. Now I'm&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; happy to share it with a larger audience. Unfortunately all the&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; good people that worked with me, are not here to appreciate. That's&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; why I'm surprised with your interest =)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Well, I have been interested in the fundamentals of photogrammetry for &lt;/span&gt;
quite
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; some time.  And I have been following your work for the last several ye&lt;/span&gt;
ars,
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; hoping to learn how to create such projection matrices and apply them.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; https://news.povray.org/povray.advanced-users/thread/%3C5be592ea%241%40&lt;/span&gt;
news.povray.org%3E/
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I don't work in academia or the graphics industry, so I only have what &lt;/span&gt;
free time
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; that I can devote to independently learning this stuff on my own.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Even if I were to simply use a POV-Ray scene, where I rendered two imag&lt;/span&gt;
es with
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; different camera locations - then I'm assuming that I could calculate a&lt;/span&gt;
 vector
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; field and a projection matrix. (something simple like cubes, spheres, a&lt;/span&gt;
nd
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; cylinders)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Given The projection matrix and one of the two renders, would I then ha&lt;/span&gt;
ve the
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; necessary and sufficient information to write a .pov scene to recreate &lt;/span&gt;
the
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; render from scratch?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; - BW&lt;/span&gt;

I understand your question. The problem is I'm far from reconstituting
a 3D scene from the monocular information I have at the moment. I know
a company which is doing this sort of application, called Stereolabs...

	&amp;lt;https://www.stereolabs.com/&amp;gt;

I'm far from their perfect 3D acquisition process. And it is obtained
with two cameras. I only have one camera, and a video stream that I
didn't acquired myself. Is there an interest, and applications? I'm
not at this step in my work.

I know that similar monocular image processing have been used on planet
Mars, because the helicopter only had one piloting camera, for weight
and embedding reasons.

The main goal at this point of the work, is to show that we could
eventually do the same job, using many cameras, or with only one.
But I'm far from obtaining a similar result, as elaborated systems,
like with Stereolabs camera ZED, for instance.

That is already being done perfectly with a stereoscopic system...

Do you understand? Thanks for your attention.

Best regards,

-- 
Fran&amp;#231;ois LE COAT
&amp;lt;https://eureka.atari.org/&amp;gt;
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 19 Oct 2024 00:20:12 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C6712fb3c%241%40news.povray.org%3E/#%3C6712fb3c%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C6712fb3c%241%40news.povray.org%3E/#%3C6712fb3c%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Optical Inertia [544 days 16 hours and 29 minutes ago]</title>
		<description>
&lt;pre&gt;Francois LE COAT &amp;lt;lec###&amp;nbsp;[at]&amp;nbsp;atari&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;org&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I have the first reference image, and the second one, from which I&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; determine the optical-flow. That means every pixel integer displacement&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; between an image, to the other. That gives a vector field that can&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; be approximated by a global projective transformation. That means eight&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; parameters in rotation and translation, that match the two images the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; best. The quality of the images' matching is measured with correlation,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; between the first image and the second (projectively) transformed.&lt;/span&gt;

So, you have this vector field that - sort of maps the pixels in the second
frame to the pixels in the first frame.
And then somehow the projection matrix is calculated from that.

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Disparity field which is an integer displacement between images, is&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; linked to depth in the image (3rd dimension) with an inverse relation&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; (depth=base/disparity). That means we can evaluate image's depth from&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; a continuous video stream.&lt;/span&gt;

Presumably when an object gets closer, the image gets &amp;quot;scaled up&amp;quot; in the frame,
and you use that to calculate the distance of the object from the camera.

&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; I'm also wondering if you could create a 3D rendering with the data you&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; 're&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; extracting, and maybe a 2D orthographic overhead map of the scene that&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; the&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; drones are flying through, mapping the position of the drones in the fo&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; rest.&lt;/span&gt;

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; All is not so perfect, that we can imagine what&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; you're wishing, from the state of the art...&lt;/span&gt;

Well, I'm just thinking that you must have an approximate idea of where each
tree is, given that you calculate a projection matrix and know something about
the depth.  So I was just wondering if, given that information, you could simply
place a cylinder of the approximate diameter and at the right depth.

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; It's a long work since I can show some promising results. Now I'm&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; happy to share it with a larger audience. Unfortunately all the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; good people that worked with me, are not here to appreciate. That's&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; why I'm surprised with your interest =)&lt;/span&gt;

Well, I have been interested in the fundamentals of photogrammetry for quite
some time.  And I have been following your work for the last several years,
hoping to learn how to create such projection matrices and apply them.

https://news.povray.org/povray.advanced-users/thread/%3C5be592ea%241%40news.povray.org%3E/

I don't work in academia or the graphics industry, so I only have what free time
that I can devote to independently learning this stuff on my own.

Even if I were to simply use a POV-Ray scene, where I rendered two images with
different camera locations - then I'm assuming that I could calculate a vector
field and a projection matrix. (something simple like cubes, spheres, and
cylinders)

Given The projection matrix and one of the two renders, would I then have the
necessary and sufficient information to write a .pov scene to recreate the
render from scratch?

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 18 Oct 2024 21:45:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6712d6cc4e45f5111f9dae3025979125%40news.povray.org%3E/#%3Cweb.6712d6cc4e45f5111f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6712d6cc4e45f5111f9dae3025979125%40news.povray.org%3E/#%3Cweb.6712d6cc4e45f5111f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Francois LE COAT] Re: Optical Inertia [544 days 17 hours and 58 minutes ago]</title>
		<description>
&lt;pre&gt;Hi,

Bald Eagle writes:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Francois LE COAT wrote:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; It is possible to perceive the relief (in depth) of a scene, when we&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; have at least two different viewpoints of it. Here is a new example wi&lt;/span&gt;
th
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; a drone flying in the middle of a forest of trees, and from which we&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; process the video stream from the embedded camera...&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; &amp;lt;https://www.youtube.com/watch?v=WJ20EBM3PTc&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; When the two views of the same scene are distant in space, we speak&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; of &amp;quot;spatial disparity&amp;quot;. In the present case, the two viewpoints are&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; distant in time, and we then speak of &amp;quot;temporal disparity&amp;quot;. This&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; involves knowing whether the two images of the same scene are acquired&lt;/span&gt;

&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; simultaneously, or delayed in time. We can perceive the relief in dept&lt;/span&gt;
h
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; in this case, with a single camera and its continuous video stream.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Francois,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Although I believe that I understand the general idea of what you're do&lt;/span&gt;
ing in
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; your work, it's a bit difficult to fully grasp the details from the vid&lt;/span&gt;
eo.
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I'm assuming that you're taking the first frame as a reference image, a&lt;/span&gt;
nd then
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; reorienting the second frame to optimize the registration.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Then you're using the OpenCV to do some sort of photogrammetry to gener&lt;/span&gt;
ate a
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; projection matrix from the 2D image, and extract/back-calculate 3D data&lt;/span&gt;
 from
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; that matrix for everything in the frame.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Then you move to the pair of 2nd frame + 3rd frame and repeat the proce&lt;/span&gt;
ss.
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Is this correct?&lt;/span&gt;

I have the first reference image, and the second one, from which I
determine the optical-flow. That means every pixel integer displacement
between an image, to the other. That gives a vector field that can
be approximated by a global projective transformation. That means eight
parameters in rotation and translation, that match the two images the
best. The quality of the images' matching is measured with correlation,
between the first image and the second (projectively) transformed.

I repeat the treatments with the third, the fourth that gives me a
decreasing correlation value... Until correlation drops below 60%.

Then when correlation is too low, I take a new reference image (the
last good matching) let's admit fourth, and continue to determine
good matching (&amp;gt;60% correlation) with fifth, sixth, and so forth ...

That gives me reliable 8 projective transform parameters between 1st
and 4th images, because of the good correlation. That also gives me
the reliable vector field of the optical-flow, that can be named
&amp;quot;temporal disparity&amp;quot; horizontal and vertical. That's what you're seeing
in grey levels images.

Disparity field which is an integer displacement between images, is
linked to depth in the image (3rd dimension) with an inverse relation
(depth=base/disparity). That means we can evaluate image's depth from
a continuous video stream.

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I'm also wondering if you could create a 3D rendering with the data you&lt;/span&gt;
're
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; extracting, and maybe a 2D orthographic overhead map of the scene that &lt;/span&gt;
the
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; drones are flying through, mapping the position of the drones in the fo&lt;/span&gt;
rest.

The disparity measurements are a physical approximation (optical
flow) that is imperfect, and is constantly improved with science
researches. I'm always interested in the progress with this domain.
But for the moment we must have a compromise between quality and
computing time. All is not so perfect, that we can imagine what
you're wishing, from the state of the art...

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; As always, I am very interested in understanding the details of what yo&lt;/span&gt;
u're
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; doing.&lt;/span&gt;

I hope you understood it better. I may be a little confuse...

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; This is great work, and I hope you are properly recognized for your&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; achievements.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; - BW&lt;/span&gt;

It's a long work since I can show some promising results. Now I'm
happy to share it with a larger audience. Unfortunately all the
good people that worked with me, are not here to appreciate. That's
why I'm surprised with your interest =)

Thanks for your attention.

Best regards,

-- 
Fran&amp;#231;ois LE COAT
&amp;lt;https://eureka.atari.org/&amp;gt;
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 18 Oct 2024 20:15:38 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C6712c1ea%40news.povray.org%3E/#%3C6712c1ea%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C6712c1ea%40news.povray.org%3E/#%3C6712c1ea%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Optical Inertia [545 days and 39 minutes ago]</title>
		<description>
&lt;pre&gt;Francois LE COAT &amp;lt;lec###&amp;nbsp;[at]&amp;nbsp;atari&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;org&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; It is possible to perceive the relief (in depth) of a scene, when we&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; have at least two different viewpoints of it. Here is a new example with&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; a drone flying in the middle of a forest of trees, and from which we&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; process the video stream from the embedded camera...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;lt;https://www.youtube.com/watch?v=WJ20EBM3PTc&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; When the two views of the same scene are distant in space, we speak&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; of &amp;quot;spatial disparity&amp;quot;. In the present case, the two viewpoints are&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; distant in time, and we then speak of &amp;quot;temporal disparity&amp;quot;. This&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; involves knowing whether the two images of the same scene are acquired&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; simultaneously, or delayed in time. We can perceive the relief in depth&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; in this case, with a single camera and its continuous video stream.&lt;/span&gt;

Francois,

Although I believe that I understand the general idea of what you're doing in
your work, it's a bit difficult to fully grasp the details from the video.

I'm assuming that you're taking the first frame as a reference image, and then
reorienting the second frame to optimize the registration.
Then you're using the OpenCV to do some sort of photogrammetry to generate a
projection matrix from the 2D image, and extract/back-calculate 3D data from
that matrix for everything in the frame.

Then you move to the pair of 2nd frame + 3rd frame and repeat the process.

Is this correct?

I'm also wondering if you could create a 3D rendering with the data you're
extracting, and maybe a 2D orthographic overhead map of the scene that the
drones are flying through, mapping the position of the drones in the forest.

As always, I am very interested in understanding the details of what you're
doing.

This is great work, and I hope you are properly recognized for your
achievements.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 18 Oct 2024 13:35:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6712634f4e45f511d2a18eff25979125%40news.povray.org%3E/#%3Cweb.6712634f4e45f511d2a18eff25979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6712634f4e45f511d2a18eff25979125%40news.povray.org%3E/#%3Cweb.6712634f4e45f511d2a18eff25979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Francois LE COAT] Re: Optical Inertia [546 days and 38 minutes ago]</title>
		<description>
&lt;pre&gt;Hi,

Francois LE COAT writes:
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; The experiment from Hernan Badino was redone. You can see it there...&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;https://www.youtube.com/watch?v=fqWdSfN9FiA&amp;gt; Source&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; The main interest is that video is looping, and the result is almost:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;https://www.youtube.com/watch?v=0ZPJmnBh03M&amp;gt; Reworke&lt;/span&gt;
d
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; Well, Hernan Badino is moving his head when he is walking, so the&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; reconstructed trajectory is not perfectly looping at the end. But&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; we can reconstruct the movement almost perfectly. We use OpenCV&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; for image processing, and POV-Ray for 3D representation. We have&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; to determine projective dominant motion in the video with a&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; reference image, and change it when correlation drops below 80%.&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; We have a 3D inertial model of motion, that's why POV-Ray helps =)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Three drones are flying between forests of trees. Thanks to the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; optical-flow (DIS OpenCV) measured on successive images, the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;quot;temporal disparity&amp;quot; reveals the forest of trees (3rd dimension)...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;lt;https://www.youtube.com/watch?v=QP75EeFVyOI&amp;gt; 1st drone&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;lt;https://www.youtube.com/watch?v=fp5Z1Nu4Hko&amp;gt; 2nd drone&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;lt;https://www.youtube.com/watch?v=fLxE8iS7fPI&amp;gt; 3rd drone&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; The interest with the forest is that trajectories are curved, in&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; order to avoid obstacles. It is measured thanks to a projective&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; transform, and represented with &amp;lt;Ry,Rz,Tx,Tz&amp;gt; thanks to POV-Ray.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; The evolution of the drone is shown in front-view with its camera.&lt;/span&gt;

It is possible to perceive the relief (in depth) of a scene, when we
have at least two different viewpoints of it. Here is a new example with
a drone flying in the middle of a forest of trees, and from which we
process the video stream from the embedded camera...

&amp;lt;https://www.youtube.com/watch?v=WJ20EBM3PTc&amp;gt;

When the two views of the same scene are distant in space, we speak
of &amp;quot;spatial disparity&amp;quot;. In the present case, the two viewpoints are
distant in time, and we then speak of &amp;quot;temporal disparity&amp;quot;. This
involves knowing whether the two images of the same scene are acquired
simultaneously, or delayed in time. We can perceive the relief in depth
in this case, with a single camera and its continuous video stream.

Best regards,

-- 
Fran&amp;#231;ois LE COAT
&amp;lt;https://eureka.atari.org/&amp;gt;
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 17 Oct 2024 13:35:47 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C671112b3%241%40news.povray.org%3E/#%3C671112b3%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C671112b3%241%40news.povray.org%3E/#%3C671112b3%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[jr] Re: Slicing media - is it possible ? [565 days and 24 minutes ago]</title>
		<description>
&lt;pre&gt;hi,

yesbird &amp;lt;sya###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; On 24/09/2024 20:40, yesbird wrote:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Can't resist to share a pair of beautiful slices produced by simple&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; box resizing.&lt;/span&gt;

agree, nice, dicom_3 in particular.  thanks.


regards, jr.
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 28 Sep 2024 13:50:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.66f808e1d5a4caf1f5bfc9b06cde94f1%40news.povray.org%3E/#%3Cweb.66f808e1d5a4caf1f5bfc9b06cde94f1%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.66f808e1d5a4caf1f5bfc9b06cde94f1%40news.povray.org%3E/#%3Cweb.66f808e1d5a4caf1f5bfc9b06cde94f1%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Slicing media - is it possible ? [565 days 12 hours ago]</title>
		<description>
&lt;pre&gt;On 24/09/2024 20:40, yesbird wrote:
Can't resist to share a pair of beautiful slices produced by simple
box resizing.
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 28 Sep 2024 02:13:46 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C66f7665a%40news.povray.org%3E/#%3C66f7665a%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C66f7665a%40news.povray.org%3E/#%3C66f7665a%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Alain Martel] Re: Slicing media - is it possible ? [565 days 23 hours and 56 minutes ago]</title>
		<description>
&lt;pre&gt;Le 2024-09-26 &amp;#195;&amp;#160; 16:35, yesbird a &amp;#195;&amp;#169;crit&amp;#194;&amp;#160;:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Alain, sorry for mixing you name, I need a better glasses...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; -- &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; YB&lt;/span&gt;
&amp;#240;&amp;#159;&amp;#152;&amp;#142;&amp;#240;&amp;#159;&amp;#164;&amp;#163;
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 27 Sep 2024 14:17:23 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C66f6be73%241%40news.povray.org%3E/#%3C66f6be73%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C66f6be73%241%40news.povray.org%3E/#%3C66f6be73%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Slicing media - is it possible ? [566 days 17 hours and 38 minutes ago]</title>
		<description>
&lt;pre&gt;Alain, sorry for mixing you name, I need a better glasses...
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 26 Sep 2024 20:35:53 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C66f5c5a9%241%40news.povray.org%3E/#%3C66f5c5a9%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C66f5c5a9%241%40news.povray.org%3E/#%3C66f5c5a9%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Slicing media - is it possible ? [566 days 17 hours and 42 minutes ago]</title>
		<description>
&lt;pre&gt;On 25/09/2024 23:54, MichaelJF wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Sorry, yesterday I addressed the general question of the possibility of &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; CSG operations with media and not your special example.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ...&lt;/span&gt;

No problem - in any case thanks for participating in solving this
sophisticated problem :). Thanks to Alan I have a serious progress now.
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 26 Sep 2024 20:31:24 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C66f5c49c%40news.povray.org%3E/#%3C66f5c49c%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C66f5c49c%40news.povray.org%3E/#%3C66f5c49c%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Slicing media - is it possible ? [566 days 17 hours and 48 minutes ago]</title>
		<description>
&lt;pre&gt;On 25/09/2024 18:58, Alain Martel wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I see that your code use intervals 60.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; That's REAL bad.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; This will render faster with better results :&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #declare themedia = interior{&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; media{&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;samples 100&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;// stating method 3 is not needed
as it's the default&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;// ratio is not used with method 3&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;// confidence and variance are also
not used&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;emission 1/20 //OK&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;absorption 1/1000 //OK&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;scattering {1, -0.3} //OK&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;density{&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; 
&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;
&amp;lt;density items&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; 
&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;
// As interpolate 0 mean no interpolation,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; 
&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;
// you can omit it&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; 
&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160; }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; }&lt;/span&gt;

Alan !
Many, many thanks for this correction - rendering now is really faster
with better quality. All your information about parameter's
interference is also very valuable - you saved a lot of time for me.
I like your deep and serious  approach.

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Then. Change your container as follow :&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; difference{&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; 
&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;box{&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;
0, 1&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; 
&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;
translate -0.5&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; 
&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;
scale 200&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;}// NO pigment&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; 
&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;box{&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;
0, 1&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; 
&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;
translate -0.5&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; 
&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;
scale &amp;lt;100, 100, 201&amp;gt;//400 is uselessly large&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;}//still no pigment&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;hollow //apply to the difference as
a whole&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;pigment{rgbf 1}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;interior{ theinterior}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;

Unfortunately here still no success (please see 1st attached image).
It looks like scaling / translation issue - I will try to fix it.

In any case slicing by orthogonal planes by changing the box size
(as on 2nd image) will be enough - CSG operations was only exercise for
me. And now I believe - the media is really tricky :)
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 26 Sep 2024 20:25:51 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C66f5c34f%40news.povray.org%3E/#%3C66f5c34f%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C66f5c34f%40news.povray.org%3E/#%3C66f5c34f%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[MichaelJF] Re: Slicing media - is it possible ? [567 days 17 hours and 19 minutes ago]</title>
		<description>
&lt;pre&gt;Sorry, yesterday I addressed the general question of the possibility of 
CSG operations with media and not your special example. Now reading 
Alains post, I think your actual problem has nothing to do with media at 
all, but with the way POV handles textures in case of a CSG difference. 
May be sections 3.6.1.9 and 3.6.1.10 in the docs about interior and 
cutaway textures solve your special riddle since the default of an 
undefined texture is black as is your background. In your case the 
texture of the subtracted second box is undefined as well as the 
interior/cutaway texture of the first with the df3-interior. Anyway, 
Alains remedies shuld help.

Best regards
Michael
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 25 Sep 2024 20:54:24 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C66f47880%241%40news.povray.org%3E/#%3C66f47880%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C66f47880%241%40news.povray.org%3E/#%3C66f47880%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Alain Martel] Re: Slicing media - is it possible ? [567 days 22 hours and 15 minutes ago]</title>
		<description>
&lt;pre&gt;Le 2024-09-24 &amp;#195;&amp;#160; 13:40, yesbird a &amp;#195;&amp;#169;crit&amp;#194;&amp;#160;:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Hi,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I am trying to apply CSG operations to objects filled with media without&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; any success (results also attached):&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; https://povlab.online/?scene=dicom.pov&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Who knows if it's really possible or I am only wasting the time trying&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; to force it to work ?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Thanks in advance.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; -- &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; YB&lt;/span&gt;

I see that your code use intervals 60.
That's REAL bad.
This will render faster with better results :

#declare themedia = interior{
media{
	samples 100
	// stating method 3 is not needed as it's the default
	// ratio is not used with method 3
	// confidence and variance are also not used
	emission 1/20 //OK
	absorption 1/1000 //OK
	scattering {1, -0.3} //OK
	density{
		&amp;lt;density items&amp;gt;
		// As interpolate 0 mean no interpolation,
		// you can omit it
		}
	}
}

Using intervals with any value &amp;gt;1 massively increase the rendering time 
and can introduce artifacts and glitches.

Then. Change your container as follow :
difference{
	box{	0, 1
		translate -0.5
		scale 200
	}// NO pigment
	box{	0, 1
		translate -0.5
		scale &amp;lt;100, 100, 201&amp;gt;//400 is uselessly large
	}//still no pigment
	hollow //apply to the difference as a whole
	pigment{rgbf 1}
	interior{ theinterior}
	}


Using the default method 3, you need to avoid using intervals 
altogether. Using intervals is a huge performance killer.
Then, the parameters ratio, confidence and variance are specific to 
method 1 and 2 and are used to control how many samples are to be used 
for each intervals. As you work with only 1 intervals, they have no effect.
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 25 Sep 2024 15:58:57 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C66f43341%40news.povray.org%3E/#%3C66f43341%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C66f43341%40news.povray.org%3E/#%3C66f43341%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Alain Martel] Re: Slicing media - is it possible ? [567 days 22 hours and 38 minutes ago]</title>
		<description>
&lt;pre&gt;Le 2024-09-24 &amp;#195;&amp;#160; 13:40, yesbird a &amp;#195;&amp;#169;crit&amp;#194;&amp;#160;:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Hi,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I am trying to apply CSG operations to objects filled with media without&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; any success (results also attached):&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; https://povlab.online/?scene=dicom.pov&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Who knows if it's really possible or I am only wasting the time trying&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; to force it to work ?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Thanks in advance.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; -- &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; YB&lt;/span&gt;
Looks like that box is opaque.

If you start by applying the media THEN cut away, you need to make sure 
that the other object also have rgbt 1 as it's pigment.

The best approach here is to do all of your CSG before adding your 
media, add the transparent pigment at once to the totality of the 
composite object, then add the media.

DO NOT use union. You can use merge, intersection and difference. As 
union don't remove any internal surface, it'll wreak havoc with your media.
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 25 Sep 2024 15:35:56 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C66f42ddc%241%40news.povray.org%3E/#%3C66f42ddc%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C66f42ddc%241%40news.povray.org%3E/#%3C66f42ddc%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Slicing media - is it possible ? [568 days 17 hours and 40 minutes ago]</title>
		<description>
&lt;pre&gt;On 24/09/2024 22:37, MichaelJF wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; The section &amp;quot;Multiple Density vs. Multiple Media&amp;quot; may be of help. One &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; can simulate intersections and unions of media with this approach.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Most freedom you can achieve with user defined functions to control the &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; density. But it can be very time-consuming to find the right parameters.&lt;/span&gt;

Thanks a lot, I will explore it !
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 24 Sep 2024 20:33:56 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C66f32234%241%40news.povray.org%3E/#%3C66f32234%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C66f32234%241%40news.povray.org%3E/#%3C66f32234%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[MichaelJF] Re: Slicing media - is it possible ? [568 days 18 hours and 36 minutes ago]</title>
		<description>
&lt;pre&gt;Am 24.09.2024 um 20:14 schrieb Bald Eagle:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; yesbird &amp;lt;sya###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; Hi,&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; I am trying to apply CSG operations to objects filled with media without&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; any success (results also attached):&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; https://povlab.online/?scene=dicom.pov&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; Who knows if it's really possible or I am only wasting the time trying&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; to force it to work ?&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; Thanks in advance.&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; --&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; YB&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Media is . . . tricky.&lt;/span&gt;

Indeed!

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; (Thus why I haven't used it a lot)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Just curious:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Have you tried the reverse - applying CSG operations to a container and THEN&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; filling it with media?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I think that if you read the documentation on the details of how media works, it&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; might help - or it may not.  It's so very dependent on what you're trying to do&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; and how you're going about doing it.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
The section &amp;quot;Multiple Density vs. Multiple Media&amp;quot; may be of help. One 
can simulate intersections and unions of media with this approach.

Most freedom you can achieve with user defined functions to control the 
density. But it can be very time-consuming to find the right parameters.



Best regards
Michael
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 24 Sep 2024 19:37:31 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C66f314fb%40news.povray.org%3E/#%3C66f314fb%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C66f314fb%40news.povray.org%3E/#%3C66f314fb%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Slicing media - is it possible ? [568 days 19 hours and 39 minutes ago]</title>
		<description>
&lt;pre&gt;On 24/09/2024 21:14, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Just curious:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Have you tried the reverse - applying CSG operations to a container and THEN&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; filling it with media?&lt;/span&gt;

Hmm, interesting - I will try ...
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 24 Sep 2024 18:34:21 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C66f3062d%40news.povray.org%3E/#%3C66f3062d%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C66f3062d%40news.povray.org%3E/#%3C66f3062d%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Slicing media - is it possible ? [568 days 19 hours and 59 minutes ago]</title>
		<description>
&lt;pre&gt;yesbird &amp;lt;sya###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Hi,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I am trying to apply CSG operations to objects filled with media without&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; any success (results also attached):&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; https://povlab.online/?scene=dicom.pov&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Who knows if it's really possible or I am only wasting the time trying&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; to force it to work ?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Thanks in advance.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; --&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; YB&lt;/span&gt;

Media is . . . tricky.
(Thus why I haven't used it a lot)

Just curious:
Have you tried the reverse - applying CSG operations to a container and THEN
filling it with media?

I think that if you read the documentation on the details of how media works, it
might help - or it may not.  It's so very dependent on what you're trying to do
and how you're going about doing it.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 24 Sep 2024 18:15:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.66f3018ad5a4caf1d2a18eff25979125%40news.povray.org%3E/#%3Cweb.66f3018ad5a4caf1d2a18eff25979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.66f3018ad5a4caf1d2a18eff25979125%40news.povray.org%3E/#%3Cweb.66f3018ad5a4caf1d2a18eff25979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Slicing media - is it possible ? [568 days 20 hours and 22 minutes ago]</title>
		<description>
&lt;pre&gt;On 24/09/2024 20:40, yesbird wrote:

PS: I know, that by changing the cube size this effect can be achieved,
but applying CSG operations is still mystery to me.
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 24 Sep 2024 17:51:58 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C66f2fc3e%241%40news.povray.org%3E/#%3C66f2fc3e%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C66f2fc3e%241%40news.povray.org%3E/#%3C66f2fc3e%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Slicing media - is it possible ? [568 days 20 hours and 33 minutes ago]</title>
		<description>
&lt;pre&gt;Hi,
I am trying to apply CSG operations to objects filled with media without
any success (results also attached):
https://povlab.online/?scene=dicom.pov

Who knows if it's really possible or I am only wasting the time trying
to force it to work ?

Thanks in advance.
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 24 Sep 2024 17:40:22 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C66f2f986%40news.povray.org%3E/#%3C66f2f986%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C66f2f986%40news.povray.org%3E/#%3C66f2f986%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Fast volume rendering [569 days 22 hours and 37 minutes ago]</title>
		<description>
&lt;pre&gt;On 23/09/2024 18:21, Alain Martel wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; The type of media used have a lot of effect. A media can be emissive, &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ...&lt;/span&gt;

Thank you very much for detailed explanation and useful suggestions -
you saved me a lot of time, while I am still have a space for
interesting experiments with media :).
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 23 Sep 2024 15:36:41 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C66f18b09%241%40news.povray.org%3E/#%3C66f18b09%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C66f18b09%241%40news.povray.org%3E/#%3C66f18b09%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Alain Martel] Re: Fast volume rendering [569 days 22 hours and 53 minutes ago]</title>
		<description>
&lt;pre&gt;Le 2024-09-23 &amp;#195;&amp;#160; 09:26, yesbird a &amp;#195;&amp;#169;crit&amp;#194;&amp;#160;:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Hi all !&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I am working&amp;#194;&amp;#160;on web GUI to Povray for volume visualization&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; applications,&amp;#194;&amp;#160;using 'media' and 'df3' format. The main idea&amp;#194;&amp;#160;is
providing&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; the user with some fast WebGL-based gizmos (bounding box, grid,light&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; version of volume data) for fast camera positioning like here:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; https://threejs.org/examples/?q=volume#webgl_volume_perlin&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; and then making server-side high-quality rendering&amp;#194;&amp;#160;like here:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; https://povlab.online/?scene=dicom.pov&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Can anyone suggest&amp;#194;&amp;#160;how to make volume rendering faster, but without&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; losing a quality ?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Thanks in advance.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; -- &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; YB&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
The type of media used have a lot of effect. A media can be emissive, 
absorbing or scattering.
Emissive media renders the fastest. They work better against a dark 
background. They add to the background. They never cast any shadow and 
never interact with any light_source.

Absorbing media is a close second. Work better against a light 
background. They subtract from the background. They do cast shadows when 
there is some light_source present. Lights never illuminate them.

Scattering media are the slowest. They need a light source that interact 
with them. They subtract from the background, when there is a light, 
they also add to the background.

Use the default sampling method 3. NEVER use an intervals value larger 
than the default of 1, increase the sample value instead. More intervals 
can cause glitches and is MUCH slower. intervals 10 samples 10 is at 
least 5 times slower than just samples 200 for half the samples.
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 23 Sep 2024 15:21:05 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C66f18761%241%40news.povray.org%3E/#%3C66f18761%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C66f18761%241%40news.povray.org%3E/#%3C66f18761%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Fast volume rendering [569 days 22 hours and 59 minutes ago]</title>
		<description>
&lt;pre&gt;On 23/09/2024 17:21, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Or are you looking to find a way to render 3D volumes in POV-Ray faster than&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; whatever methods you're currently using?&lt;/span&gt;
Yes, this one.
I see the following workflow:

User is playing with the scene using three.js and then by
clicking &amp;quot;Render&amp;quot; button (or by releasing the mouse button) sends an SDL
scene, generated on-the-fly, to the server, getting a rendered image.
(Assuming that 'df3' data is already on the server).

The main goal is to make this cycle as fast as possible, ideally
achieving near-real-time performance. I am investigating 'media' with
'df3' deeply now, maybe there are some hidden tricks and/or parameters
will help ...

General idea is building the bridge between the&amp;#194;&amp;#160;WebGL/WebXR (three.js)
and Povray for different applications, like this future  math-museum:
https://math.povlab.online/
(inspired by https://virtualmathmuseum.org/)

BTW,&amp;#194;&amp;#160;behind&amp;#194;&amp;#160;the povlab.online now 128 virtual cores of:
--------------------------------------------------
AMD EPYC 7763 64-Core Processor
CPU MHz &amp;#194;&amp;#160; &amp;#194;&amp;#160; &amp;#194;&amp;#160; &amp;#194;&amp;#160; : 2599.927
--------------------------------------------------
YB
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 23 Sep 2024 15:14:23 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C66f185cf%241%40news.povray.org%3E/#%3C66f185cf%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C66f185cf%241%40news.povray.org%3E/#%3C66f185cf%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Fast volume rendering [569 days 23 hours and 49 minutes ago]</title>
		<description>
&lt;pre&gt;yesbird &amp;lt;sya###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Hi all !&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I am working&amp;#160;on web GUI to Povray for volume visualization&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; applications,&amp;#160;using 'media' and 'df3' format. The main idea&amp;#160;is providing&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; the user with some fast WebGL-based gizmos (bounding box, grid,light&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; version of volume data) for fast camera positioning like here:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; https://threejs.org/examples/?q=volume#webgl_volume_perlin&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; and then making server-side high-quality rendering&amp;#160;like here:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; https://povlab.online/?scene=dicom.pov&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Can anyone suggest&amp;#160;how to make volume rendering faster, but without&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; losing a quality ?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Thanks in advance.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; --&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; YB&lt;/span&gt;

Off the top of my head, POV-Ray's media would get approximated by a procedural
function that governed the rgb values based on the &amp;lt;x, y, z&amp;gt; coordinates, and so
whatever method that threejs uses, or Shadertoy ought to give decent results.

Reading in a df3 file would seem to be the only bottleneck.

Are you looking to make it faster than the examples you linked to?
Or are you looking to find a way to render 3D volumes in POV-Ray faster than
whatever methods you're currently using?

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 23 Sep 2024 14:25:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.66f1797c1b0021ea5a6be6925979125%40news.povray.org%3E/#%3Cweb.66f1797c1b0021ea5a6be6925979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.66f1797c1b0021ea5a6be6925979125%40news.povray.org%3E/#%3Cweb.66f1797c1b0021ea5a6be6925979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Fast volume rendering [570 days and 47 minutes ago]</title>
		<description>
&lt;pre&gt;Hi all !

I am working&amp;#194;&amp;#160;on web GUI to Povray for volume visualization
applications,&amp;#194;&amp;#160;using 'media' and 'df3' format. The main idea&amp;#194;&amp;#160;is
providing
the user with some fast WebGL-based gizmos (bounding box, grid,light
version of volume data) for fast camera positioning like here:
https://threejs.org/examples/?q=volume#webgl_volume_perlin

and then making server-side high-quality rendering&amp;#194;&amp;#160;like here:
https://povlab.online/?scene=dicom.pov

Can anyone suggest&amp;#194;&amp;#160;how to make volume rendering faster, but without
losing a quality ?

Thanks in advance.
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 23 Sep 2024 13:26:27 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C66f16c83%241%40news.povray.org%3E/#%3C66f16c83%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C66f16c83%241%40news.povray.org%3E/#%3C66f16c83%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[jr] Re: Making Patterns with functions [577 days 1 hour and 39 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;jr&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; ...&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; #declare S2P = function (V) {sin (tau*V/L)}&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; #declare C2P = function (V) {cos (tau*V/L)}&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; #declare T = 0.5;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; #declare N = 1;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; #declare Honeycomb = function (X, Y, Z) {pow(S2P(X)*C2P(Z) + S2P(Z) + C2P(X), N)&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; - pow(T, N)}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; plane with &amp;quot;Honeycomb&amp;quot; pattern, seen through &amp;quot;kaleidoscope&amp;quot;.&lt;/span&gt;

a loop-able animation of the pattern.  warning -- weird ;-).

&amp;lt;https://drive.google.com/file/d/1Aet9noapf8SBgX2u62TTYMFYx5NfbckT/view?usp=sharing&amp;gt;

enjoy, jr.
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 16 Sep 2024 12:35:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.66e824d9d81b8479f5bfc9b06cde94f1%40news.povray.org%3E/#%3Cweb.66e824d9d81b8479f5bfc9b06cde94f1%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.66e824d9d81b8479f5bfc9b06cde94f1%40news.povray.org%3E/#%3Cweb.66e824d9d81b8479f5bfc9b06cde94f1%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Location changing while scaling [591 days 3 hours and 7 minutes ago]</title>
		<description>
&lt;pre&gt;On 02/09/2024 13:48, ingo wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; You should create and scale the sphere at the origin and then move it to the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; mesh vertex vector.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; // Spheres&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #local len = dimension_size(VertexVectors,1) - 1;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #for (i, 0, len)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;     sphere { &amp;lt;0,0,0&amp;gt;, 0.04&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;              texture { pigment {rgb &amp;lt;0.1, 0.3, 0.1&amp;gt;} }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;              scale y * 1.2 // Why they moves ?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;              translate VertexVectors[i]&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    }&lt;/span&gt;

Thanks a lot, now it works fine !
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 2 Sep 2024 11:06:34 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C66d59c3a%241%40news.povray.org%3E/#%3C66d59c3a%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C66d59c3a%241%40news.povray.org%3E/#%3C66d59c3a%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Location changing while scaling [591 days 3 hours and 9 minutes ago]</title>
		<description>
&lt;pre&gt;On 02/09/2024 13:43, Alain Martel wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; You need to scale your spheres when they are at &amp;lt;0,0,0&amp;gt; then translate &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; them to the desired location.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Use this instead :&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; // Spheres&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #local len = dimension_size(VertexVectors,1) - 1;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #for (i, 0, len)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160; sphere { 0, 0.04 scale y * 1.2 // No longer move&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; 
&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;
texture { pigment {rgb &amp;lt;0.1, 0.3, 0.1&amp;gt;} }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;translate VertexVectors[i]&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160; }&lt;/span&gt;

Many thanks for elegant solution !
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 2 Sep 2024 11:04:37 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C66d59bc5%241%40news.povray.org%3E/#%3C66d59bc5%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C66d59bc5%241%40news.povray.org%3E/#%3C66d59bc5%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[ingo] Re: Location changing while scaling [591 days 3 hours and 24 minutes ago]</title>
		<description>
&lt;pre&gt;yesbird &amp;lt;sya###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Hi, all !&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; While playing with meshes I've encountered strange behavior of spheres,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; positioned at mesh vertices - after changing the scale they are moving&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; from previous locations (see images). [...]&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; // Spheres&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #local len = dimension_size(VertexVectors,1) - 1;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #for (i, 0, len)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    sphere { VertexVectors[i], 0.04&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;             texture { pigment {rgb &amp;lt;0.1, 0.3, 0.1&amp;gt;} }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;             scale y * 1.2 // Why they moves ?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #end&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; // ------------------------------------------------------------------&lt;/span&gt;

You should create and scale the sphere at the origin and then move it to the
mesh vertex vector.


// Spheres
#local len = dimension_size(VertexVectors,1) - 1;
#for (i, 0, len)
   sphere { &amp;lt;0,0,0&amp;gt;, 0.04
            texture { pigment {rgb &amp;lt;0.1, 0.3, 0.1&amp;gt;} }
            scale y * 1.2 // Why they moves ?
            translate VertexVectors[i]
  }

ingo
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 2 Sep 2024 10:50:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.66d597e6785710d117bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.66d597e6785710d117bac71e8ffb8ce3%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.66d597e6785710d117bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.66d597e6785710d117bac71e8ffb8ce3%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Alain Martel] Re: Location changing while scaling [591 days 3 hours and 30 minutes ago]</title>
		<description>
&lt;pre&gt;Le 2024-09-02 &amp;#195;&amp;#160; 05:39, yesbird a &amp;#195;&amp;#169;crit&amp;#194;&amp;#160;:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Hi, all !&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; While playing with meshes I've encountered strange behavior&amp;#194;&amp;#160;of spheres, &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; positioned at mesh vertices - after changing the scale they move from &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; previous location (see images). Looks&amp;#194;&amp;#160;like the scale &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; operation&amp;#194;&amp;#160;applied&amp;#194;&amp;#160;to a whole array of spheres, produced by
loop, but the &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; scale operator is inside the sphere object. I expected they would stay &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; in place and only change the size.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; What I'm missing ? Any suggestions please ...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; -- &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; YB&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; // ------------------------------------------------------------------&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #version 3.8;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; global_settings { assumed_gamma 1 }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; camera {&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160; perspective&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160; angle 25&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160; location &amp;#194;&amp;#160;&amp;lt;20,15,20&amp;gt; * 0.2&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160; look_at &amp;#194;&amp;#160; &amp;lt;0.5,0.5,0&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160; right x * image_width / image_height&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; light_source{&amp;lt;-500,0,0&amp;gt; rgb 1} light_source{&amp;lt;500,0,0&amp;gt; rgb 1}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; light_source{&amp;lt;0,0,-500&amp;gt; rgb 1} light_source{&amp;lt;0,0,500&amp;gt; rgb 1}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; light_source{&amp;lt;20,15,20&amp;gt; rgb 0.4}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #declare VertexVectors= array[24] {&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160; &amp;lt;0,0,0&amp;gt;, &amp;lt;0.5,0,0&amp;gt;, &amp;lt;0.5,0.5,0&amp;gt;, //1&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160; &amp;lt;0.5,0,0&amp;gt;, &amp;lt;1,0,0&amp;gt;, &amp;lt;0.5,0.5,0&amp;gt;, //2&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160; &amp;lt;1,0,0&amp;gt;, &amp;lt;1,0.5,0&amp;gt;, &amp;lt;0.5,0.5,0&amp;gt;, //3&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160; &amp;lt;1,0.5,0&amp;gt;, &amp;lt;1,1,0&amp;gt;, &amp;lt;0.5,0.5,0&amp;gt;, //4&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160; &amp;lt;1,1,0&amp;gt;, &amp;lt;0.5,1,0&amp;gt;, &amp;lt;0.5,0.5,0&amp;gt;, //5&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160; &amp;lt;0.5,1,0&amp;gt;, &amp;lt;0,1,0&amp;gt;, &amp;lt;0.5,0.5,0&amp;gt;, //6&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160; &amp;lt;0,1,0&amp;gt;, &amp;lt;0,0.5,0&amp;gt;, &amp;lt;0.5,0.5,0&amp;gt;, //7&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160; &amp;lt;0,0.5,0&amp;gt;, &amp;lt;0,0,0&amp;gt;, &amp;lt;0.5,0.5,0&amp;gt; &amp;#194;&amp;#160;//8&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; // Mesh&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; mesh2 {&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160; &amp;#194;&amp;#160;#local len = dimension_size(VertexVectors,1);&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160; &amp;#194;&amp;#160;vertex_vectors {&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160; &amp;#194;&amp;#160; &amp;#194;&amp;#160; len,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; 
&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;
#for (i, 0, len-1)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160;
&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;
VertexVectors[i]&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; 
&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160;
#end&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160; &amp;#194;&amp;#160;}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160; &amp;#194;&amp;#160;face_indices {&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160; &amp;#194;&amp;#160; &amp;#194;&amp;#160; 8,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160; &amp;#194;&amp;#160; &amp;#194;&amp;#160; &amp;lt;0,1,2&amp;gt;, &amp;#194;&amp;#160; &amp;#194;&amp;#160;&amp;lt;3,4,5&amp;gt;,
&amp;#194;&amp;#160; &amp;#194;&amp;#160; &amp;#194;&amp;#160; //1 2&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160; &amp;#194;&amp;#160; &amp;#194;&amp;#160; &amp;lt;6,7,8&amp;gt;, &amp;#194;&amp;#160; &amp;#194;&amp;#160;&amp;lt;9,10,11&amp;gt;,
&amp;#194;&amp;#160; &amp;#194;&amp;#160; //3 4&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160; &amp;#194;&amp;#160; &amp;#194;&amp;#160; &amp;lt;12,13,14&amp;gt;, &amp;lt;15,16,17&amp;gt;, &amp;#194;&amp;#160;
&amp;#194;&amp;#160;//5 6&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160; &amp;#194;&amp;#160; &amp;#194;&amp;#160; &amp;lt;18,19,20&amp;gt;, &amp;lt;21,22,23&amp;gt; &amp;#194;&amp;#160;
&amp;#194;&amp;#160; //7 8&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160; &amp;#194;&amp;#160;}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160; &amp;#194;&amp;#160;pigment {rgb 1}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; // Spheres&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #local len = dimension_size(VertexVectors,1) - 1;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #for (i, 0, len)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160; sphere { VertexVectors[i], 0.04&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160; &amp;#194;&amp;#160; &amp;#194;&amp;#160; &amp;#194;&amp;#160; &amp;#194;&amp;#160;
&amp;#194;&amp;#160;texture { pigment {rgb &amp;lt;0.1, 0.3, 0.1&amp;gt;} }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160; &amp;#194;&amp;#160; &amp;#194;&amp;#160; &amp;#194;&amp;#160; &amp;#194;&amp;#160; &amp;#194;&amp;#160;scale
y * 1.2 // Why they moves ?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#194;&amp;#160; }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #end&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; // ------------------------------------------------------------------&lt;/span&gt;
The scale is applied relative to the origin of the coordinate system, 
not to the centre of the object.
That mean that the centre of your spheres are scaled.
You need to scale your spheres when they are at &amp;lt;0,0,0&amp;gt; then translate 
them to the desired location.

Use this instead :
// Spheres
#local len = dimension_size(VertexVectors,1) - 1;
#for (i, 0, len)
   sphere { 0, 0.04 scale y * 1.2 // No longer move
            texture { pigment {rgb &amp;lt;0.1, 0.3, 0.1&amp;gt;} }

	translate VertexVectors[i]
   }
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 2 Sep 2024 10:43:39 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C66d596db%241%40news.povray.org%3E/#%3C66d596db%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C66d596db%241%40news.povray.org%3E/#%3C66d596db%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Location changing while scaling [591 days 4 hours and 28 minutes ago]</title>
		<description>
&lt;pre&gt;Hi, all !

While playing with meshes I've encountered strange behavior of spheres,
positioned at mesh vertices - after changing the scale they are moving
from previous locations (see images). Looks like the scale operation
applied to a whole array of spheres, produced by loop, but the scale
operator is inside the sphere object. I expected they would stay in
place and only change the size.

What I'm missing ? Any suggestions please ...
-- 
YB

// ------------------------------------------------------------------
#version 3.8;
global_settings { assumed_gamma 1 }

camera {
   perspective
   angle 25
   location  &amp;lt;20,15,20&amp;gt; * 0.2
   look_at   &amp;lt;0.5,0.5,0&amp;gt;
   right x * image_width / image_height
}

light_source{&amp;lt;-500,0,0&amp;gt; rgb 1} light_source{&amp;lt;500,0,0&amp;gt; rgb 1}
light_source{&amp;lt;0,0,-500&amp;gt; rgb 1} light_source{&amp;lt;0,0,500&amp;gt; rgb 1}
light_source{&amp;lt;20,15,20&amp;gt; rgb 0.4}

#declare VertexVectors= array[24] {
   &amp;lt;0,0,0&amp;gt;, &amp;lt;0.5,0,0&amp;gt;, &amp;lt;0.5,0.5,0&amp;gt;, //1
   &amp;lt;0.5,0,0&amp;gt;, &amp;lt;1,0,0&amp;gt;, &amp;lt;0.5,0.5,0&amp;gt;, //2
   &amp;lt;1,0,0&amp;gt;, &amp;lt;1,0.5,0&amp;gt;, &amp;lt;0.5,0.5,0&amp;gt;, //3
   &amp;lt;1,0.5,0&amp;gt;, &amp;lt;1,1,0&amp;gt;, &amp;lt;0.5,0.5,0&amp;gt;, //4
   &amp;lt;1,1,0&amp;gt;, &amp;lt;0.5,1,0&amp;gt;, &amp;lt;0.5,0.5,0&amp;gt;, //5
   &amp;lt;0.5,1,0&amp;gt;, &amp;lt;0,1,0&amp;gt;, &amp;lt;0.5,0.5,0&amp;gt;, //6
   &amp;lt;0,1,0&amp;gt;, &amp;lt;0,0.5,0&amp;gt;, &amp;lt;0.5,0.5,0&amp;gt;, //7
   &amp;lt;0,0.5,0&amp;gt;, &amp;lt;0,0,0&amp;gt;, &amp;lt;0.5,0.5,0&amp;gt;  //8
}

// Mesh
mesh2 {
    #local len = dimension_size(VertexVectors,1);
    vertex_vectors {
       len,
           #for (i, 0, len-1)
             VertexVectors[i]
           #end
    }

    face_indices {
       8,
       &amp;lt;0,1,2&amp;gt;,    &amp;lt;3,4,5&amp;gt;,       //1 2
       &amp;lt;6,7,8&amp;gt;,    &amp;lt;9,10,11&amp;gt;,     //3 4
       &amp;lt;12,13,14&amp;gt;, &amp;lt;15,16,17&amp;gt;,    //5 6
       &amp;lt;18,19,20&amp;gt;, &amp;lt;21,22,23&amp;gt;     //7 8
    }

    pigment {rgb 1}
}

// Spheres
#local len = dimension_size(VertexVectors,1) - 1;
#for (i, 0, len)
   sphere { VertexVectors[i], 0.04
            texture { pigment {rgb &amp;lt;0.1, 0.3, 0.1&amp;gt;} }
            scale y * 1.2 // Why they moves ?
   }
#end
// ------------------------------------------------------------------
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 2 Sep 2024 09:46:05 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C66d5895d%241%40news.povray.org%3E/#%3C66d5895d%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C66d5895d%241%40news.povray.org%3E/#%3C66d5895d%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Location changing while scaling [591 days 4 hours and 32 minutes ago]</title>
		<description>
&lt;pre&gt;Hi, all !

While playing with meshes I've encountered strange behavior of spheres,
positioned at mesh vertices - after changing the scale they move from
previous location (see images). Looks like the scale operation applied
to a whole array of spheres, produced by loop, but the scale operator is
inside the sphere object. I expected they would stay in place and only
change the size.

What I'm missing ? Any suggestions please ...
--
YB

// ------------------------------------------------------------------
#version 3.8;
global_settings { assumed_gamma 1 }

camera {
   perspective
   angle 25
   location  &amp;lt;20,15,20&amp;gt; * 0.2
   look_at   &amp;lt;0.5,0.5,0&amp;gt;
   right x * image_width / image_height
}

light_source{&amp;lt;-500,0,0&amp;gt; rgb 1} light_source{&amp;lt;500,0,0&amp;gt; rgb 1}
light_source{&amp;lt;0,0,-500&amp;gt; rgb 1} light_source{&amp;lt;0,0,500&amp;gt; rgb 1}
light_source{&amp;lt;20,15,20&amp;gt; rgb 0.4}

#declare VertexVectors= array[24] {
   &amp;lt;0,0,0&amp;gt;, &amp;lt;0.5,0,0&amp;gt;, &amp;lt;0.5,0.5,0&amp;gt;, //1
   &amp;lt;0.5,0,0&amp;gt;, &amp;lt;1,0,0&amp;gt;, &amp;lt;0.5,0.5,0&amp;gt;, //2
   &amp;lt;1,0,0&amp;gt;, &amp;lt;1,0.5,0&amp;gt;, &amp;lt;0.5,0.5,0&amp;gt;, //3
   &amp;lt;1,0.5,0&amp;gt;, &amp;lt;1,1,0&amp;gt;, &amp;lt;0.5,0.5,0&amp;gt;, //4
   &amp;lt;1,1,0&amp;gt;, &amp;lt;0.5,1,0&amp;gt;, &amp;lt;0.5,0.5,0&amp;gt;, //5
   &amp;lt;0.5,1,0&amp;gt;, &amp;lt;0,1,0&amp;gt;, &amp;lt;0.5,0.5,0&amp;gt;, //6
   &amp;lt;0,1,0&amp;gt;, &amp;lt;0,0.5,0&amp;gt;, &amp;lt;0.5,0.5,0&amp;gt;, //7
   &amp;lt;0,0.5,0&amp;gt;, &amp;lt;0,0,0&amp;gt;, &amp;lt;0.5,0.5,0&amp;gt;  //8
}

// Mesh
mesh2 {
    #local len = dimension_size(VertexVectors,1);
    vertex_vectors {
       len,
           #for (i, 0, len-1)
             VertexVectors[i]
           #end
    }

    face_indices {
       8,
       &amp;lt;0,1,2&amp;gt;,    &amp;lt;3,4,5&amp;gt;,       //1 2
       &amp;lt;6,7,8&amp;gt;,    &amp;lt;9,10,11&amp;gt;,     //3 4
       &amp;lt;12,13,14&amp;gt;, &amp;lt;15,16,17&amp;gt;,    //5 6
       &amp;lt;18,19,20&amp;gt;, &amp;lt;21,22,23&amp;gt;     //7 8
    }

    pigment {rgb 1}
}

// Spheres
#local len = dimension_size(VertexVectors,1) - 1;
#for (i, 0, len)
   sphere { VertexVectors[i], 0.04
            texture { pigment {rgb &amp;lt;0.1, 0.3, 0.1&amp;gt;} }
            scale y * 1.2 // Why they moves ?
   }
#end
// ------------------------------------------------------------------
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 2 Sep 2024 09:41:48 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C66d5885c%40news.povray.org%3E/#%3C66d5885c%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C66d5885c%40news.povray.org%3E/#%3C66d5885c%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Location changing while scaling [591 days 4 hours and 34 minutes ago]</title>
		<description>
&lt;pre&gt;Hi, all !

While playing with meshes I've encountered strange behavior&amp;#194;&amp;#160;of spheres, 
positioned at mesh vertices - after changing the scale they move from 
previous location (see images). Looks&amp;#194;&amp;#160;like the scale 
operation&amp;#194;&amp;#160;applied&amp;#194;&amp;#160;to a whole array of spheres, produced by loop,
but the 
scale operator is inside the sphere object. I expected they would stay 
in place and only change the size.

What I'm missing ? Any suggestions please ...
--
YB

// ------------------------------------------------------------------
#version 3.8;
global_settings { assumed_gamma 1 }

camera {
 &amp;#194;&amp;#160; perspective
 &amp;#194;&amp;#160; angle 25
 &amp;#194;&amp;#160; location &amp;#194;&amp;#160;&amp;lt;20,15,20&amp;gt; * 0.2
 &amp;#194;&amp;#160; look_at &amp;#194;&amp;#160; &amp;lt;0.5,0.5,0&amp;gt;
 &amp;#194;&amp;#160; right x * image_width / image_height
}

light_source{&amp;lt;-500,0,0&amp;gt; rgb 1} light_source{&amp;lt;500,0,0&amp;gt; rgb 1}
light_source{&amp;lt;0,0,-500&amp;gt; rgb 1} light_source{&amp;lt;0,0,500&amp;gt; rgb 1}
light_source{&amp;lt;20,15,20&amp;gt; rgb 0.4}


#declare VertexVectors= array[24] {
 &amp;#194;&amp;#160; &amp;lt;0,0,0&amp;gt;, &amp;lt;0.5,0,0&amp;gt;, &amp;lt;0.5,0.5,0&amp;gt;, //1
 &amp;#194;&amp;#160; &amp;lt;0.5,0,0&amp;gt;, &amp;lt;1,0,0&amp;gt;, &amp;lt;0.5,0.5,0&amp;gt;, //2
 &amp;#194;&amp;#160; &amp;lt;1,0,0&amp;gt;, &amp;lt;1,0.5,0&amp;gt;, &amp;lt;0.5,0.5,0&amp;gt;, //3
 &amp;#194;&amp;#160; &amp;lt;1,0.5,0&amp;gt;, &amp;lt;1,1,0&amp;gt;, &amp;lt;0.5,0.5,0&amp;gt;, //4
 &amp;#194;&amp;#160; &amp;lt;1,1,0&amp;gt;, &amp;lt;0.5,1,0&amp;gt;, &amp;lt;0.5,0.5,0&amp;gt;, //5
 &amp;#194;&amp;#160; &amp;lt;0.5,1,0&amp;gt;, &amp;lt;0,1,0&amp;gt;, &amp;lt;0.5,0.5,0&amp;gt;, //6
 &amp;#194;&amp;#160; &amp;lt;0,1,0&amp;gt;, &amp;lt;0,0.5,0&amp;gt;, &amp;lt;0.5,0.5,0&amp;gt;, //7
 &amp;#194;&amp;#160; &amp;lt;0,0.5,0&amp;gt;, &amp;lt;0,0,0&amp;gt;, &amp;lt;0.5,0.5,0&amp;gt; &amp;#194;&amp;#160;//8
}

// Mesh
mesh2 {

 &amp;#194;&amp;#160; &amp;#194;&amp;#160;#local len = dimension_size(VertexVectors,1);
 &amp;#194;&amp;#160; &amp;#194;&amp;#160;vertex_vectors {
 &amp;#194;&amp;#160; &amp;#194;&amp;#160; &amp;#194;&amp;#160; len,
 &amp;#194;&amp;#160; 		#for (i, 0, len-1)
 &amp;#194;&amp;#160; &amp;#194;&amp;#160; 		VertexVectors[i]
 &amp;#194;&amp;#160; 		#end
 &amp;#194;&amp;#160; &amp;#194;&amp;#160;}

 &amp;#194;&amp;#160; &amp;#194;&amp;#160;face_indices {
 &amp;#194;&amp;#160; &amp;#194;&amp;#160; &amp;#194;&amp;#160; 8,
 &amp;#194;&amp;#160; &amp;#194;&amp;#160; &amp;#194;&amp;#160; &amp;lt;0,1,2&amp;gt;, &amp;#194;&amp;#160; &amp;#194;&amp;#160;&amp;lt;3,4,5&amp;gt;,
&amp;#194;&amp;#160; &amp;#194;&amp;#160; &amp;#194;&amp;#160; //1 2
 &amp;#194;&amp;#160; &amp;#194;&amp;#160; &amp;#194;&amp;#160; &amp;lt;6,7,8&amp;gt;, &amp;#194;&amp;#160; &amp;#194;&amp;#160;&amp;lt;9,10,11&amp;gt;,
&amp;#194;&amp;#160; &amp;#194;&amp;#160; //3 4
 &amp;#194;&amp;#160; &amp;#194;&amp;#160; &amp;#194;&amp;#160; &amp;lt;12,13,14&amp;gt;, &amp;lt;15,16,17&amp;gt;, &amp;#194;&amp;#160;
&amp;#194;&amp;#160;//5 6
 &amp;#194;&amp;#160; &amp;#194;&amp;#160; &amp;#194;&amp;#160; &amp;lt;18,19,20&amp;gt;, &amp;lt;21,22,23&amp;gt; &amp;#194;&amp;#160;
&amp;#194;&amp;#160; //7 8
 &amp;#194;&amp;#160; &amp;#194;&amp;#160;}

 &amp;#194;&amp;#160; &amp;#194;&amp;#160;pigment {rgb 1}
}


// Spheres
#local len = dimension_size(VertexVectors,1) - 1;
#for (i, 0, len)
 &amp;#194;&amp;#160; sphere { VertexVectors[i], 0.04
 &amp;#194;&amp;#160; &amp;#194;&amp;#160; &amp;#194;&amp;#160; &amp;#194;&amp;#160; &amp;#194;&amp;#160; &amp;#194;&amp;#160;texture
{ pigment {rgb &amp;lt;0.1, 0.3, 0.1&amp;gt;} }
 &amp;#194;&amp;#160; &amp;#194;&amp;#160; &amp;#194;&amp;#160; &amp;#194;&amp;#160; &amp;#194;&amp;#160; &amp;#194;&amp;#160;scale y
* 1.2 // Why they moves ?
 &amp;#194;&amp;#160; }
#end
// ------------------------------------------------------------------
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 2 Sep 2024 09:39:26 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C66d587ce%40news.povray.org%3E/#%3C66d587ce%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C66d587ce%40news.povray.org%3E/#%3C66d587ce%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Making Patterns with functions [595 days 4 hours and 38 minutes ago]</title>
		<description>
&lt;pre&gt;On 28/08/2024 22:06, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; An interesting approach that I'll have to look into further.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; https://gcboore.com/pages/trigonometric-functions.html&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Might be able to do the same thing with pigment patterns and homebrew function&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; patterns.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;

Really interesting, looking forward to the results of your experiments !
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 29 Aug 2024 09:35:15 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C66d040d3%241%40news.povray.org%3E/#%3C66d040d3%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C66d040d3%241%40news.povray.org%3E/#%3C66d040d3%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Making Patterns with functions [595 days 19 hours and 4 minutes ago]</title>
		<description>
&lt;pre&gt;An interesting approach that I'll have to look into further.

https://gcboore.com/pages/trigonometric-functions.html

Might be able to do the same thing with pigment patterns and homebrew function
patterns.
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 28 Aug 2024 19:10:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.66cf754ad81b8479a5a6be6925979125%40news.povray.org%3E/#%3Cweb.66cf754ad81b8479a5a6be6925979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.66cf754ad81b8479a5a6be6925979125%40news.povray.org%3E/#%3Cweb.66cf754ad81b8479a5a6be6925979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Making Patterns with functions [596 days 13 hours and 19 minutes ago]</title>
		<description>
&lt;pre&gt;This one looks like sliced pita bread or hot dogs buns or something.

#declare Pattern3 = function {tan (3*x) * sin (5*x/2) * sin (z) - 0.1}
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 28 Aug 2024 00:55:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.66ce7468d81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.66ce7468d81b84791f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.66ce7468d81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.66ce7468d81b84791f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[jr] Re: Making Patterns with functions [598 days 21 hours and 54 minutes ago]</title>
		<description>
&lt;pre&gt;hi,

&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Wheee!   Nice job.  :)&lt;/span&gt;

start on.  :-)


&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Can you adjust the symmetry?  Have 6-fold, or 7?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; After playing with this stuff a bit, it seems like that whole sin*cos xy yz zx&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; thing has a lot of potential as a base pattern to do all sorts of interesting&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; things with.  Even just the threshold can change the apparent look quite a bit.&lt;/span&gt;

yes, I just discovered that replacing &amp;quot;tau&amp;quot; with &amp;quot;pi * scale_factor&amp;quot; and using
slightly different factors, things get real .. interesting.

re your question, I answer with an Obama quote: &amp;quot;Yes, we can&amp;quot; :-)  below is
excerpted from my WIP code:

/* added bailout &amp;amp; max_trace */
global_settings {adc_bailout (1/254) assumed_gamma 1 max_trace_level 255}

/* #mirrors */
#declare n_ = 3;

#declare angle_ = 360 / n_;

/* epsilon */
#declare eps_ = 1e-3;

/* length of tube */
#declare len_ = 10;

/* prism with hole */
#declare pi_ = &amp;lt;.99,0,0&amp;gt;;
#declare po_ = &amp;lt;1.01,0,0&amp;gt;;

#declare pts_ = array [n_][2];

#for (i_, 0, n_-1)
  #local ta_ = vrotate(po_, &amp;lt;0,(angle_*i_),0&amp;gt;);
  #local tb_ = vrotate(pi_, &amp;lt;0,(angle_*i_),0&amp;gt;);
  #local pts_[i_][0] = &amp;lt;ta_.x,ta_.z&amp;gt;;
  #local pts_[i_][1] = &amp;lt;tb_.x,tb_.z&amp;gt;;
#end

/* rotate to centre on -z */
prism {
  linear_spline eps_, len_, 2*(1+n_),
  #for (i_,n_-1,0,-1) pts_[i_][0], #end pts_[n_-1][0],
  #for (i_,0,n_-1) pts_[i_][1], #end pts_[0][1]
  open
  sturm on
  no_shadow
  finish {ambient 0 reflection {1} specular 0}
  rotate &amp;lt;270,0,0&amp;gt;
}


regards, jr.
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 25 Aug 2024 16:20:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.66cb586ad81b8479f5bfc9b06cde94f1%40news.povray.org%3E/#%3Cweb.66cb586ad81b8479f5bfc9b06cde94f1%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.66cb586ad81b8479f5bfc9b06cde94f1%40news.povray.org%3E/#%3Cweb.66cb586ad81b8479f5bfc9b06cde94f1%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Making Patterns with functions [598 days 22 hours and 29 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;jr&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; plane with &amp;quot;Honeycomb&amp;quot; pattern, seen through &amp;quot;kaleidoscope&amp;quot;.&lt;/span&gt;

Wheee!   Nice job.  :)

Can you adjust the symmetry?  Have 6-fold, or 7?

After playing with this stuff a bit, it seems like that whole sin*cos xy yz zx
thing has a lot of potential as a base pattern to do all sorts of interesting
things with.  Even just the threshold can change the apparent look quite a bit.
And then you have the orthogonal plane value/slice to vary.

We can square the whole sum, square the terms, take the root, etc.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 25 Aug 2024 15:45:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.66cb5166d81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.66cb5166d81b84791f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.66cb5166d81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.66cb5166d81b84791f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[jr] Re: Making Patterns with functions [599 days 7 hours and 24 minutes ago]</title>
		<description>
&lt;pre&gt;hi,

&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ...&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; Kinda looks like a &amp;quot;dog bone&amp;quot; wood patch that alternates in directions like a&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; checkerboard.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Sometimes these things are a little easier to write using some helper functions.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #declare S2P = function (V) {sin (tau*V/L)}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #declare C2P = function (V) {cos (tau*V/L)}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #declare T = 0.5;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #declare N = 1;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #declare Honeycomb = function (X, Y, Z) {pow(S2P(X)*C2P(Z) + S2P(Z) + C2P(X), N)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; - pow(T, N)}&lt;/span&gt;

plane with &amp;quot;Honeycomb&amp;quot; pattern, seen through &amp;quot;kaleidoscope&amp;quot;.


regards, jr.
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 25 Aug 2024 06:50:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.66cad352d81b8479f5bfc9b06cde94f1%40news.povray.org%3E/#%3Cweb.66cad352d81b8479f5bfc9b06cde94f1%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.66cad352d81b8479f5bfc9b06cde94f1%40news.povray.org%3E/#%3Cweb.66cad352d81b8479f5bfc9b06cde94f1%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Making Patterns with functions [600 days 12 hours and 54 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Also of interest would be a metal diamond-plate pattern - the &amp;quot;honeycomb&amp;quot;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; pattern that I posted for jr has that alternating direction / row attribute that&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; might be a good starting point for modification.&lt;/span&gt;

#declare YY = 0.625;
#declare Plate1 = function {select (1-pow(sin(2*pi*x)*cos(2*pi*YY) +
sin(2*pi*YY)*cos(2*pi*z) + sin(2*pi*z)*cos(2*pi*x), 2), 0, 0, 1)}
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 24 Aug 2024 01:20:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.66c93534d81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.66c93534d81b84791f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.66c93534d81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.66c93534d81b84791f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Making Patterns with functions [600 days 18 hours and 39 minutes ago]</title>
		<description>
&lt;pre&gt;I've also been interested in making this pattern:

http://sambrunacini.com/wp-content/uploads/2020/10/pursuit.png

and I could have sworn it has an actual NAME that I found once, and now I of
course can't find again.

Also of interest would be a metal diamond-plate pattern - the &amp;quot;honeycomb&amp;quot;
pattern that I posted for jr has that alternating direction / row attribute that
might be a good starting point for modification.
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 23 Aug 2024 19:35:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.66c8e447d81b84793bc22bca25979125%40news.povray.org%3E/#%3Cweb.66c8e447d81b84793bc22bca25979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.66c8e447d81b84793bc22bca25979125%40news.povray.org%3E/#%3Cweb.66c8e447d81b84793bc22bca25979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Making Patterns with functions [601 days 3 hours and 34 minutes ago]</title>
		<description>
&lt;pre&gt;Ha!
I think I have one of his &amp;quot;curles&amp;quot; patterns printed out somewhere here in a
pile.
I was just sifting through the archives and pulling out anything that seemed to
pop out.

Hopefully you know a few more - as you can tell, I love this stuff.
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 23 Aug 2024 10:40:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.66c866d9d81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.66c866d9d81b84791f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.66c866d9d81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.66c866d9d81b84791f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[ingo] Re: Making Patterns with functions [601 days 8 hours and 34 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Over the last 2 days, I've fallen down the mathematical pattern rabbit hole, and&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; have been experimenting with all manner of what can be done with a simple&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; pigment {function {}}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; statement.&lt;/span&gt;

An old one by Alex Kluchikov, not a simple function though:

---%&amp;lt;------%&amp;lt;---

// Alex Kluchikov, 2003
// mailto: klk###&amp;nbsp;[at]&amp;nbsp;ukr&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net, akl###&amp;nbsp;[at]&amp;nbsp;mail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;ru
// Feel free to modify/use in any form
include &amp;quot;functions.inc&amp;quot;

camera{
 location -5*z
 look_at 0
 }

// we can get angle from gradient
#declare frad=function{
 pattern{radial}
 }

#declare fboz1=function{
 pattern{crackle form &amp;lt;1,0,0&amp;gt; scale 1}
 }

#declare fboz2=function{
 pattern{bumps noise_generator 3 rotate 60 scale 1.2}
 }

#declare fboz3=function{
 (sin(x+23)*sin(y+2)+sin(x*2.33443+11)*sin(y*2.4332+76)+sin(x*1.133443+32)*sin(y*1.234332+8)+3)*1/6
 }

#declare f1=function(x,y,z){
  (sin(fboz1(x,y,z)*24*pi
   +frad(fboz1(x,y,z)-fboz1(x,y-.07,z),0,fboz1(x,y,z)-fboz1(x+.07,y,z))
//gradient calculation
   *2*pi
//   +clock*pi*2 // uncomment to animate
   )+1)*(1/2)
   *(1-fboz1(x,y,z))
 }

#declare f2=function(x,y,z){
  (sin(fboz2(x,y,z)*24*pi
   +frad(fboz2(x,y,z)-fboz2(x,y-.07,z),0,fboz2(x,y,z)-fboz2(x+.07,y,z))
//gradient calculation
   *2*pi
//   +clock*pi*2 // uncomment to animate
   )+1)*(1/2)
 }

#declare f3=function(x,y,z){
  (sin(fboz3(x,y,z)*24*pi
   +frad(fboz3(x,y,z)-fboz3(x,y-.07,z),0,fboz3(x,y,z)-fboz3(x+.07,y,z))
//gradient calculation
   *2*pi
//   +clock*pi*2 // uncomment to animate
   )+1)*(1/2)
 }

#declare curles_1=texture{pigment{
  function{f1(x,y,z)}
  scale .25}
  finish{ambient 1}
  }

#declare curles_2=texture{pigment{
  function{f2(x,y,z)}
  color_map{[.45,color rgb 0][.55,color rgb 1]}
  scale .25}
  finish{ambient 1}
  }

#declare curles_3=texture{pigment{
  function{f3(x,y,z)}
  color_map{[.45,color rgb 0][.55,color rgb 1]}
  scale .25}
  finish{ambient 1}
  }

plane{
 -z,1
  //use curles_1, curles_2 or curles_2
  texture{curles_1}
 }
---%&amp;lt;------%&amp;lt;------
ingo
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 23 Aug 2024 05:40:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.66c820a4d81b847917bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.66c820a4d81b847917bac71e8ffb8ce3%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.66c820a4d81b847917bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.66c820a4d81b847917bac71e8ffb8ce3%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[ingo] Re: Making Patterns with functions [601 days 8 hours and 34 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Over the last 2 days, I've fallen down the mathematical pattern rabbit hole, and&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; have been experimenting with all manner of what can be done with a simple&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; pigment {function {}}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; statement.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;

Two older ones for your collection. Thing I found on the web years ago:

---%&amp;lt;------%&amp;lt;---
// Persistence of Vision Ray Tracer Scene Description File
// File: contour.pov
// Vers: 3.5
// Desc: contour plots Idea: Eric Weeks
// http://www.physics.emory.edu/~weeks/ideas/tplot.html
// Date: 2003
// Auth: Ingo Janssen

#version 3.5;

#include &amp;quot;gradients.inc&amp;quot;
//https://news.povray.org/povray.binaries.scene-files/message/%3CXnsA9D7C1F3776F3seed7%40news.povray.org%3E/#%3CXnsA9D7
C1F3776F3seed7%40news.povray.org%3E

global_settings {assumed_gamma 1.0}
camera {location &amp;lt;0,0,-25&amp;gt; look_at 0}

#declare Contour = function(x,y,z,A,B,C,D,E,F,I,J,K,L) {
  E*sin(A*sin(I*x)+ B*cos(J*y))+F*cos(C*cos(K*x)+D*sin(L*y))
}

#declare A =1;
#declare B =1;
#declare C =1;
#declare D =1;
#declare E =1;
#declare F =1;

#declare I =1;
#declare J =1;
#declare K =1;
#declare L =1;

#declare Test  = function(Pf){
   (G_smoothstep(Pf,0.1,0.15)-G_smoothstep(Pf,0.15,0.2))
  +(G_smoothstep(Pf,0.4,0.6)-G_smoothstep(Pf,0.7,.9))
};

plane {
  -z, 0
  pigment {
    function{Contour(x,y,z,A,B,C,D,E,F,I,J,K,L)}

    //function{G_Blinn_Wyvill(Contour(x,y,z,A,B,C,D,E,F,I,J,K,L))}

    //function{Test(Contour(x,y,z,A,B,C,D,E,F,I,J,K,L))}

    //function{abs(Contour(x,y,z,A,B,C,D,E,F,I,J,K,L))}

    //sine_wave
    colour_map {
      [0 rgb 0]
      [1 rgb 1]
    }
  }
  finish {ambient 1}
}
---%&amp;lt;------%&amp;lt;---

---%&amp;lt;------%&amp;lt;---
// POV-Ray 3.7
// Ingo
// found on a Japanese site
// +w1280 +h480 +a0.05 +am3 +ac0.90 +r3
#version 3.7;
global_settings{assumed_gamma 1}
#default{ finish{ambient 0 diffuse 1}}
camera {
  orthographic
  location &amp;lt;0,0,1&amp;gt;
  look_at 0
  right x*image_width/image_height
}
#declare PHI = 1.61803399;

// Shuhei Kawachi
// A&amp;gt;0
#declare ShuheiKawachi = function (x,y,z,A,B){
  ((cos(x)*cos(y)+cos((sqrt(A)*x-y)/B)*
  cos((x+sqrt(A)*y)/B)+cos((sqrt(A)*x+y)/B)*
  cos((x-sqrt(A)*y)/B)))/3///6 + 0.5
}


plane{ &amp;lt;0,0,-1&amp;gt;, 0
  texture {
    pigment {
      //function{(ShuheiKawachi(x,y,z,pi,1.5))}
      function{abs(ShuheiKawachi(x,y,z,pi,1.5))}
      sine_wave
      scale 0.02
    }
    finish {ambient 1 diffuse 0}
  }
}
---%&amp;lt;------%&amp;lt;---

ingo
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 23 Aug 2024 05:40:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.66c81f9bd81b847917bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.66c81f9bd81b847917bac71e8ffb8ce3%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.66c81f9bd81b847917bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.66c81f9bd81b847917bac71e8ffb8ce3%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Making Patterns with functions [601 days 12 hours and 34 minutes ago]</title>
		<description>
&lt;pre&gt;I cannot possibly imagine how they came up with this one.
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 23 Aug 2024 01:40:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.66c7e785d81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.66c7e785d81b84791f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.66c7e785d81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.66c7e785d81b84791f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Making Patterns with functions [601 days 13 hours and 39 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I also needed to alter my fmod function, and I still need to add another level&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; of select () to fix the doubling of the lines across N=0.&lt;/span&gt;

I fixed that, and then added an averaged texture to throw some color into the
mix, and by using both functions and scaling the original pattern, you can see
how one relates to the other.

Bet you can even see the cubes and hexagons hidden in there...
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 23 Aug 2024 00:35:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.66c7d830d81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.66c7d830d81b84791f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.66c7d830d81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.66c7d830d81b84791f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Making Patterns with functions [601 days 15 hours and 4 minutes ago]</title>
		<description>
&lt;pre&gt;I think I was playing around with the AI again, and the simplest function caught
my eye.

Slumbering neurons were roused, and I realized that although I didn't have
access to POV-Ray, I _did_ have access to Desmos.

Graphing cos(x) * sin (y) revealed a very surprising pattern, and I did a little
bit of follow-up development from there.  Subtracting a constant in between 0
and 1 changes the pattern from circles, to squircles, to squares.

So then, I had to transition between simple graphing, and mapping equations to a
plane with functions.  I had a surprisingly difficult time getting the lines to
match the dots at the proper slopes, and I had to introduce fudge factors to get
the lines to accurately match the frequency of the dots.

Blah blah blah - here's the original basic pattern and the triangular grid that
I made based on that.

I also needed to alter my fmod function, and I still need to add another level
of select () to fix the doubling of the lines across N=0.
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 22 Aug 2024 23:10:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.66c7c4ebd81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.66c7c4ebd81b84791f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.66c7c4ebd81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.66c7c4ebd81b84791f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Making Patterns with functions [602 days 13 hours and 9 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;quot;jr&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; v nice.  I bet it would be &amp;quot;lush&amp;quot; as a woven fabric/cloth.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; There's a better one for that, I think - the &amp;quot;Honeycomb&amp;quot; that I found in a&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; paper.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Kinda looks like a &amp;quot;dog bone&amp;quot; wood patch that alternates in directions like a&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; checkerboard.&lt;/span&gt;

Sometimes these things are a little easier to write using some helper functions.

#declare S2P = function (V) {sin (tau*V/L)}
#declare C2P = function (V) {cos (tau*V/L)}
#declare T = 0.5;
#declare N = 1;
#declare Honeycomb = function (X, Y, Z) {pow(S2P(X)*C2P(Z) + S2P(Z) + C2P(X), N)
- pow(T, N)}
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 22 Aug 2024 01:05:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.66c68e1ad81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.66c68e1ad81b84791f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.66c68e1ad81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.66c68e1ad81b84791f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Making Patterns with functions [604 days 1 hour and 59 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;jr&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; v nice.  I bet it would be &amp;quot;lush&amp;quot; as a woven fabric/cloth.&lt;/span&gt;

There's a better one for that, I think - the &amp;quot;Honeycomb&amp;quot; that I found in a
paper.
Kinda looks like a &amp;quot;dog bone&amp;quot; wood patch that alternates in directions like a
checkerboard.

A lot of these are, incidentally, used for support-fill for 3D printing
applications - so Kenneth may have a very practical interest.

Since they can partition space into 2 parts acting as a membrane in between,
when they are given thickness and made of metal, they are being evaluated as
heat-transfer devices, very much like a car radiator works.
The key factor being the very high surface area able to be contained in a very
small space.

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; (light-green with envy :-))&lt;/span&gt;

You shouldn't be.  You can copy-paste equations as well as I can.  :P

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 20 Aug 2024 12:15:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.66c48845d81b8479a2cb7a7025979125%40news.povray.org%3E/#%3Cweb.66c48845d81b8479a2cb7a7025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.66c48845d81b8479a2cb7a7025979125%40news.povray.org%3E/#%3Cweb.66c48845d81b8479a2cb7a7025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[jr] Re: Making Patterns with functions [604 days 8 hours and 34 minutes ago]</title>
		<description>
&lt;pre&gt;hi,

&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; plane - pigment {function {TPMS}}&lt;/span&gt;

v nice.  I bet it would be &amp;quot;lush&amp;quot; as a woven fabric/cloth.

(light-green with envy :-))


regards, jr.
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 20 Aug 2024 05:40:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.66c42b6cd81b8479c7a7971d6cde94f1%40news.povray.org%3E/#%3Cweb.66c42b6cd81b8479c7a7971d6cde94f1%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.66c42b6cd81b8479c7a7971d6cde94f1%40news.povray.org%3E/#%3Cweb.66c42b6cd81b8479c7a7971d6cde94f1%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Making Patterns with functions [604 days 14 hours and 29 minutes ago]</title>
		<description>
&lt;pre&gt;Triply Periodic Minimal Surface

left - open
right - closed
plane - pigment {function {TPMS}}

This one is called &amp;quot;SplitP&amp;quot;
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 19 Aug 2024 23:45:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.66c3d8a8d81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.66c3d8a8d81b84791f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.66c3d8a8d81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.66c3d8a8d81b84791f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Dupin cyclide by inversion [621 days 13 hours and 59 minutes ago]</title>
		<description>
&lt;pre&gt;So, I was exploring various ideas, and came back around to my Dupin cyclide work
(with much help from Jerome Grimbert).

Now that I have a better understanding of inversion through a sphere, and some
working code to make that happen, I wanted to make further progress on
parameterizing the process so that given any two 3D points, a Dupin cyclide
would pass through those two points, with exactly specified cross-sectional
circle radii.

http://news.povray.org/povray.binaries.images/thread/%3C591b0d34%40news.povray.org%3E/

I have the &amp;quot;forward inversion&amp;quot; working well - turning a torus into a cyclide.

I can calculate the centers and radii of the cross-sectional circles, and verify
that the calculated cyclide's center is equidistant from those two centers.

Now I just need to reverse-engineer all of that to create the appropriate torus
from the design parameters of the cyclide.  Then when that gets inverted through
the sphere, I get the desired cyclide.  I might also be able to do this using a
cylinder or a cone.

One thing I did notice while doing development was that I was unable to
(consistently) properly render a torus using an isosurface of the equation
#declare Torus = function (X, Y, Z, R, r) {pow (sqrt((pow(X,2)+pow(Y,2)) - R),
2) + pow (Z,2) - pow (r,2)}
And the result changed when I simply included the grid-textured plane!  :O

So something is amiss there.

One thing of note:  I initially was trying to invert the coordinates fed into
the isosurface, but that obviously won;t work, because what I actually need to
do is invert the surface coordinates where the function equals zero.

Maybe there's still some tricky way to get that to work, but using parametric
equations and making a mesh was easier and faster.

Also of note (again) - the Dupin cyclide function in functions.inc actually
works by inverting a torus!  :O

#declare f_dupin_cyclid = function { internal(16) }
// Parameters: x, y, z
    // Six extra parameters required:
    // 1. Field Strength
    // 2. Major radius of torus
    // 3. Minor radius of torus
    // 4. X displacement of torus
    // 5. Y displacement of torus
    // 6. Radius of inversion

- BE
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 3 Aug 2024 00:15:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.66ad76732acdfe461f9dae3025979125%40news.povray.org%3E/#%3Cweb.66ad76732acdfe461f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.66ad76732acdfe461f9dae3025979125%40news.povray.org%3E/#%3Cweb.66ad76732acdfe461f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Pappus Chain [622 days 21 hours and 54 minutes ago]</title>
		<description>
&lt;pre&gt;MichaelJF &amp;lt;fri###&amp;nbsp;[at]&amp;nbsp;t-online&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;de&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; In my opinion, a special case was still missing here...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Blue is an osculatory sphere packing with an asymmetric start&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; configuration, red is a classical apollonian sphere packing with a&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; symmetric start configuration.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Best regards,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; MIchael&lt;/span&gt;

https://www.josleys.com/articles/Sphere_inversion_Article.pdf
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 1 Aug 2024 16:20:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.66abb54d3bd24dfe6563700825979125%40news.povray.org%3E/#%3Cweb.66abb54d3bd24dfe6563700825979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.66abb54d3bd24dfe6563700825979125%40news.povray.org%3E/#%3Cweb.66abb54d3bd24dfe6563700825979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Pappus Chain [627 days 21 hours and 49 minutes ago]</title>
		<description>
&lt;pre&gt;I plugged a prompt into the AI at work, just to see what sort of quality the
code and algorithms the thing spit out - and they're not all that terrible.

So I got some Ford Circles worked out (not using inversion).


Now, even this small experiment taught me some things.

spherical warp requires &amp;quot;orientation&amp;quot; and &amp;quot;dist_exp&amp;quot; to work properly,
especially as an interior_texture - otherwise you just get bad results.


And somehow, there may be a bug somewhere, or I'm just picking up some oddity in
the way the scene elements interact with each other - because I'm getting odd
&amp;quot;checkering&amp;quot; on that left-hand large sphere.   The crackle normal gets
flattened/canceled out.

If I remove the large, enclosing checkered sphere, it goes away.

Enjoy.

// ------------------------------------------------------------------------


#version 3.8;
global_settings {
 assumed_gamma 1.0
}
//#default {finish {emission 1}}
#declare E = 0.00001;

camera {
 location &amp;lt;0.5, 0.5, -1.75&amp;gt;
 right x*image_width/image_height
 up y
 look_at &amp;lt;0.5, 0.5, 0&amp;gt;
}

//sky_sphere {pigment {rgb 1}}
#declare BW = pigment_map
{
 [0 rgb 0]
 [1 rgb 1]
}

sphere {0, 1000 texture {pigment {checker rgb 0 rgb 1 scale x*0.5 warp
{spherical orientation y dist_exp 0.75} scale 1 }} } //interior_texture {pigment
{checker  scale 1 }} }

light_source {&amp;lt;5, 5, -50&amp;gt; rgb 1}

#declare Line = 0.001;

#declare Seed1 = seed (123);
#declare Seed2 = seed (456123);
#declare Seed3 = seed (456123789);

#macro FordCircle (p, q, mode)
 #local R1 = rand (Seed1);
 #local R2 = rand (Seed2);
 #local R3 = rand (Seed3);
 #local Color = &amp;lt;R1, R2, R3&amp;gt;;

 #local Radius = 1 / (2*pow(q,2));
 #local Center = &amp;lt;p/q, Radius, 0&amp;gt;;

 #switch (mode)
 #case (0)
  torus {Radius, Line pigment {rgb y} rotate x*90 translate Center}
  torus {Radius, Line pigment {rgb y} rotate x*90 translate &amp;lt;1, -1, 1&amp;gt;*Center
translate y*1}
 #break
 #case (1)
  disc {Center, z, Radius, 0 pigment {rgb Color}}
  disc {Center, z, Radius, 0 pigment {rgb Color} translate &amp;lt;0, 1-Radius*2, 0&amp;gt;}
 #break
 #case (2)
  sphere {Center, Radius texture {pigment {rgb Color} normal {crackle scale 0.01
bump_size 2} finish {specular 0.4}} }
  sphere {Center, Radius texture {pigment {rgb Color} normal {crackle scale
0.01} finish {specular 0.4}} translate &amp;lt;0, 1-Radius*2, 0&amp;gt;}
 #break
 #end
#end

#macro gcd (a, b)
 #if (b = 0)
  #local Result = a;
 #else
  #local Result = gcd (b, mod (a, b));
 #end
 Result
#end

#declare max_q = 10;

#for (q, 1, max_q)
 #for (p, 0, q)
  #if (gcd (p, q) = 1)
   FordCircle (p, q, 2)
  #end
 #end
#end
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 27 Jul 2024 16:25:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.66a51e9b3bd24dfe1f9dae3025979125%40news.povray.org%3E/#%3Cweb.66a51e9b3bd24dfe1f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.66a51e9b3bd24dfe1f9dae3025979125%40news.povray.org%3E/#%3Cweb.66a51e9b3bd24dfe1f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Pappus Chain [627 days 21 hours and 59 minutes ago]</title>
		<description>
&lt;pre&gt;MichaelJF &amp;lt;fri###&amp;nbsp;[at]&amp;nbsp;t-online&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;de&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; In my opinion, a special case was still missing here...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Blue is an osculatory sphere packing with an asymmetric start&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; configuration, red is a classical apollonian sphere packing with a&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; symmetric start configuration.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Best regards,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; MIchael&lt;/span&gt;


Yes, eventually we had to do the 3D version!
I had some papers on my pile (Well, _one_ of my piles) related to this.

How much more difficult was it to do the spherical space-filling version?


I'm also curious if this can be massaged into a macro that is capable of filling
any given arbitrary shape.

Then we could use it to build stone walls, layered geologic strata, sandstone
sculptures, etc.

Do a test scene with smooth spheres, and then enhance it by replacing them all
with isosurface rocks, pebbles, and sand.

A bowl of grapes.   That sort of thing.   :)


Excellent work - you ought to be proud.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 27 Jul 2024 16:15:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.66a51c773bd24dfe1f9dae3025979125%40news.povray.org%3E/#%3Cweb.66a51c773bd24dfe1f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.66a51c773bd24dfe1f9dae3025979125%40news.povray.org%3E/#%3Cweb.66a51c773bd24dfe1f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[kurtz le pirate] Re: Pappus Chain [629 days 7 hours and 35 minutes ago]</title>
		<description>
&lt;pre&gt;On 24/07/2024 20:31, MichaelJF wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; In my opinion, a special case was still missing here...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Blue is an osculatory sphere packing with an asymmetric start &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; configuration, red is a classical apollonian sphere packing with a &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; symmetric start configuration.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Best regards,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; MIchael&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;

Waouh ! I'm always amazed by these kind of images.

Personally, I've never really understood the transition from plane work
to sphere work.


Excellent



-- 
Kurtz le pirate
Compagnie de la Banquise
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 26 Jul 2024 06:38:48 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C66a34478%241%40news.povray.org%3E/#%3C66a34478%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C66a34478%241%40news.povray.org%3E/#%3C66a34478%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Gauss-Laguerre quadrature [629 days 13 hours and 44 minutes ago]</title>
		<description>
&lt;pre&gt;I somehow got off on a tangent graphing some orthogonal polynomials, and then
went the rest of the way and implemented the Gauss-Laguerre integration method.

Amazingly, it &amp;quot;works&amp;quot;, and I get a ballpark answer for all of the equations that
I've found exact answers for the integrations - however I feel like I ought to
be getting far more accurate answers.  Like, to 6 decimal places or more.

https://thoughts-on-coding.com/2019/04/25/numerical-methods-in-cpp-part-2-gauss-legendre-integration/

Using Laguerre polynomial level 5

Integral of (5/(pow(e, pi)-2)) * exp(2*_X) * cos(_X) dx      from: [0.000] to:
[1.571]      = 0.9914612      Actual answer = 1.0000000

Integral of pow(x,2) + 1 dx      from: [0.000] to: [2.000]      = 4.6207326
Actual answer = 4.6666667

Integral of pow(x,2) + pow(x,-2) dx      from: [1.000] to: [2.000]      =
2.8064163      Actual answer = 2.8333333

Integral of 6*pow(x,2) - 5*x + 2 dx      from: [-3.000] to: [1.000]      =
83.1007807      Actual answer = 84.0000000

Integral of sqrt (x) * (x-2) dx      from: [4.000] to: [0.000]      = -2.0968530
     Actual answer = 2.1333333

Integral of (2*pow(x,5) - x + 3) / pow(x,2) dx      from: [1.000] to: [2.000]
  = 8.2261864      Actual answer = 8.3068528

Integral of 4*x - 6*pow(pow(x,2), 1/3) dx      from: [0.000] to: [1.000]      =
-1.5870838      Actual answer = -1.6000000

Integral of 2*sin(x) - 5*cos(x) dx      from: [0.000] to: [1.047]      =
-3.2996419      Actual answer = -3.3301270

Integral of 3/exp(-x) - 1/3*x dx      from: [-20.000] to: [-1.000]      =
2.0601572      Actual answer = 2.1022157

Integral of abs(3x-5) dx      from: [0.000] to: [3.000]      = 6.7223530
Actual answer = 6.8333333

Integral of 4*pow(x,4) - pow(x,2) + 1 dx      from: [-2.000] to: [2.000]      =
41.3601713      Actual answer = 49.8666667
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 26 Jul 2024 00:30:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.66a2ecec4ab7f2f1f9dae3025979125%40news.povray.org%3E/#%3Cweb.66a2ecec4ab7f2f1f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.66a2ecec4ab7f2f1f9dae3025979125%40news.povray.org%3E/#%3Cweb.66a2ecec4ab7f2f1f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[MichaelJF] Re: Pappus Chain [630 days 19 hours and 42 minutes ago]</title>
		<description>
&lt;pre&gt;In my opinion, a special case was still missing here...

Blue is an osculatory sphere packing with an asymmetric start 
configuration, red is a classical apollonian sphere packing with a 
symmetric start configuration.

Best regards,
MIchael
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 24 Jul 2024 18:31:53 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C66a14899%40news.povray.org%3E/#%3C66a14899%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C66a14899%40news.povray.org%3E/#%3C66a14899%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[jr] Re: Gaussian 2F1 Hypergeometric function [659 days 22 hours and 19 minutes ago]</title>
		<description>
&lt;pre&gt;hi,

&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; 2nd update:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; The shapes are triangular, but they have that weird wiggle.&lt;/span&gt;

maybe it's just me, but I think the &amp;quot;wiggle&amp;quot; makes all the difference.  (think
&amp;quot;serendipity&amp;quot; &amp;lt;/grin&amp;gt;)


regards, jr.
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 25 Jun 2024 15:55:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.667ae7847cb6be78b1d667ae6cde94f1%40news.povray.org%3E/#%3Cweb.667ae7847cb6be78b1d667ae6cde94f1%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.667ae7847cb6be78b1d667ae6cde94f1%40news.povray.org%3E/#%3Cweb.667ae7847cb6be78b1d667ae6cde94f1%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Gaussian 2F1 Hypergeometric function [661 days 13 hours and 49 minutes ago]</title>
		<description>
&lt;pre&gt;2nd update:

I hacked my way through the 500+ lines of code, and left a trail of debugging
statements and &amp;quot;fixes&amp;quot;.

zw is a complex variable that gets used but never assigned a value.   :|
Psi is a function that gets called, but the return value is never used.
Converting all of the #locals to #declares in the entire file doesn't alter any
global variables when Psi is called.
The argument to a certain Gamma function always winds up being negative, and
Gamma doesn't take negative arguments.

I tracked my values and finally restricted everything to +/- 10, and got 3
radial lines - - - that I recognized when implementing a &amp;quot;cheap&amp;quot; little gamma
approximation.

https://cplusplus.com/forum/general/255896/#msg1120994

So, having absorbed more know-how and with the necessary macros in hand, I
slightly altered it to take a complex Z argument, and got the same pattern.
Then I added a lot more points, and got my triangles!
Mostly.

The shapes are triangular, but they have that weird wiggle.

Anyway, it's a heck of a lot farther than I thought I'd make it for a weekend of
coding.

- BE
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 24 Jun 2024 00:25:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6678bc037cb6be781f9dae3025979125%40news.povray.org%3E/#%3Cweb.6678bc037cb6be781f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6678bc037cb6be781f9dae3025979125%40news.povray.org%3E/#%3Cweb.6678bc037cb6be781f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Gaussian 2F1 Hypergeometric function [661 days 20 hours and 39 minutes ago]</title>
		<description>
&lt;pre&gt;Cousin Ricky &amp;lt;ric###&amp;nbsp;[at]&amp;nbsp;yahoo&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Hey, at least it's not Fortran IV.&lt;/span&gt;

I don't recall seeing any of that - what year was that?

The last thing I tried to convert was Fortran90,  This, I believe is Fortran77.

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Although, DO WHILE was already part of the Fortran standard when this&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; code was written, so I'm a little surprised to see GO TO in there.&lt;/span&gt;

Update:
Although we've played a bit recently with some complex number math with regard
to the Apollonian gasket, I needed quite a few more functions to do everything
required for this algorithm.  So I now have 19 macros to do +, -, *, /, ^, =, as
well as mixed complex / real operations, and stuff like conjugate, abs, log,
sqrt, and argument.

The macro runs from lines 517 to 1044, and although Fortran had inbuilt complex
number handling back in 1977, we don't have that in POV-Ray (yet).  So I had to
go through and replace all of the simple / naive operators with a few extra
lines of code calling the aforementioned complex number macros.

I still have to pick through to make sure my indenting is correct (all of the
#end directives ought to be intact, though not properly indent-aligned) and then
code my way out of the handful of GO TO statements.

Then I'll probably &amp;quot;just&amp;quot; need to clean up some floating mixed-number type
operations and whatever else trips the parser.

Then I can see if it does anything proper and useful.


I do believe that all of this somehow started with some of the mathematical
greats trying to compute the perimeter of an ellipse.  Which gave us elliptic
integrals, and then elliptic functions, and then hypergeometric functions....

- BE
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 23 Jun 2024 17:35:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.66785bf47cb6be781f9dae3025979125%40news.povray.org%3E/#%3Cweb.66785bf47cb6be781f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.66785bf47cb6be781f9dae3025979125%40news.povray.org%3E/#%3Cweb.66785bf47cb6be781f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Cousin Ricky] Re: Gaussian 2F1 Hypergeometric function [661 days 21 hours and 44 minutes ago]</title>
		<description>
&lt;pre&gt;On 2024-06-22 20:37 (-4), Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Oh, the forgotten joys of porting ancient FORTRAN code to SDL.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;quot;go to 10&amp;quot;   (ouch.)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I feel like I'm 12 years old using a school TRS-80 again.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; It will be a minor miracle if I can get this to work in the next week.&lt;/span&gt;

Hey, at least it's not Fortran IV.

Although, DO WHILE was already part of the Fortran standard when this
code was written, so I'm a little surprised to see GO TO in there.
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 23 Jun 2024 16:29:40 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C66784d74%241%40news.povray.org%3E/#%3C66784d74%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C66784d74%241%40news.povray.org%3E/#%3C66784d74%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Gaussian 2F1 Hypergeometric function [662 days 13 hours and 34 minutes ago]</title>
		<description>
&lt;pre&gt;Oh, the forgotten joys of porting ancient FORTRAN code to SDL.

&amp;quot;go to 10&amp;quot;   (ouch.)

I feel like I'm 12 years old using a school TRS-80 again.


It will be a minor miracle if I can get this to work in the next week.
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 23 Jun 2024 00:40:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.66776e3a5b397ff01f9dae3025979125%40news.povray.org%3E/#%3Cweb.66776e3a5b397ff01f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.66776e3a5b397ff01f9dae3025979125%40news.povray.org%3E/#%3Cweb.66776e3a5b397ff01f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Pappus Chain [664 days 17 hours and 59 minutes ago]</title>
		<description>
&lt;pre&gt;Any python coders capable of converting this to SDL?

https://people.sc.fsu.edu/~jburkardt/py_src/hyper_2f1/hyper_2f1.py

#! /usr/bin/env python3
#
def hyper_2f1_test ( ):

#*****************************************************************************80
#
## hyper_2f1_test() tests hyper_2f1().
#
#  Licensing:
#
#    This code is distributed under the MIT license.
#
#  Modified:
#
#    21 December 2023
#
#  Author:
#
#    John Burkardt
#
  import platform

  print ( '' )
  print ( 'hyper_2f1_test():' )
  print ( '  Python version: %s' % ( platform.python_version ( ) ) )
  print ( '  Test hyper_2f1().' )

  hyper_2f1_real_test ( )
  hyper_2f1_complex_test ( )
#
#  Terminate.
#
  print ( '' )
  print ( 'hyper_2f1_test():' )
  print ( '  Normal end of execution.' )
  return

def hyper_2f1 ( a, b, c, x ):

#*****************************************************************************80
#
## hyper_2f1() evaluates the hypergeometric 2F1 function.
#
#  Licensing:
#
#    This code is distributed under the MIT license.
#
#  Modified:
#
#    21 December 2023
#
#  Author:
#
#    John Burkardt
#
#  Input:
#
#    real A, B, C: the parameters.
#
#    real or complex X: the argument.
#
#  Output:
#
#    real or complex F: the value of the function.
#
  from scipy.special import hyp2f1

  f = hyp2f1 ( a, b, c, x )

  return f

def hyper_2f1_real_values ( n_data ):

#*****************************************************************************80
#
## hyper_2f1_real_values() returns some values of the hypergeometric 2F1
function.
#
#  Discussion:
#
#    In Mathematica, the function can be evaluated by:
#
#      fx = Hypergeometric2F1 [ a, b, c, x ]
#
#  Licensing:
#
#    This code is distributed under the MIT license.
#
#  Modified:
#
#    13 February 2015
#
#  Author:
#
#    John Burkardt
#
#  Reference:
#
#    Milton Abramowitz, Irene Stegun,
#    Handbook of Mathematical Functions,
#    National Bureau of Standards, 1964,
#    ISBN: 0-486-61272-4,
#    LC: QA47.A34.
#
#    Shanjie Zhang, Jianming Jin,
#    Computation of Special Functions,
#    Wiley, 1996,
#    ISBN: 0-471-11963-6,
#    LC: QA351.C45
#
#    Stephen Wolfram,
#    The Mathematica Book,
#    Fourth Edition,
#    Cambridge University Press, 1999,
#    ISBN: 0-521-64314-7,
#    LC: QA76.95.W65.
#
#    Daniel Zwillinger, editor,
#    CRC Standard Mathematical Tables and Formulae,
#    30th Edition,
#    CRC Press, 1996,
#    ISBN: 0-8493-2479-3,
#    LC: QA47.M315.
#
#  Input:
#
#    integer n_data.  The user sets n_data to 0 before the first call.
#
#  Output:
#
#    integer n_data.  On each call, the routine increments n_data by 1, and
#    returns the corresponding data; when there is no more data, the
#    output value of n_data will be 0 again.
#
#    real A, B, C, X, the parameters.
#
#    real F, the value of the function.
#
  import numpy as np

  n_max = 24

  a_vec = np.array ( ( \
   -2.5, \
   -0.5, \
    0.5, \
    2.5, \
   -2.5, \
   -0.5, \
    0.5, \
    2.5, \
   -2.5, \
   -0.5, \
    0.5, \
    2.5, \
    3.3, \
    1.1, \
    1.1, \
    3.3, \
    3.3, \
    1.1, \
    1.1, \
    3.3, \
    3.3, \
    1.1, \
    1.1, \
    3.3 ))

  b_vec = np.array ( ( \
    3.3, \
    1.1, \
    1.1, \
    3.3, \
    3.3, \
    1.1, \
    1.1, \
    3.3, \
    3.3, \
    1.1, \
    1.1, \
    3.3, \
    6.7, \
    6.7, \
    6.7, \
    6.7, \
    6.7, \
    6.7, \
    6.7, \
    6.7, \
    6.7, \
    6.7, \
    6.7, \
    6.7 ))

  c_vec = np.array ( ( \
    6.7, \
    6.7, \
    6.7, \
    6.7, \
    6.7, \
    6.7, \
    6.7, \
    6.7, \
    6.7, \
    6.7, \
    6.7, \
    6.7, \
   -5.5, \
   -0.5, \
    0.5, \
    4.5, \
   -5.5, \
   -0.5, \
    0.5, \
    4.5, \
   -5.5, \
   -0.5, \
    0.5, \
    4.5 ))

  f_vec = np.array ( ( \
    0.72356129348997784913, \
    0.97911109345277961340, \
    1.0216578140088564160, \
    1.4051563200112126405, \
    0.46961431639821611095, \
    0.95296194977446325454, \
    1.0512814213947987916, \
    2.3999062904777858999, \
    0.29106095928414718320, \
    0.92536967910373175753, \
    1.0865504094806997287, \
    5.7381565526189046578, \
    15090.669748704606754, \
   -104.31170067364349677, \
    21.175050707768812938, \
    4.1946915819031922850, \
    1.0170777974048815592E+10, \
   -24708.635322489155868, \
    1372.2304548384989560, \
    58.092728706394652211, \
    5.8682087615124176162E+18, \
   -4.4635010147295996680E+08, \
    5.3835057561295731310E+06, \
    20396.913776019659426 ))

  x_vec = np.array ( ( \
    0.25, \
    0.25, \
    0.25, \
    0.25, \
    0.55, \
    0.55, \
    0.55, \
    0.55, \
    0.85, \
    0.85, \
    0.85, \
    0.85, \
    0.25, \
    0.25, \
    0.25, \
    0.25, \
    0.55, \
    0.55, \
    0.55, \
    0.55, \
    0.85, \
    0.85, \
    0.85, \
    0.85 ))

  if ( n_data &amp;lt; 0 ):
    n_data = 0

  if ( n_max &amp;lt;= n_data ):
    n_data = 0
    a = 0
    b = 0
    c = 0.0
    x = 0.0
    f = 0.0
  else:
    a = a_vec[n_data]
    b = b_vec[n_data]
    c = c_vec[n_data]
    x = x_vec[n_data]
    f = f_vec[n_data]
    n_data = n_data + 1

  return n_data, a, b, c, x, f

def hyper_2f1_real_test ( ):

#*****************************************************************************80
#
## hyper_2f1_real_test() tests hyper_2f1() for real arguments.
#
#  Licensing:
#
#    This code is distributed under the MIT license.
#
#  Modified:
#
#    21 December 2023
#
#  Author:
#
#    John Burkardt
#
  print ( '' )
  print ( 'hyper_2f1_real_test():' )
  print ( '  hyper_2f1() evaluates the hypergeometric function 2F1(A,B,C;X)' )
  print ( '  Check the computation for real arguments X.' )

  n_data = 0

  while ( True ):

    n_data, a, b, c, x, f1 = hyper_2f1_real_values ( n_data )

    if ( n_data == 0 ):
      break

    f2 = hyper_2f1 ( a, b, c, x )

    print ( '' )
    print ( '  (a,b,c,x):   %4d  %4d  %12f  %12f' % ( a, b, c, x ) )
    print ( '  (exact):     %24.16g' % ( f1 ) )
    print ( '  (computed):  %24.16g' % ( f2 ) )
    print ( '  (error):     %24.16g' % ( abs ( f1 - f2 ) ) )

  return

def hyper_2f1_complex_values ( n_data ):

#*****************************************************************************80
#
## hyper_2f1_complex_values() returns some values of the hypergeometric 2F1
function.
#
#  Discussion:
#
#    In Mathematica, the function can be evaluated by:
#
#      fz = Hypergeometric2F1 [ a, b, c, z ]
#
#  Licensing:
#
#    This code is distributed under the MIT license.
#
#  Modified:
#
#    19 December 2023
#
#  Author:
#
#    John Burkardt
#
#  Reference:
#
#    Shanjie Zhang, Jianming Jin,
#    Computation of Special Functions,
#    Wiley, 1996,
#    ISBN: 0-471-11963-6,
#    LC: QA351.C45
#
#  Input:
#
#    integer n_data.  The user sets n_data to 0 before the first call.
#
#  Output:
#
#    integer n_data.  On each call, the routine increments n_data by 1, and
#    returns the corresponding data; when there is no more data, the
#    output value of n_data will be 0 again.
#
#    real A, B, C: the parameters.
#
#    complex Z: the argument.
#
#    complex FZ: the value of the function.
#
  import numpy as np

  n_max = 15

  a_vec = np.array ( ( \
    3.2, \
    3.2, \
   -5.0, \
    3.3, \
   -7.0, \
    4.3, \
    3.3, \
    3.5, \
    3.3, \
    7.0, \
    5.0, \
    3.5, \
    2.1, \
    8.7, \
    8.7 ))

  b_vec = np.array ( ( \
   1.8, \
  -1.8, \
   3.3, \
  -6.0, \
   3.3, \
  -8.0, \
   5.8, \
  -2.4, \
   4.3, \
   5.0, \
   7.0, \
   1.2, \
   5.4, \
   3.2, \
   2.7 ))

  c_vec = np.array ( ( \
   6.7, \
   6.7, \
   6.7, \
   3.7, \
  -3.7, \
  -3.7, \
   6.7, \
   6.7, \
   6.7, \
   4.1, \
   4.1, \
   9.7, \
   9.7, \
   6.7, \
   6.7 ))

  fz_vec = np.array ( ( \
    5.468999154361234+0.00000000j, \
    0.3375063477462785+0.00000000j, \
    116.8274991533609+603.8909562709345j, \
    17620.41819334182+38293.80901310932j, \
   -11772775115.27448-14382285977.20268j, \
    1316118577866.058-101298889382.4362j, \
    1.733055678355656+0.6340102904953357j, \
    0.6476224071999852-0.5211050690999773j, \
   -1.483008322270093+8.374426179451589j, \
   -0.004037609523971226-0.002956632645480181j, \
   -0.004037609523971226-0.002956632645480181j, \
    1.034313610729953+0.5447389238499308j, \
    0.6885043978280027+1.227418679098749j, \
   -0.9004649679297319-1.11988994714304j, \
   -0.4608388640599718-0.5457569650549665j ))

  z_vec = np.array ( ( \
   1.0+0.0j, \
   1.0+0.0j, \
   5.2+4.8j, \
   5.2-4.8j, \
   5.2-4.8j, \
   5.2+4.8j, \
   0.2+0.1j, \
   0.2+0.5j, \
   0.8+0.3j, \
   3.0-1.0j, \
   3.0-1.0j, \
   0.6+0.9j, \
   0.5+0.7j, \
   0.5+0.7j, \
   0.6+0.9j ))

  if ( n_data &amp;lt; 0 ):
    n_data = 0

  if ( n_max &amp;lt;= n_data ):
    n_data = 0
    a = 0
    b = 0
    c = 0.0
    z = 0.0
    fz = 0.0
  else:
    a = a_vec[n_data]
    b = b_vec[n_data]
    c = c_vec[n_data]
    z = z_vec[n_data]
    fz = fz_vec[n_data]
    n_data = n_data + 1

  return n_data, a, b, c, z, fz

def hyper_2f1_complex_test ( ):

#*****************************************************************************80
#
## hyper_2f1_complex_test() tests hyper_2f1() for complex arguments.
#
#  Licensing:
#
#    This code is distributed under the MIT license.
#
#  Modified:
#
#    21 December 2023
#
#  Author:
#
#    John Burkardt

&lt;b&gt;[ remainder of message truncated in this digest view due to length ]&lt;/b&gt;
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 20 Jun 2024 20:15:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.66748d783bd24dfea959538725979125%40news.povray.org%3E/#%3Cweb.66748d783bd24dfea959538725979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.66748d783bd24dfea959538725979125%40news.povray.org%3E/#%3Cweb.66748d783bd24dfea959538725979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Pappus Chain [665 days 2 hours and 59 minutes ago]</title>
		<description>
&lt;pre&gt;And of course we needed so good old fashioned crop circles.
(WIP)
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 20 Jun 2024 11:15:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.66740eee3bd24dfe1f9dae3025979125%40news.povray.org%3E/#%3Cweb.66740eee3bd24dfe1f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.66740eee3bd24dfe1f9dae3025979125%40news.povray.org%3E/#%3Cweb.66740eee3bd24dfe1f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Pappus Chain [666 days and 19 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Just posting this here for reference.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; https://www.johndcook.com/blog/2023/12/19/conformal-map-disk-triangle/&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Would be cool to apply this to the gasket to see what pops out - probably a&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Sierpinski Triangle.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Search: conformal mapping of circle to a triangle&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; - BE&lt;/span&gt;

https://www.mathworks.com/matlabcentral/fileexchange/35008-generation-of-random-variates

https://www.mathworks.com/matlabcentral/fileexchange/1844-gaussian-hypergeometric-function

function z=hypergeometric2f1(a,b,c,x,n)
% HYPERGEOMETRIC2F1 Computes the hypergeometric function
% using a series expansion:
%
%    f(a,b;c;x)=
%
%    1 + [ab/1!c]x + [a(a+1)b(b+1)/2!c(c+1)]x^2 +
%    [a(a+1)(a+2)b(b+1)(b+2)/3!c(c+1)(c+2)]x^3 + ...
%
% The series is expanded to n terms
%
% This function solves the Gaussian Hypergeometric Differential Equation:
%
%     x(1-x)y'' + {c-(a+b+1)x}y' - aby = 0
%
% The Hypergeometric function converges only for:
% |x| &amp;lt; 1
% c != 0, -1, -2, -3, ...
%
%
% Comments to:
% Diego Garcia   - d.g###&amp;nbsp;[at]&amp;nbsp;ieee&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;org
% Chuck Mongiovi - mon###&amp;nbsp;[at]&amp;nbsp;fast&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net
% June 14, 2002
if nargin ~= 5
    error('Usage: hypergeometric2f1(a,b,c,x,n) --&amp;gt; Wrong number of arguments')
end
if (n &amp;lt;= 0 | n ~= floor(n))
    error('Usage: hypergeometric2f1(a,b,c,x,n) --&amp;gt; n has to be a positive
integer')
end
if (abs(x) &amp;gt; 1)
    error('Usage: hypergeometric2f1(a,b,c,x,n) --&amp;gt; |x| has to be less than 1')
end
if (c &amp;lt;= 0 &amp;amp; c == floor(c))
    error('Usage: hypergeometric2f1(a,b,c,x,n) --&amp;gt; c != 0, -1, -2, -3, ...')
end
z = 0;
m = 0;
while (m&amp;lt;n)
    if (m == 0)
        delta = 1;
    else
        delta = delta .* x .* (a + (m - 1)) .* (b + (m-1)) ./ m ./ (c + (m-1));
   end
   z = z + delta;
   m = m + 1;
end
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 19 Jun 2024 13:55:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6672e21b3bd24dfede5e631125979125%40news.povray.org%3E/#%3Cweb.6672e21b3bd24dfede5e631125979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6672e21b3bd24dfede5e631125979125%40news.povray.org%3E/#%3Cweb.6672e21b3bd24dfede5e631125979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[William F Pokorny] Re: Pappus Chain [666 days and 37 minutes ago]</title>
		<description>
&lt;pre&gt;On 6/19/24 09:17, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; MichaelJF &amp;lt;fri###&amp;nbsp;[at]&amp;nbsp;t-online&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;de&amp;gt; wrote:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; somewhat crazy, but very interesting;)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Aw, thanks Michael!&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; But what about the render?    :D&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;

You have too much free times... :-) Very cool.

Bill P.
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 19 Jun 2024 13:36:14 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C6672dece%241%40news.povray.org%3E/#%3C6672dece%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C6672dece%241%40news.povray.org%3E/#%3C6672dece%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Pappus Chain [666 days and 54 minutes ago]</title>
		<description>
&lt;pre&gt;MichaelJF &amp;lt;fri###&amp;nbsp;[at]&amp;nbsp;t-online&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;de&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; somewhat crazy, but very interesting;)&lt;/span&gt;

Aw, thanks Michael!

But what about the render?    :D
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 19 Jun 2024 13:20:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6672da803bd24dfede5e631125979125%40news.povray.org%3E/#%3Cweb.6672da803bd24dfede5e631125979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6672da803bd24dfede5e631125979125%40news.povray.org%3E/#%3Cweb.6672da803bd24dfede5e631125979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[MichaelJF] Re: Pappus Chain [666 days 2 hours and 24 minutes ago]</title>
		<description>
&lt;pre&gt;Am 19.06.2024 um 02:36 schrieb Bald Eagle:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Now with lenses!&lt;/span&gt;
somewhat crazy, but very interesting;)

Best regards
Michael
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 19 Jun 2024 11:49:27 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C6672c5c7%241%40news.povray.org%3E/#%3C6672c5c7%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C6672c5c7%241%40news.povray.org%3E/#%3C6672c5c7%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Pappus Chain [666 days 13 hours and 34 minutes ago]</title>
		<description>
&lt;pre&gt;Now with lenses!
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 19 Jun 2024 00:40:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.667228173bd24dfe1f9dae3025979125%40news.povray.org%3E/#%3Cweb.667228173bd24dfe1f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.667228173bd24dfe1f9dae3025979125%40news.povray.org%3E/#%3Cweb.667228173bd24dfe1f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Pappus Chain [666 days 18 hours and 9 minutes ago]</title>
		<description>
&lt;pre&gt;Just posting this here for reference.

https://www.johndcook.com/blog/2023/12/19/conformal-map-disk-triangle/

Would be cool to apply this to the gasket to see what pops out - probably a
Sierpinski Triangle.

Search: conformal mapping of circle to a triangle

- BE
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 18 Jun 2024 20:05:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6671e8453bd24dfec74cee8225979125%40news.povray.org%3E/#%3Cweb.6671e8453bd24dfec74cee8225979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6671e8453bd24dfec74cee8225979125%40news.povray.org%3E/#%3Cweb.6671e8453bd24dfec74cee8225979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[kurtz le pirate] Re: Pappus Chain [666 days 22 hours and 45 minutes ago]</title>
		<description>
&lt;pre&gt;On 18/06/2024 00:50, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; And of course, because the Appollonian gasket is a foam, . . .&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; bubbles!&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;


GREAT Bubbles. Very good job.


-- 
Kurtz le pirate
Compagnie de la Banquise
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 18 Jun 2024 15:29:05 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C6671a7c1%241%40news.povray.org%3E/#%3C6671a7c1%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C6671a7c1%241%40news.povray.org%3E/#%3C6671a7c1%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[kurtz le pirate] Re: Pappus Chain [666 days 22 hours and 45 minutes ago]</title>
		<description>
&lt;pre&gt;On 17/06/2024 23:49, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Excellent!&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Now that there's some working SDL, I can try to understand where things went off&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; the rails, and try to make some variations.&lt;/span&gt;


I've updated my page and published the code (at the very bottom).
&amp;lt;http://louisbel.free.fr/scenes/scene038.shtml&amp;gt;


Sorry, still in French
-- 
Kurtz le pirate
Compagnie de la Banquise
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 18 Jun 2024 15:28:16 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C6671a790%241%40news.povray.org%3E/#%3C6671a790%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C6671a790%241%40news.povray.org%3E/#%3C6671a790%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Pappus Chain [667 days 14 hours and 9 minutes ago]</title>
		<description>
&lt;pre&gt;and with a nested gasket, we could do a sort of Sierpinski triangle.

There's some kind of transformation that makes them isomorphic.
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 18 Jun 2024 00:05:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6670ce7d3bd24dfe1f9dae3025979125%40news.povray.org%3E/#%3Cweb.6670ce7d3bd24dfe1f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6670ce7d3bd24dfe1f9dae3025979125%40news.povray.org%3E/#%3Cweb.6670ce7d3bd24dfe1f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Pappus Chain [667 days 15 hours and 19 minutes ago]</title>
		<description>
&lt;pre&gt;And of course, because the Appollonian gasket is a foam, . . .

bubbles!
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 17 Jun 2024 22:55:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6670bdb23bd24dfe1f9dae3025979125%40news.povray.org%3E/#%3Cweb.6670bdb23bd24dfe1f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6670bdb23bd24dfe1f9dae3025979125%40news.povray.org%3E/#%3Cweb.6670bdb23bd24dfe1f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Pappus Chain [667 days 15 hours and 39 minutes ago]</title>
		<description>
&lt;pre&gt;And


#macro DrawCircle (C, PigmNr)

 //#debug concat( &amp;quot;C = &amp;quot;, vstr(3, C, &amp;quot;, &amp;quot;, 0, 3), &amp;quot; \n&amp;quot;)
 //torus {abs(C.z), Line texture {pigment {colour Colours[PigmNr]} finish
{emission 1}} rotate x*90 translate &amp;lt;C.x, C.y, 0&amp;gt;}
 #if (C.z &amp;gt; 0 &amp;amp; C.z &amp;lt; 0.6)
 sphere {0, abs(C.z) scale &amp;lt;1, 1, 1+pow(abs(C.z), 0.001)&amp;gt; texture {pigment
{colour Colours[PigmNr]} finish {specular 0.4}} translate &amp;lt;C.x, C.y, 0&amp;gt;}
 #end
#end
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 17 Jun 2024 22:35:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6670b9d73bd24dfe1f9dae3025979125%40news.povray.org%3E/#%3Cweb.6670b9d73bd24dfe1f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6670b9d73bd24dfe1f9dae3025979125%40news.povray.org%3E/#%3Cweb.6670b9d73bd24dfe1f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Pappus Chain [667 days 15 hours and 39 minutes ago]</title>
		<description>
&lt;pre&gt;But for now...
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 17 Jun 2024 22:35:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6670b9c03bd24dfe1f9dae3025979125%40news.povray.org%3E/#%3Cweb.6670b9c03bd24dfe1f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6670b9c03bd24dfe1f9dae3025979125%40news.povray.org%3E/#%3Cweb.6670b9c03bd24dfe1f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Pappus Chain [667 days 16 hours and 24 minutes ago]</title>
		<description>
&lt;pre&gt;MichaelJF &amp;lt;fri###&amp;nbsp;[at]&amp;nbsp;t-online&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;de&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; It took me a while to understand this weird javascript recursion and I&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; mixed up some - with + or vice versa:&lt;/span&gt;

Excellent!
Now that there's some working SDL, I can try to understand where things went off
the rails, and try to make some variations.

Maybe a nested Appolonian gasket, but also one with circles in between 2
straight lines (circles with infinite radius, curvature of zero, resulting in
&amp;quot;Ford circles)

Thanks so much, Michael!

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 17 Jun 2024 21:50:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6670af7f3bd24dfe1f9dae3025979125%40news.povray.org%3E/#%3Cweb.6670af7f3bd24dfe1f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6670af7f3bd24dfe1f9dae3025979125%40news.povray.org%3E/#%3Cweb.6670af7f3bd24dfe1f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[MichaelJF] Re: Pappus Chain [667 days 18 hours and 20 minutes ago]</title>
		<description>
&lt;pre&gt;Am 16.06.2024 um 13:44 schrieb Bald Eagle:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Ugh.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I tried rewriting from scratch (porting the Javascript code from&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; https://en.wikibooks.org/wiki/Fractals/Apollonian_fractals to SDL)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; and I'm still stuck with that upper left hand portion not being right.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I thought maybe some of the quadratic solution checking in that could would fix&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; things, because saving that code as an SVG file and opening it in a browser&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; works beautifully (and it's FAST!).&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; So, still sitting here with my dunce cap on until I figure out how to wrap my&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; head around what's going wrong with the center coordinates and the recursion&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; queue.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; - BW&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
It took me a while to understand this weird javascript recursion and I 
mixed up some - with + or vice versa:

global_settings {assumed_gamma 1.0 }

#include &amp;quot;colors.inc&amp;quot;

#declare S3 = sqrt(3);

#declare M = 3;
#declare C1 = &amp;lt; 1,  0,  1&amp;gt;+M*(x+y);
#declare C2 = &amp;lt;-1,  0,  1&amp;gt;+M*(x+y);
#declare C3 = &amp;lt; 0, S3,  1&amp;gt;+M*(x+y);


camera {
  location M*&amp;lt;0,0,-2.25&amp;gt;//M*&amp;lt;1, S3/2, -2.25&amp;gt;
  right x*image_width/image_height
  up y
  look_at &amp;lt;0,0,0&amp;gt;//M*&amp;lt;1, S3/2, 0&amp;gt;
  //rotate y*15
}
sky_sphere {pigment {rgb 1}}
light_source {&amp;lt; 0, 0, -150&amp;gt; rgb 1}

#declare Line = 0.005;

cylinder {-x*100, x*100, Line pigment {rgb x}}
cylinder {-y*100, y*100, Line pigment {rgb y}}

#declare k4curvature1 = function (k1, k2, k3) {k1 + k2 + k3 + 2 * sqrt 
(k1*k2 +
k2*k3 + k3*k1)}
#declare k4curvature2 = function (k1, k2, k3) {k1 + k2 + k3 - 2 * sqrt 
(k1*k2 +
k2*k3 + k3*k1)}

#macro Re(Z) Z.x #end
#macro Im(Z) Z.y #end
#macro Cmul(z1, z2)
    &amp;lt;Re(z1)*Re(z2) - Im(z1)*Im(z2), Re(z1)*Im(z2) + Im(z1)*Re(z2)&amp;gt;
#end
#macro Cadd(a,b)
    &amp;lt;Re(a)+Re(b),Im(a)+Im(b)&amp;gt;
#end
#macro Csub(a,b)
    &amp;lt;Re(a)-Re(b),Im(a)-Im(b)&amp;gt;
#end

#macro Csqrt (Z)
  #local m = sqrt ( Re(Z)*Re(Z) + Im(Z)*Im(Z) );
  #local Angle = atan2 (Im(Z), Re(Z)) / 2;
  #local NewZ = sqrt(m)*&amp;lt;cos(Angle), sin(Angle)&amp;gt;;
  NewZ
#end
/*#macro Csqrt(Z)
    #local m = sqrt ( Re(Z)*Re(Z) + Im(Z)*Im(Z) );
    &amp;lt;sqrt((m+Re(Z))/2),abs(Im(Z))/Im(Z)*sqrt((m-Re(Z))/2)&amp;gt;
#end*/


#declare Colours=array[7]{Violet,Blue,Cyan,Green,Yellow,Orange,Red}

#macro DrawCircle (C,PigmNr)
    torus {abs(C.z), Line pigment {colour Colours[PigmNr]} rotate x*90 
translate &amp;lt;C.x, C.y, 0&amp;gt;}
#end


/***********************************************
Edit the seed for other circles or run an animation
#declare Zufall=seed(36730+frame_number);
************************************************/

#declare Zufall=seed(36730+17);

// unit circle
#declare b=&amp;lt;0,0,-1&amp;gt;;

// insert two raqndomly positioned touching circles
#declare tr = 1-rand(Zufall)/2;
#declare pa = pi/2 - asin(rand(Zufall)*(1-tr)/tr);
#declare px = tr * cos(pa);
#declare py = tr * sin(pa);
#declare pr = 1 - tr;
#declare qr = (1 - pr) * (1 - cos(pa + pi/2))  / (1 + pr - (1 - pr) 
*cos(pa + pi/2));
#declare qx = 0;
#declare qy = qr - 1;

#declare p=&amp;lt;px,py,pr&amp;gt;;
#declare q=&amp;lt;qx,qy,qr&amp;gt;;

#declare MinRadius=0.1;

#declare MaxDepth=7;

#macro Kiss(a,b,c,initial,Depth)
    #if (Depth &amp;lt;= MaxDepth)
       #local k1 = 1/a.z; // real
       #local z1 = &amp;lt;a.x,a.y&amp;gt;; // complex
       #local kz1 = Cmul(&amp;lt;k1,0&amp;gt;,z1); // complex

       #local k2 = 1/b.z; // real
       #local z2 = &amp;lt;b.x,b.y&amp;gt;; // complex
       #local kz2 = Cmul(&amp;lt;k2,0&amp;gt;,z2); // complex

       #local k3 = 1/c.z; // real
       #local z3 = &amp;lt;c.x,c.y&amp;gt;; // complex
       #local kz3 = Cmul(&amp;lt;k3,0&amp;gt;,z3); // complex

       #local k4p = k1 + k2 + k3 + 2*sqrt(k1*k2 + k2*k3 + k3*k1); // real
       #local k4m = k1 + k2 + k3 - 2*sqrt(k1*k2 + k2*k3 + k3*k1); // real

       #local kz4p = 
Cadd(Cadd(Cadd(kz1,kz2),kz3),Cmul(&amp;lt;2,0&amp;gt;,Csqrt(Cadd(Cadd(Cmul(kz1,kz2),Cmul(kz2,kz3)),Cmul(kz3,kz1)))));

// complex
       #local kz4m = 
Csub(Cadd(Cadd(kz1,kz2),kz3),Cmul(&amp;lt;2,0&amp;gt;,Csqrt(Cadd(Cadd(Cmul(kz1,kz2),Cmul(kz2,kz3)),Cmul(kz3,kz1)))));

// complex

       #if (k4p &amp;gt; k4m)
          #local k4 = k4p; // real
          #local kz4 = kz4p; // complex
          #local k4b = k4m; // real
          #local kz4b = kz4m; // complex
       #else
          #local k4 = k4m; // real
          #local kz4 = kz4m; // complex
          #local k4b = k4p; // real
          #local kz4b = kz4p; // complex
       #end

       #local cc = &amp;lt;kz4.x/k4 , kz4.y/k4 , abs(1/k4)&amp;gt;; // Circle

       #local dx = a.x - cc.x;
       #local dy = a.y - cc.y;
       #local dr = a.z + cc.z;

       #local dtest=abs(dx*dx + dy*dy - dr*dr);

       #if ( abs(dx*dx + dy*dy - dr*dr) &amp;gt; 0.0001 )
          #local cc = &amp;lt;kz4b.x/k4 , kz4b.y/k4 , abs(1/k4)&amp;gt;;
       #end

       #if (initial)
          #local cc=&amp;lt;kz4b.x/k4b,kz4b.y/k4b,abs(1/k4b)&amp;gt;;
       #end

       DrawCircle(cc,mod(Depth,7))

       Kiss(a,b,cc,false,Depth+1)
       Kiss(a,cc,c,false,Depth+1)
       Kiss(cc,b,c,false,Depth+1)
    #end
#end


DrawCircle(b,0)
DrawCircle(p,0)
DrawCircle(q,0)


Kiss(b,p,q,true,1)
Kiss(b,p,q,false,1)
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 17 Jun 2024 19:53:19 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C6670942f%40news.povray.org%3E/#%3C6670942f%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C6670942f%40news.povray.org%3E/#%3C6670942f%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Pappus Chain [669 days 2 hours and 29 minutes ago]</title>
		<description>
&lt;pre&gt;Ugh.

I tried rewriting from scratch (porting the Javascript code from
https://en.wikibooks.org/wiki/Fractals/Apollonian_fractals to SDL)
and I'm still stuck with that upper left hand portion not being right.

I thought maybe some of the quadratic solution checking in that could would fix
things, because saving that code as an SVG file and opening it in a browser
works beautifully (and it's FAST!).

So, still sitting here with my dunce cap on until I figure out how to wrap my
head around what's going wrong with the center coordinates and the recursion
queue.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 16 Jun 2024 11:45:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.666ed02c3bd24dfe1f9dae3025979125%40news.povray.org%3E/#%3Cweb.666ed02c3bd24dfe1f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.666ed02c3bd24dfe1f9dae3025979125%40news.povray.org%3E/#%3Cweb.666ed02c3bd24dfe1f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[kurtz le pirate] Re: Pappus Chain [670 days 4 hours and 39 minutes ago]</title>
		<description>
&lt;pre&gt;On 12/06/2024 17:52, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I'll bet that would amazing done in glass with caustics.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Or as stone spheres in a field of grass.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;

After grass and stones, glass.




-- 
Kurtz le pirate
Compagnie de la Banquise
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 15 Jun 2024 09:35:03 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C666d6047%40news.povray.org%3E/#%3C666d6047%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C666d6047%40news.povray.org%3E/#%3C666d6047%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Pappus Chain [670 days 21 hours and 42 minutes ago]</title>
		<description>
&lt;pre&gt;On 14/06/2024 19:30, yesbird wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; This guy is working on similar things and making interactive toys:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; https://observablehq.com/@esperanc/3d-apollonian-sphere-packings&lt;/span&gt;

Also this paper may be of interest:
https://arxiv.org/pdf/1609.03811
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 14 Jun 2024 16:31:56 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C666c707c%241%40news.povray.org%3E/#%3C666c707c%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C666c707c%241%40news.povray.org%3E/#%3C666c707c%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Pappus Chain [670 days 21 hours and 43 minutes ago]</title>
		<description>
&lt;pre&gt;On 14/06/2024 16:30, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; https://en.wikibooks.org/wiki/Fractals/Apollonian_fractals&lt;/span&gt;

This guy is working on similar things and making interactive toys:
https://observablehq.com/@esperanc/3d-apollonian-sphere-packings
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 14 Jun 2024 16:30:26 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C666c7022%241%40news.povray.org%3E/#%3C666c7022%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C666c7022%241%40news.povray.org%3E/#%3C666c7022%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[kurtz le pirate] Re: Pappus Chain [670 days 22 hours and 41 minutes ago]</title>
		<description>
&lt;pre&gt;A few quick explanations for those interested.
(I'd probably do a page on my site... but I'm so far behind ;) )


I haven't used Bald Eagle's inversion method, which looks very
interesting and promising.


The reference being the WIKIPEDIA page
&amp;lt;https://en.wikipedia.org/wiki/Pappus_chain&amp;gt;



-- The two basic radii :
#declare BigRadius = SIZE; // AB/2
#declare SmallRadius = SIZE*3/4; // AC/2


-- For the first circle (CB):
#declare cx = SmallRadius*2 + BigRadius - SmallRadius;
#declare r = BigRadius - SmallRadius;
DrawCircle(cx, 0, r)


-- Next, a simple loop :
#declare r = SmallRadius/BigRadius;
#declare NthRadius = r;

#declare n = 1;
#while ( NthRadius &amp;gt; MIN_RADIUS )
  #declare divisor = n*n*(1-r)*(1-r)+r;
  #declare xx = 2*BigRadius*r*(1+r)/(2*divisor);
  #declare yy = 2*BigRadius*n*r*(1-r)/divisor;
  #declare NthRadius = 2*BigRadius*r*(1-r)/(2*divisor);

  DrawCircle(xx, +yy, NthRadius)
  DrawCircle(xx, -yy, NthRadius) // symmetrically

  #declare n = n + 1;
#end


The first tests were in 2D. So I made a macro that drew circles :
#macro DrawCircle(X,Y,R,C)
 torus { R, rLine pigment { color C } rotate 90*x translate &amp;lt;X,Y,0&amp;gt; }
#end


Transformed for 3d :
#macro DrawCircle(X,Y,R,C)
 sphere { &amp;lt;X,R,Y&amp;gt;, R pigment { color C } }
#end



A yes, I forgot! The end of the loop is controlled by the constancy
MIN_RADIUS. If the radius is &amp;quot;too&amp;quot; small, we stop.

#declare MIN_RADIUS = 0.50; for the stone spheres





-- 
Kurtz le pirate
Compagnie de la Banquise
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 14 Jun 2024 15:32:43 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C666c629b%241%40news.povray.org%3E/#%3C666c629b%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C666c629b%241%40news.povray.org%3E/#%3C666c629b%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Pappus Chain [671 days and 39 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I recall in one of the sites that I stumbled across, there was a method for&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; calculating how many circles there were for any given level of recursion.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; That might be a nice addition to the debug stream, as well as warning/sanity&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; check before a render is attempted to be started with too high a level of&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; recursion for the system it's being run on.&lt;/span&gt;

https://en.wikibooks.org/wiki/Fractals/Apollonian_fractals
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 14 Jun 2024 13:35:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.666c45e03bd24dfe95196c9d25979125%40news.povray.org%3E/#%3Cweb.666c45e03bd24dfe95196c9d25979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.666c45e03bd24dfe95196c9d25979125%40news.povray.org%3E/#%3Cweb.666c45e03bd24dfe95196c9d25979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Pappus Chain [671 days 3 hours and 14 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Well, I got partway there.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I'm botching _something_ up (as usual).&lt;/span&gt;

I almost got it.
Removing one of the circle solutions cleaned up a bunch of unnecessary circles,
but the circles for the top right area are in the wrong place.
I'm wondering if there's some sign or floating point thing going on.

This is 5 levels of recursion.

Minor changes to recursion macro:
(mostly just 2 changes to an array index, restoring them to my initial values)

#macro Gasket (RecursionLevels)
 #for (L, 0, RecursionLevels)
  #local Triplets = dimension_size (Queue, 1)-1;
  #for (T, 0, Triplets)
   DrawCircles (Queue [T])
  #end

  #declare NextQueue = array;
  #local QIndex = 0;
  #for (T, 0, Triplets)
   #local triplet = Queue [T];
   #local c1 = triplet [0];
   #local c2 = triplet [1];
   #local c3 = triplet [2];
   #local k41 = k4curvature1 (1/c1.z, 1/c2.z, 1/c3.z);
   #local k42 = k4curvature2 (1/c1.z, 1/c2.z, 1/c3.z);
   #declare new1 = ComplexDescartes (c1, c2, c3, k41);
   #declare new2 = ComplexDescartes (c1, c2, c3, k42);

   #local T1 = array [3] {c1, c2, new1[0]};
   #local T2 = array [3] {c2, c3, new1[0]};//
   #local T3 = array [3] {c3, c1, new1[0]};//
   #local T4 = array [3] {c1, c2, new2[1]};
   #local T5 = array [3] {c2, c3, new2[1]};
   #local T6 = array [3] {c3, c1, new2[1]};
   //#local T6 = array [3] {c2, c3, new1[1]};

   #declare NextQueue [QIndex] = T1;
   #local QIndex = QIndex + 1;
   #declare NextQueue [QIndex] = T2;
   #local QIndex = QIndex + 1;
   #declare NextQueue [QIndex] = T3;

   #local QIndex = QIndex + 1;
   #declare NextQueue [QIndex] = T4;
   //#local QIndex = QIndex + 1;
   //#declare NextQueue [QIndex] = T5;
   #local QIndex = QIndex + 1;
   #declare NextQueue [QIndex] = T6;

  #end // end for T

  #declare Queue = NextQueue;
 #end // end for L
#end
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 14 Jun 2024 11:00:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.666c219d3bd24dfe1f9dae3025979125%40news.povray.org%3E/#%3Cweb.666c219d3bd24dfe1f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.666c219d3bd24dfe1f9dae3025979125%40news.povray.org%3E/#%3Cweb.666c219d3bd24dfe1f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Pappus Chain [671 days 12 hours and 4 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I just started watching Daniel Schiffman's video this morning - I was hoping to&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; start writing some code based on it after work.&lt;/span&gt;

Well, I got partway there.
I'm botching _something_ up (as usual).

I need to stop blindly hacking and do some more thinking and learning.


#version 3.8;
global_settings {assumed_gamma 1.0 }

#declare S3 = sqrt(3);

#declare M = 3;
#declare C1 = &amp;lt; 1,  0,  1&amp;gt;+M*(x+y);
#declare C2 = &amp;lt;-1,  0,  1&amp;gt;+M*(x+y);
#declare C3 = &amp;lt; 0, S3,  1&amp;gt;+M*(x+y);


camera {
 location M*&amp;lt;1, S3/2, -2.25&amp;gt;
 right x*image_width/image_height
 up y
 look_at M*&amp;lt;1, S3/2, 0&amp;gt;
 //rotate y*15
}
sky_sphere {pigment {rgb 1}}
light_source {&amp;lt; 0, 0, -150&amp;gt; rgb 1}

#declare Line = 0.005;

cylinder {-x*100, x*100, Line pigment {rgb x}}
cylinder {-y*100, y*100, Line pigment {rgb y}}

#declare k4curvature1 = function (k1, k2, k3) {k1 + k2 + k3 + 2 * sqrt (k1*k2 +
k2*k3 + k3*k1)}
#declare k4curvature2 = function (k1, k2, k3) {k1 + k2 + k3 - 2 * sqrt (k1*k2 +
k2*k3 + k3*k1)}



// Make every circle a vector: &amp;lt;Real, Imaginary, Radius&amp;gt;
// Start out with &amp;lt;R, I, 0&amp;gt; to do math, and then tack on radius in last step
// That way add, subtract, and scalar multiplication are all just operations on
a vector

#macro Re(Z) Z.x #end
#macro Im(Z) Z.y #end
#macro Mult(z1, z2) &amp;lt;Re(z1)*Re(z2) - Im(z1)*Im(z2), Re(z1)*Im(z2) +
Im(z1)*Re(z2)&amp;gt; #end

#macro Sqrt (Z)
 #local m = sqrt ( Re(Z)*Re(Z) + Im(Z)*Im(Z) );
 #local Angle = atan2 (Im(Z), Re(Z)) / 2;
 #local NewZ = sqrt(m)*&amp;lt;cos(Angle), sin(Angle)&amp;gt;;
 NewZ
#end

#macro ComplexDescartes (C1, C2, C3, k4)
 // z41 = (z1*k1 + z2*k2 + z3*k3 + 2 * sqrt (z1*k1*z2*k2 + z2*k2*z3*k3 +
z3*k3*z1*k1)) / k4
 // z42 = (z1*k1 + z2*k2 + z3*k3 - 2 * sqrt (z1*k1*z2*k2 + z2*k2*z3*k3 +
z3*k3*z1*k1)) / k4
 #local k1 = 1/C1.z;
 #local k2 = 1/C2.z;
 #local k3 = 1/C3.z;

 #local z1 = &amp;lt;C1.x, C1.y&amp;gt;;
 #local z2 = &amp;lt;C2.x, C2.y&amp;gt;;
 #local z3 = &amp;lt;C3.x, C3.y&amp;gt;;

 #local zk1 = z1*k1;
 #local zk2 = z2*k2;
 #local zk3 = z3*k3;

 #local Sum = zk1 + zk2 + zk3;
 #local Square = Mult (zk1, zk2) + Mult (zk2, zk3) + Mult (zk3, zk1);
 #local Root = Sqrt (Square);

 #local z41 = (Sum + 2*Root) / k4;
 #local z42 = (Sum - 2*Root) / k4;

 #local Z41 = z41 + &amp;lt;0, 0, 1/k4&amp;gt;;
 #local Z42 = z42 + &amp;lt;0, 0, 1/k4&amp;gt;;

 #local Result = array [2] {Z41, Z42};

 Result
#end

#macro Circle (C)
 torus {abs(C.z), Line pigment {rgb 0} rotate x*90 translate &amp;lt;C.x, C.y, 0&amp;gt;}
#end








#declare k41 = k4curvature1 (1/C1.z, 1/C2.z, 1/C3.z);
#declare k42 = k4curvature2 (1/C1.z, 1/C2.z, 1/C3.z);

#declare C41 = ComplexDescartes (C1, C2, C3, k41);
#declare C42 = ComplexDescartes (C1, C2, C3, k42);

#if (0)
Circle (C1)
Circle (C2)
Circle (C3)
Circle (C41[0])
Circle (C42[1])
#end

#macro DrawCircles (Array)
 #local Circles = dimension_size (Array, 1)-1;
 #for (C, 0, Circles)
  Circle (Array [C])
 #end
#end

#declare AllCircles = array;
#declare AllCircles [0] = C1;
#declare AllCircles [1] = C2;
#declare AllCircles [2] = C3;

#declare Queue = array;
#declare Queue [0] = array [3] {C1, C2, C3};

//#declare Queue [0] = C1;
//#declare Queue [1] = C2;
//#declare Queue [2] = C3;

#declare Levels = 3;

#macro Gasket (RecursionLevels)
 #for (L, 0, RecursionLevels)
  #local Triplets = dimension_size (Queue, 1)-1;
  #for (T, 0, Triplets)
   DrawCircles (Queue [T])
  #end

  #declare NextQueue = array;
  #local QIndex = 0;
  #for (T, 0, Triplets)
   #local triplet = Queue [T];
   #local c1 = triplet [0];
   #local c2 = triplet [1];
   #local c3 = triplet [2];
   #local k41 = k4curvature1 (1/c1.z, 1/c2.z, 1/c3.z);
   #local k42 = k4curvature2 (1/c1.z, 1/c2.z, 1/c3.z);
   #declare new1 = ComplexDescartes (c1, c2, c3, k41);
   #declare new2 = ComplexDescartes (c1, c2, c3, k42);

   #local T1 = array [3] {c1, c2, new1[0]};
   #local T2 = array [3] {c2, c3, new1[1]};
   #local T3 = array [3] {c3, c1, new1[1]};
   #local T4 = array [3] {c1, c2, new2[1]};
   #local T5 = array [3] {c2, c3, new2[1]};
   #local T6 = array [3] {c3, c1, new2[1]};
   //#local T6 = array [3] {c2, c3, new1[1]};

   #declare NextQueue [QIndex] = T1;
   #local QIndex = QIndex + 1;
   #declare NextQueue [QIndex] = T2;
   #local QIndex = QIndex + 1;
   #declare NextQueue [QIndex] = T3;

   #local QIndex = QIndex + 1;
   #declare NextQueue [QIndex] = T4;
   #local QIndex = QIndex + 1;
   #declare NextQueue [QIndex] = T5;
   #local QIndex = QIndex + 1;
   #declare NextQueue [QIndex] = T6;

  #end // end for T

  #declare Queue = NextQueue;
 #end // end for L
#end

Gasket (Levels)
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 14 Jun 2024 02:10:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.666ba5763bd24dfe1f9dae3025979125%40news.povray.org%3E/#%3Cweb.666ba5763bd24dfe1f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.666ba5763bd24dfe1f9dae3025979125%40news.povray.org%3E/#%3Cweb.666ba5763bd24dfe1f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[William F Pokorny] Re: Pappus Chain [671 days 14 hours and 38 minutes ago]</title>
		<description>
&lt;pre&gt;On 6/13/24 10:17, kurtz le pirate wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; wip here :&amp;lt;http://louisbel.free.fr/scenes/scene038.shtml&amp;gt;&lt;/span&gt;

Cool!

Bill P.
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 13 Jun 2024 23:35:26 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C666b823e%241%40news.povray.org%3E/#%3C666b823e%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C666b823e%241%40news.povray.org%3E/#%3C666b823e%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Pappus Chain [671 days 20 hours and 30 minutes ago]</title>
		<description>
&lt;pre&gt;On 13/06/2024 17:17, kurtz le pirate wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I'm working on it too.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; wip here : &amp;lt;http://louisbel.free.fr/scenes/scene038.shtml&amp;gt;&lt;/span&gt;

Really nice !
Especially metal-like construction on black.
Also math surfaces in Scenes menu attracted my attention - I love them
also.
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 13 Jun 2024 17:44:05 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C666b2fe5%241%40news.povray.org%3E/#%3C666b2fe5%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C666b2fe5%241%40news.povray.org%3E/#%3C666b2fe5%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Pappus Chain [671 days 20 hours and 49 minutes ago]</title>
		<description>
&lt;pre&gt;kurtz le pirate &amp;lt;kur###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I'm working on it too.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; wip here : &amp;lt;http://louisbel.free.fr/scenes/scene038.shtml&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; (in french for the moment)&lt;/span&gt;

Very nice.  Excellent work as always!
I see you've been going over the same references as I have.

I just started watching Daniel Schiffman's video this morning - I was hoping to
start writing some code based on it after work.

I'm still amazed that &amp;quot;Beyond the Descartes Circle Theorem&amp;quot; was only published
in 2001!  :O

I recall in one of the sites that I stumbled across, there was a method for
calculating how many circles there were for any given level of recursion.
That might be a nice addition to the debug stream, as well as warning/sanity
check before a render is attempted to be started with too high a level of
recursion for the system it's being run on.

It would also be nice to have a few ways to generate the output, so that the
gasket could be further used in a more complex scene.

1. Someone might want the tori to overlap such that the centers of their minor
radii are coincident/tangent, OR they might want the outside surfaces of the
tori to be tangent.

2. The coloration of each level of recursion ought to be able to be specified by
something like an array.  That way different textures and normals, etc can be
applied.  Also, it could then be rendered and subsequently used as a
heightfield.

3. There might be a desire to texture the circles based on their radius, or from
the distance from the center of the outer circle.

I've also found PDF and djvu copies of &amp;quot;Indra's Pearls&amp;quot; on the web, and they
have some very interesting algorithms to render a wide variety of variations on
this theme.

The authors even mention that some madman might be able to do this in Excel -
which is what I'm currently working on, since it's the only tool I have
available during the day.  :D

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 13 Jun 2024 17:25:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.666b2ad03bd24dfe57579a6b25979125%40news.povray.org%3E/#%3Cweb.666b2ad03bd24dfe57579a6b25979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.666b2ad03bd24dfe57579a6b25979125%40news.povray.org%3E/#%3Cweb.666b2ad03bd24dfe57579a6b25979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[jr] Re: Pappus Chain [671 days 21 hours and 29 minutes ago]</title>
		<description>
&lt;pre&gt;hi,

kurtz le pirate &amp;lt;kur###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; wip here : {...}&lt;/span&gt;

the &amp;quot;l'image en noir et blanc&amp;quot; does it for me, v nice.


regards, jr.
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 13 Jun 2024 16:45:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.666b217d3bd24dfe869a24876cde94f1%40news.povray.org%3E/#%3Cweb.666b217d3bd24dfe869a24876cde94f1%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.666b217d3bd24dfe869a24876cde94f1%40news.povray.org%3E/#%3Cweb.666b217d3bd24dfe869a24876cde94f1%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[kurtz le pirate] Re: Pappus Chain [671 days 23 hours and 3 minutes ago]</title>
		<description>
&lt;pre&gt;On 12/06/2024 17:52, Bald Eagle wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; That's a beauty.&lt;/span&gt;
Thanks

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I'll bet that would amazing done in glass with caustics.&lt;/span&gt;

Hum.. hum... lot of work.
I have to think about it

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Or as stone spheres in a field of grass.&lt;/span&gt;

Easier and faster. First test attached.
Does it match your idea ?


Note :
- Random textures from &amp;quot;stones.inc&amp;quot; without optimization
- Makegrass macro from Gilles Tran


-- 
Kurtz le pirate
Compagnie de la Banquise
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 13 Jun 2024 15:10:29 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C666b0be5%40news.povray.org%3E/#%3C666b0be5%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C666b0be5%40news.povray.org%3E/#%3C666b0be5%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[kurtz le pirate] Re: Pappus Chain [671 days 23 hours and 56 minutes ago]</title>
		<description>
&lt;pre&gt;On 12/06/2024 17:52, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I still need to work out some good code for an Appolonian gasket.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; (Unless you beat me to it  ;)  )&lt;/span&gt;



I'm working on it too.

wip here : &amp;lt;http://louisbel.free.fr/scenes/scene038.shtml&amp;gt;
(in french for the moment)





-- 
Kurtz le pirate
Compagnie de la Banquise
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 13 Jun 2024 14:17:12 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C666aff68%241%40news.povray.org%3E/#%3C666aff68%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C666aff68%241%40news.povray.org%3E/#%3C666aff68%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Pappus Chain [672 days 20 hours and 59 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I'll bet that would amazing done in glass with caustics.&lt;/span&gt;

Check out:

https://www.dumas.io/limset3d/
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 12 Jun 2024 17:15:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6669d7783bd24dfe9274a88425979125%40news.povray.org%3E/#%3Cweb.6669d7783bd24dfe9274a88425979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6669d7783bd24dfe9274a88425979125%40news.povray.org%3E/#%3Cweb.6669d7783bd24dfe9274a88425979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Pappus Chain [672 days 22 hours and 19 minutes ago]</title>
		<description>
&lt;pre&gt;kurtz le pirate &amp;lt;kur###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; On 12/06/2024 03:03, Bald Eagle wrote:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; Ever inspired by the talented Francesco De Comite, I made a 3D version as a&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; little doodle.&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; You have contaminated me ;)&lt;/span&gt;

You spelled &amp;quot;inspired&amp;quot; wrong.   :P

That's a beauty.
I'll bet that would amazing done in glass with caustics.
Or as stone spheres in a field of grass.

I still need to work out some good code for an Appolonian gasket.
(Unless you beat me to it  ;)  )

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 12 Jun 2024 15:55:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6669c4423bd24dfe72a1419a25979125%40news.povray.org%3E/#%3Cweb.6669c4423bd24dfe72a1419a25979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6669c4423bd24dfe72a1419a25979125%40news.povray.org%3E/#%3Cweb.6669c4423bd24dfe72a1419a25979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[kurtz le pirate] Re: Pappus Chain [672 days 23 hours and 39 minutes ago]</title>
		<description>
&lt;pre&gt;On 12/06/2024 03:03, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Ever inspired by the talented Francesco De Comite, I made a 3D version as a&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; little doodle.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;

You have contaminated me ;)





-- 
Kurtz le pirate
Compagnie de la Banquise
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 12 Jun 2024 14:34:36 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C6669b1fc%241%40news.povray.org%3E/#%3C6669b1fc%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C6669b1fc%241%40news.povray.org%3E/#%3C6669b1fc%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Pappus Chain [673 days 13 hours and 9 minutes ago]</title>
		<description>
&lt;pre&gt;Ever inspired by the talented Francesco De Comite, I made a 3D version as a
little doodle.
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 12 Jun 2024 01:05:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6668f3e13bd24dfe1f9dae3025979125%40news.povray.org%3E/#%3Cweb.6668f3e13bd24dfe1f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6668f3e13bd24dfe1f9dae3025979125%40news.povray.org%3E/#%3Cweb.6668f3e13bd24dfe1f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Pappus Chain [686 days 12 hours and 19 minutes ago]</title>
		<description>
&lt;pre&gt;So that's very cool, and I wondered what it would look like if rendered as a
whole sphere, maybe with a glass texture and some sort of variation of the color
- perhaps determined by the Manhattan distance from the center.

I just used a quick, textured box, and the larger the inversion circle, the
smaller / more compact the pattern.   Patterns jump out at different scales.
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 30 May 2024 01:55:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6657dbbe3bd24dfe1f9dae3025979125%40news.povray.org%3E/#%3Cweb.6657dbbe3bd24dfe1f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6657dbbe3bd24dfe1f9dae3025979125%40news.povray.org%3E/#%3Cweb.6657dbbe3bd24dfe1f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Appolonian Gasket [686 days 12 hours and 24 minutes ago]</title>
		<description>
&lt;pre&gt;I was playing with the code found here:

https://gist.github.com/stla/6fcc3ab559d1a9e491a47f1ec6199d3f

And came up with a fun variation.
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 30 May 2024 01:50:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6657daed748274971f9dae3025979125%40news.povray.org%3E/#%3Cweb.6657daed748274971f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6657daed748274971f9dae3025979125%40news.povray.org%3E/#%3Cweb.6657daed748274971f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[William F Pokorny] Re: Pappus Chain [686 days 18 hours and 50 minutes ago]</title>
		<description>
&lt;pre&gt;On 5/29/24 06:54, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; You can invert anything, even whole patterns, like so:&lt;/span&gt;

Thanks for posting more detailed code. I played a little - and it's cool 
- though the results kinda twist my head around at times. :-)

Attached is a slice of a sphere to the -z side of the x,y plane where 
the radius of a f_sphere() is getting 'inverted / chopped' with your 
'Checker_Inv()' (I also clamped the maximum Inversion() value to 15). 
The sides sliced at the inversions don't render cleanly with the 
isosurface, but we still end up with an interesting looking shape.

A little surprised it worked as well as it did...

Bill P.

FYI. I did get a few divisions by zero from Inversion() until I added 
some off grid, anti-directional, numerical fuzz to CenterX, CenterY and 
CenterZ. This might be due how my yuqk AA works compared to the 
officially released AA.
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 29 May 2024 19:23:51 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C665780c7%241%40news.povray.org%3E/#%3C665780c7%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C665780c7%241%40news.povray.org%3E/#%3C665780c7%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Pappus Chain [687 days 3 hours and 19 minutes ago]</title>
		<description>
&lt;pre&gt;William F Pokorny &amp;lt;ano###&amp;nbsp;[at]&amp;nbsp;anonymous&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;org&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Cool!&lt;/span&gt;


Isn't it?

You can invert anything, even whole patterns, like so:

#declare Inversion = function {Radius*Radius / ( pow (x-CenterX, 2) + pow
(y-CenterY, 2) + pow (z-CenterZ, 2))}

#declare Checker_Inv = function {
 Checker (
  x*Inversion (x, y, z),
  y*Inversion (x, y, z),
  z*Inversion (x, y, z)
 ).red
}

plane {z, 0 pigment {function {Checker_Inv (x, y, z)}}}


I was trying to figure out a way to plug this into a matrix transform, but
POV-Ray doesn't allow that kind of thing.

/*
#declare M_Inversion =
function {
 transform {
  matrix &amp;lt;
   Inversion (x, y, z), 0, 0,
   0, Inversion (x, y, z), 0,
   0, 0, Inversion (x, y, z),
   0, 0, 0
  &amp;gt;
 }
}
*/
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 29 May 2024 10:55:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.665709583bd24dfe1f9dae3025979125%40news.povray.org%3E/#%3Cweb.665709583bd24dfe1f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.665709583bd24dfe1f9dae3025979125%40news.povray.org%3E/#%3Cweb.665709583bd24dfe1f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[William F Pokorny] Re: Pappus Chain [687 days 5 hours and 49 minutes ago]</title>
		<description>
&lt;pre&gt;On 5/28/24 19:41, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; And out pops a Pappus chain.&lt;/span&gt;
Cool!

Bill P.
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 29 May 2024 08:24:33 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C6656e641%241%40news.povray.org%3E/#%3C6656e641%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C6656e641%241%40news.povray.org%3E/#%3C6656e641%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Pappus Chain [687 days 14 hours and 29 minutes ago]</title>
		<description>
&lt;pre&gt;I threw together this little inversive geometry doodle last night to just make
something fun after a long while.

I might do some Steiner porisms and Appolonian gasket type stuff at some point.
Hoping some hyperbolic geometry on a Poisson disk.

I think a plane-filling Appolonian gasket pattern would be super cool, with an
inversion iteration level as a pattern argument.

Anyway, what's going on here is that things that are defined IN the gray circle,
get inverted to the outside of the circle.  Circles not passing through the
center of the inversion circle stay circles, and circles passing through the
center get inverted to lines (circles of infinite radius).  Tangency is
preserved.

Likewise, objects defined outside of the circle get inverted to the inside of
the gray circle.

The closer things are to the circle, the closer they are inverted, and the
closer they are to the center, the farther away they are, and the center maps to
&amp;quot;a point at infinity&amp;quot;.

Rather than doing several pages of Euclidean geometry like Pappus, we use Felix
Klein's inversive geometry to leverage the special properties mentioned above.

We make 2 circles that pass through the center, and so get mapped to lines.
A circle tangent to both of those circles (blue) gets mapped to a circle outside
the inversion circle, and is tangent to the 2 lines from the inverted circles.
Then, since all of the subsequent circles are tangent to both of the circles and
the small circle next to it, they are easily made as circles outside the
inversion circle that are all just stacked circles of the same radius - they are
tangent to both lines and the circles next to them.
So when they get inverted to the inside of the circle, they preserve those
properties of tangency.

And out pops a Pappus chain.  Easy peasy.

- BE
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 28 May 2024 23:45:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.66566baf586303711f9dae3025979125%40news.povray.org%3E/#%3Cweb.66566baf586303711f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.66566baf586303711f9dae3025979125%40news.povray.org%3E/#%3Cweb.66566baf586303711f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Photon mapping calculation limited to 8 thre... [709 days 22 hours and 56 minutes ago]</title>
		<description>
&lt;pre&gt;On 06/05/2024 18:05, Alain Martel wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; To the best of my knowledge : Currently, it is not possible to divide &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; that process between several threads. The algorithm used is strictly &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; linear and can't get split between multiple threads.&lt;/span&gt;

Thanks, Alan, I will take it into account.
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 6 May 2024 15:17:46 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C6638f49a%241%40news.povray.org%3E/#%3C6638f49a%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C6638f49a%241%40news.povray.org%3E/#%3C6638f49a%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Alain Martel] Re: Photon mapping calculation limited to 8 thre... [709 days 23 hours and 8 minutes ago]</title>
		<description>
&lt;pre&gt;Le 2024-05-06 &amp;#195;&amp;#160; 07:54, yesbird a &amp;#195;&amp;#169;crit&amp;#194;&amp;#160;:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Hi, all !&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; While rendering large number of images on server with photon mapping&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; techniques I discovered, that only 8 kernels are used in time of&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; photons calculation step, while on tracing step all 40 kernels are&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; loaded.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Is there a way to use more threads for photon calculation to improve&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; performance ?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Thanks in advance.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; -- &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; YB.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
So, you have one light and 8 target objects, or 2 lights and 4 target 
objects, or 4 lights and 2 target objects or 8 lights and 1 target object.

The maximum number of threads used while photon mapping is the product 
of the number of light_source by the number of objects with a target block.
To the best of my knowledge : Currently, it is not possible to divide 
that process between several threads. The algorithm used is strictly 
linear and can't get split between multiple threads.
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 6 May 2024 15:05:42 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C6638f1c6%241%40news.povray.org%3E/#%3C6638f1c6%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C6638f1c6%241%40news.povray.org%3E/#%3C6638f1c6%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Photon mapping calculation limited to 8 threads [710 days 2 hours and 19 minutes ago]</title>
		<description>
&lt;pre&gt;Hi, all !

While rendering large number of images on server with photon mapping
techniques I discovered, that only 8 kernels are used in time of
photons calculation step, while on tracing step all 40 kernels are
loaded.

Is there a way to use more threads for photon calculation to improve
performance ?

Thanks in advance.
--
YB.
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 6 May 2024 11:54:42 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C6638c502%40news.povray.org%3E/#%3C6638c502%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C6638c502%40news.povray.org%3E/#%3C6638c502%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Leroy] Re: Comparing colors specified by byte-value usi... [714 days 19 hours and 59 minutes ago]</title>
		<description>
&lt;pre&gt;When I was playing with palettes this is  what I use to gather the colors

#declare Imagemap=pigment{image_map{tga &amp;quot;EarthTopography.tga&amp;quot; gamma 1}}
#declare FnA = function {pigment {Imagemap scale&amp;lt;Imagewidth,Imageheight,1&amp;gt;}}

   a&amp;amp;b are integers 0&amp;lt;= a &amp;lt;Imagewidth 0&amp;lt;= b &amp;lt;Imageheight
    #declare FV=FnA(a,b,1);
    #declare C1=int(FV.x*255+.5);//red
    #declare C2=int(FV.y*255+.5);//green
    #declare C3=int(FV.z*255+.5);//blue

 These integers was used to sort colors into a 256 element palette.


  You may notice that I scale the image function very large and that I rounded
up the fraction that the function returned.

Hope this helps.

Have Fun!
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 1 May 2024 18:15:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6632853588fdbe378177b427f712fc00%40news.povray.org%3E/#%3Cweb.6632853588fdbe378177b427f712fc00%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6632853588fdbe378177b427f712fc00%40news.povray.org%3E/#%3Cweb.6632853588fdbe378177b427f712fc00%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Comparing colors specified by byte-value usi... [714 days 20 hours and 39 minutes ago]</title>
		<description>
&lt;pre&gt;kurtz le pirate &amp;lt;kur###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I quickly coded a test. The result (of little interest) is attached, but&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I think the problem lies in the precision/tolerance of the calculations.&lt;/span&gt;

Yes, that's what I was thinking as well.


&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I created this macro, which compares the source color with the chosen&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; color, introducing a &amp;quot;tolerance&amp;quot; variable :&lt;/span&gt;

That's indeed the kind of thing I was looking for.

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; If the color is close to the one defined, I make a higher box:&lt;/span&gt;

So you are definitely recognizing the peach color separately from the other
colors.

I'm wondering what it would look like if you took Ricky's advice and expressed
the eval_pigment results as both rgb and srgb-converted values and used those
for your comparison, and output the results to the #debug stream.

(And I still like your HSV idea - I definitely think it's more intuitive and
versatile for how I'll be using color coded information)

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 1 May 2024 17:35:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.66327d1988fdbe37e573981225979125%40news.povray.org%3E/#%3Cweb.66327d1988fdbe37e573981225979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.66327d1988fdbe37e573981225979125%40news.povray.org%3E/#%3Cweb.66327d1988fdbe37e573981225979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[kurtz le pirate] Re: Comparing colors specified by byte-value usi... [714 days 21 hours and 11 minutes ago]</title>
		<description>
&lt;pre&gt;On 01/05/2024 16:05, Bald Eagle wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; When I try it with that last peach color, using if(EvalPigmentColor =&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ExcelByteColor/255), it doesn't work.&lt;/span&gt;

ok, ok, I understand better the problem.

I quickly coded a test. The result (of little interest) is attached, but
I think the problem lies in the precision/tolerance of the calculations.


I defined the pigment like this (but you know this) :

#declare pigmentSize = 5;
#declare myPigment = pigment {
 image_map {
  png &amp;quot;excel rgb colors&amp;quot;
  map_type 0
  interpolate 2
  }
 scale pigmentSize
 }


The purpose of the test is to give a greater height for pixels whose
color is peach. Several tries and it didn't work.



I created this macro, which compares the source color with the chosen
color, introducing a &amp;quot;tolerance&amp;quot; variable :

#macro CheckColor(thisCol, targetCol, tol)
 ((abs(thisCol.red*255-targetCol.red)&amp;lt;=tol) &amp;amp;
  (abs(thisCol.green*255-targetCol.green)&amp;lt;=tol) &amp;amp;
  (abs(thisCol.blue*255-targetCol.blue)&amp;lt;=tol) )
#end


Two variables:
#declare TargetColor = rgb &amp;lt;248, 203, 173&amp;gt;; // peach color
#declare Tolerance = 16; // this parameter is very very sensitive



In the image constitution, I retrieve the color of the source image:
 #declare myRGB = eval_pigment(myPigment, &amp;lt;xIndex, zIndex, 0&amp;gt;);


If the color is close to the one defined, I make a higher box:
 box {
  &amp;lt;2*xIndex-steep, 0, 2*zIndex-steep&amp;gt;, &amp;lt;2*xIndex + steep,
0.05*(CheckColor(myRGB, TargetColor ,Tolerance)?10:1), 2*zIndex + steep&amp;gt;
 pigment { color myRGB }
 }



This is where the value of the tolerance variable is important !
With value lower than 16 (about 6%) here, there's no higher box.
The code looks bad :(


This &amp;quot;large&amp;quot; tolerance value causes artifacts to appear elsewhere in the
image.



Maybe it's the wrong way...
Can any of this help you?



-- 
Kurtz le pirate
Compagnie de la Banquise
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 1 May 2024 17:02:40 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C663275b0%40news.povray.org%3E/#%3C663275b0%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C663275b0%40news.povray.org%3E/#%3C663275b0%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Cousin Ricky] Re: Comparing colors specified by byte-value usi... [714 days 21 hours and 56 minutes ago]</title>
		<description>
&lt;pre&gt;On 2024-05-01 10:05 (-4), Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; So I fill cells in Excel, copy-paste them into IrfanView to make an image file,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; and then POV-Ray looks at those pixels with eval_pigment.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; When I'm looking for specific colors to determine if something is floor, wall,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; door, etc, it's easy to use the 255 or 0 values and just divide by 255.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; When I try it with that last peach color, using if(EvalPigmentColor =&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ExcelByteColor/255), it doesn't work.&lt;/span&gt;

I can tell from that last peach color that there is no sRGB conversion
going on.  &amp;lt;248, 203, 173&amp;gt; is the literal byte value of the swatch
encoded as sRGB, and &amp;lt;0.97, 0.8, 0.68&amp;gt; is straight division by 255.  In
POV-Ray, srgb &amp;lt;248, 203, 173&amp;gt; / 255 should give you the same value as
eval_pigment(), which I predict will be rgb &amp;lt;0.939, 0.597, 0.418&amp;gt;.  Try:

#local Tmp = srgb ExcelByteColor/255;
if(EvalPigmentColor = Tmp)

POV-Ray does not provide conversion back to sRGB, but if you need that,
I have some tools at https://github.com/CousinRicky/RC3-POV-Tools
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 1 May 2024 16:17:26 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C66326b16%241%40news.povray.org%3E/#%3C66326b16%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C66326b16%241%40news.povray.org%3E/#%3C66326b16%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Comparing colors specified by byte-value usi... [715 days and 4 minutes ago]</title>
		<description>
&lt;pre&gt;kurtz le pirate &amp;lt;kur###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Not sure i understand your problem, but yes, eval_pigment does return a&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; color triplet &amp;lt;red, green, blue&amp;gt; in [0..1] range.&lt;/span&gt;

So I fill cells in Excel, copy-paste them into IrfanView to make an image file,
and then POV-Ray looks at those pixels with eval_pigment.

When I'm looking for specific colors to determine if something is floor, wall,
door, etc, it's easy to use the 255 or 0 values and just divide by 255.

When I try it with that last peach color, using if(EvalPigmentColor =
ExcelByteColor/255), it doesn't work.


&lt;span class=&quot;RC1&quot;&gt;&amp;gt; An idea for your comparisons: turn your color into HSV.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; - Compare the wanted color with the H value plus/minus intervale (degrees).&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; - Reject colors that are below a threshold of S and V.&lt;/span&gt;

It's an unwanted extra layer, but a good idea - I think the clarity of doing the
HSV way would simplify things.

Hopefully I'll have some time to try it all out tonight.

Thanks!

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 1 May 2024 14:10:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.66324c3a88fdbe37e573981225979125%40news.povray.org%3E/#%3Cweb.66324c3a88fdbe37e573981225979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.66324c3a88fdbe37e573981225979125%40news.povray.org%3E/#%3Cweb.66324c3a88fdbe37e573981225979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[kurtz le pirate] Re: Comparing colors specified by byte-value usi... [715 days 6 hours and 21 minutes ago]</title>
		<description>
&lt;pre&gt;On 28/04/2024 15:15, Bald Eagle wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I have an image that I generate by color-filling M$ Excel cells, and&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; copy-pasting that into IrfanView, and saving to .png&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I then want to look at certain colors to determine if it's a walkable path, or&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; an obstacle.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; This works well when I specify colors with all 255's or all 0's, but when I have&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; intermediate shades, I'm trying to use the &amp;lt;0-255, 0-255, 0-255&amp;gt;/255 value as a&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; comparison, but the algorithm is just recognizing it all as unwalkable.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I'll probably have to go back on run some tests to see what eval_pigment returns&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; as an rgb triplet.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I'm wondering if I'm going to have to have to use srgb.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I also was thinking about specifying a narrow _range_ of values to give me a&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; +/-1 wiggle room in byte values when converted to 0-1, so that'll probably&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; involve math.inc and a special use of VEq and a threshold.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Has anyone ever come across a situation like this?&lt;/span&gt;

Not sure i understand your problem, but yes, eval_pigment does return a
color triplet &amp;lt;red, green, blue&amp;gt; in [0..1] range.

An idea for your comparisons: turn your color into HSV.
- Compare the wanted color with the H value plus/minus intervale (degrees).
- Reject colors that are below a threshold of S and V.



IMHO about srgb (and the current discussion in p.b.tutorials) :
This model is useful for calculating the final pixel color value as a
function of object pigment, light and gamma. But not the other way around...




-- 
Kurtz le pirate
Compagnie de la Banquise
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 1 May 2024 07:52:18 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C6631f4b2%241%40news.povray.org%3E/#%3C6631f4b2%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C6631f4b2%241%40news.povray.org%3E/#%3C6631f4b2%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Comparing colors specified by byte-value using P... [718 days and 54 minutes ago]</title>
		<description>
&lt;pre&gt;Continuing with the A* pathfinding project,

(AND perhaps the srgb - rgb thread)

I have an image that I generate by color-filling M$ Excel cells, and
copy-pasting that into IrfanView, and saving to .png

I then want to look at certain colors to determine if it's a walkable path, or
an obstacle.

This works well when I specify colors with all 255's or all 0's, but when I have
intermediate shades, I'm trying to use the &amp;lt;0-255, 0-255, 0-255&amp;gt;/255 value as a
comparison, but the algorithm is just recognizing it all as unwalkable.

I'll probably have to go back on run some tests to see what eval_pigment returns
as an rgb triplet.
I'm wondering if I'm going to have to have to use srgb.
I also was thinking about specifying a narrow _range_ of values to give me a
+/-1 wiggle room in byte values when converted to 0-1, so that'll probably
involve math.inc and a special use of VEq and a threshold.

Has anyone ever come across a situation like this?





I currently have enough worked out where I can randomly place 100 people in the
building and sequentially solve the &amp;quot;maze&amp;quot; to generate a shortest exit-path for
all 100 people.  I'm skipping over 5 pixels of the map at every step to generate
a much smaller &amp;quot;graph&amp;quot; to search, but it still takes about 5 min.

- BE
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 28 Apr 2024 13:20:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.662e4bfa5c0f47661f9dae3025979125%40news.povray.org%3E/#%3Cweb.662e4bfa5c0f47661f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.662e4bfa5c0f47661f9dae3025979125%40news.povray.org%3E/#%3Cweb.662e4bfa5c0f47661f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Cousin Ricky] Re: Is an AOI function possible? [731 days 16 hours and 39 minutes ago]</title>
		<description>
&lt;pre&gt;On 2024-04-14 14:50 (-4), William F Pokorny wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; On 4/13/24 13:18, Cousin Ricky wrote:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; Is it possible to vary a texture by AOI according to a function, rather&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; than by a texture list?&amp;#194;&amp;#160; I don't see anything in the aoi syntax diagrams&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; that allows this, but it would be nice to know if I missed something.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; The 'texture list' wording confuses me. Did you mean texture map?&lt;/span&gt;

Yes, that is what I meant.  I was thinking the list of textures that go
into a texture_map.

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I believe the short answer is no and that you see the situation correctly.&lt;/span&gt;

Thanks.

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; There is the slope pattern which might help depending on what you want&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; to do, but it too has function usage constraints.&lt;/span&gt;

No, the slope pattern is definitely not what I'm looking for.
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 14 Apr 2024 21:34:28 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C661c4be4%241%40news.povray.org%3E/#%3C661c4be4%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C661c4be4%241%40news.povray.org%3E/#%3C661c4be4%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[William F Pokorny] Re: Is an AOI function possible? [731 days 19 hours and 23 minutes ago]</title>
		<description>
&lt;pre&gt;On 4/13/24 13:18, Cousin Ricky wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Is it possible to vary a texture by AOI according to a function, rather&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; than by a texture list?  I don't see anything in the aoi syntax diagrams&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; that allows this, but it would be nice to know if I missed something.&lt;/span&gt;

The 'texture list' wording confuses me. Did you mean texture map?

I believe the short answer is no and that you see the situation correctly.

Bill P.


---
A longer answer is that you can get past the parser's checks which 
prevent the usual direct pattern{} wrap of the aoi pattern.

The parser prevents:

//  #declare Fn02 = function { pattern { aoi } }  // Illegal

The following or, a similar non-yuqk form of it for official POV-Ray, 
slips by the parser checks and runs:

     #declare Pg03 = pigment {
         aoi function_interval
         color_map { [-1 color 0] [+1 color +1] }
     }
     #declare Fn03 = function {
         pigment {
             pigment_pattern { Pg03 }
         }
     }
     #declare Pg99 = pigment { function { Fn03(x,y,z).red } }

However, it does no good because the ray and perturbed normals are not
available via the function route - and so a 0.0 value is always returned 
(.red is always 0.5 above).

FWIW. It is on the yuqk fork's todo list to implement an 'information' 
pattern which, rather than being a true scalar value pattern, will 
return 21 bit float encoded, 3 component vectors for things like ray 
direction, raw and perturbed normals. With this information you'd be 
able to build up user 'aoi' functions of your own for surfaces.

The yuqk fork today has an inbuilt f_normal() function which can be 
employed to determine the raw normal in a value field in a way matching 
that done for isosurfaces. So in limited situations where you might know 
the ray direction (orthographic camera, parallel light rays, ...) and 
have well behaved isosurface shapes or pattern value fields (media), you 
might be able to implement certain 'aoi' like functions today in the 
yuqk fork.

There is the slope pattern which might help depending on what you want 
to do, but it too has function usage constraints.
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 14 Apr 2024 18:50:38 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C661c257e%241%40news.povray.org%3E/#%3C661c257e%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C661c257e%241%40news.povray.org%3E/#%3C661c257e%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Cousin Ricky] Is an AOI function possible? [732 days 20 hours and 55 minutes ago]</title>
		<description>
&lt;pre&gt;Is it possible to vary a texture by AOI according to a function, rather
than by a texture list?  I don't see anything in the aoi syntax diagrams
that allows this, but it would be nice to know if I missed something.
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 13 Apr 2024 17:18:32 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C661abe68%241%40news.povray.org%3E/#%3C661abe68%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C661abe68%241%40news.povray.org%3E/#%3C661abe68%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Francois LE COAT] Re: Optical Inertia [742 days 22 hours and 43 minutes ago]</title>
		<description>
&lt;pre&gt;Hi,

Francois LE COAT writes:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; The experiment from Hernan Badino was redone. You can see it there...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;https://www.youtube.com/watch?v=fqWdSfN9FiA&amp;gt; Source&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; The main interest is that video is looping, and the result is almost:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;https://www.youtube.com/watch?v=0ZPJmnBh03M&amp;gt; Reworked&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Well, Hernan Badino is moving his head when he is walking, so the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; reconstructed trajectory is not perfectly looping at the end. But&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; we can reconstruct the movement almost perfectly. We use OpenCV&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; for image processing, and POV-Ray for 3D representation. We have&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; to determine projective dominant motion in the video with a&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; reference image, and change it when correlation drops below 80%.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; We have a 3D inertial model of motion, that's why POV-Ray helps =)&lt;/span&gt;

Three drones are flying between forests of trees. Thanks to the
optical-flow (DIS OpenCV) measured on successive images, the
&amp;quot;temporal disparity&amp;quot; reveals the forest of trees (3rd dimension)...

&amp;lt;https://www.youtube.com/watch?v=QP75EeFVyOI&amp;gt; 1st drone
&amp;lt;https://www.youtube.com/watch?v=fp5Z1Nu4Hko&amp;gt; 2nd drone
&amp;lt;https://www.youtube.com/watch?v=fLxE8iS7fPI&amp;gt; 3rd drone

The interest with the forest is that trajectories are curved, in
order to avoid obstacles. It is measured thanks to a projective
transform, and represented with &amp;lt;Ry,Rz,Tx,Tz&amp;gt; thanks to POV-Ray.
The evolution of the drone is shown in front-view with its camera.

Best regards,

-- 
Fran&amp;#231;ois LE COAT
&amp;lt;https://eureka.atari.org/&amp;gt;
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 3 Apr 2024 15:30:35 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C660d761b%241%40news.povray.org%3E/#%3C660d761b%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C660d761b%241%40news.povray.org%3E/#%3C660d761b%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[William F Pokorny] Re: image mapping [774 days 23 hours and 28 minutes ago]</title>
		<description>
&lt;pre&gt;On 3/1/24 13:47, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; William F Pokorny &amp;lt;ano###&amp;nbsp;[at]&amp;nbsp;anonymous&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;org&amp;gt; wrote:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; In yuqk, generally, I've been pushing the code toward more ways to paint&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; shapes - often using other shapes.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Check out:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;
https://developer.nvidia.com/gpugems/gpugems/part-iii-materials/chapter-20-texture-bombing&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Seems simple enough to do, and ought to be fast if implemented in source.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; - BW&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;

Thanks for the pointer! Added it to my notes.

I think, maybe, Sam did something like this a long time ago in SDL. I 
vaguely remember an image of tree leaves on the ground...?

Bill P.
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 2 Mar 2024 14:45:18 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C65e33b7e%241%40news.povray.org%3E/#%3C65e33b7e%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C65e33b7e%241%40news.povray.org%3E/#%3C65e33b7e%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: image mapping [775 days 19 hours and 24 minutes ago]</title>
		<description>
&lt;pre&gt;William F Pokorny &amp;lt;ano###&amp;nbsp;[at]&amp;nbsp;anonymous&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;org&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt;In yuqk, generally, I've been pushing the code toward more ways to paint&lt;/span&gt;
shapes - often using other shapes.

Check out:
https://developer.nvidia.com/gpugems/gpugems/part-iii-materials/chapter-20-texture-bombing

Seems simple enough to do, and ought to be fast if implemented in source.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 1 Mar 2024 18:50:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.65e222cad4e2d7959274a88425979125%40news.povray.org%3E/#%3Cweb.65e222cad4e2d7959274a88425979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.65e222cad4e2d7959274a88425979125%40news.povray.org%3E/#%3Cweb.65e222cad4e2d7959274a88425979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[William F Pokorny] Re: image mapping [775 days 22 hours and 5 minutes ago]</title>
		<description>
&lt;pre&gt;On 2/29/24 13:36, Bald Eagle wrote:
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; after two days of absence, I find your example... and what example !&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; on first reading, I understood nothing, but I'm going to peel it back a&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; bit more.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; He's just got the uv-mapping data hardwired into the object definition.&lt;/span&gt;

:-)

I'm always overwhelmed on initially seeing more than the simplest code 
from others! My own old code too, truth be told.

I'm aiming for the scene I posted to be a shipped example in the next 
release. As I've added more comments, I picked up a couple more typos 
(*)... None affected the result, but they certainly hurt the clarity of 
the example. The next release of yuqk will have this code with 
additional comments - and I hope no remaining mistakes - should you want 
to wait to 'peel'.

(*) - f_elliptical_sphrswp(...,-90,-90...) should have read '+90,-90'. 
The first value is an initial starting position for the sphere sweep and 
the only values allowed are left handed rotations of [0.0...360.0) so 
the implementation took the -90 as abs(-90) or +90, despite what I typed...

---

What Bill W says is true. Conceptually, it's just user directed, 
piecemeal, uv mapping in play here - another form of what you were 
trying in fact.

In yuqk, generally, I've been pushing the code toward more ways to paint 
shapes - often using other shapes. The inbuilt f_path() function in yuqk 
is as much about painting CSG shapes, as it is about having a new way to 
set up isosurface shapes (which can also paint themselves).

The 'list_object' pattern new to yuqk is conceptually an internal 
implementation of Matthew Goulet's / Blue Herring's 'multiobj.inc' from 
the currently offline, but being worked upon, object-collection 
(lib.povray.org).

Yuqk's inbuilt f_elliptical_sphrswp() is conceptually similar to Bruno 
Cabasson's elliptic_torus.pov.

Some of yuqk's density_file interpolation extensions are for playing 
with 3D painting of objects. Ideas related to SDL proximity pattern 
implementations of years past (Edouard Poor?).

Yuqk's new 'pattern_modifiers' keyword is about capturing complex 
spatial manipulations which can then be accessed to keep textures, 
function defined shapes, and CSG-shapes aligned / matched. The aim is 
texturing in simpler 3D space and shapes ahead of spacial changes / 
deformations - and having it all track correctly for a final result. 
This an extension of capturing transforms in the same manner.

Anyhow. It's true a lot of what looks new / complicated in yuqk is just 
what others have taken runs at long ago in a different, perhaps 
extended, form.

(The user_defined{} bit is, of course, clipka's work already in v3.8 
beta 2 / v4.0)

Bill P.
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 1 Mar 2024 16:08:38 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C65e1fd86%241%40news.povray.org%3E/#%3C65e1fd86%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C65e1fd86%241%40news.povray.org%3E/#%3C65e1fd86%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: image mapping [776 days 19 hours and 34 minutes ago]</title>
		<description>
&lt;pre&gt;kurtz le pirate &amp;lt;kur###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; after two days of absence, I find your example... and what example !&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; on first reading, I understood nothing, but I'm going to peel it back a&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; bit more.&lt;/span&gt;

He's just got the uv-mapping data hardwired into the object definition.
So, if you were going to map a sphere, you'd use theta and phi to describe the
surface.
remapping theta and phi from radians to a 0-1 domain, you can grab the pixel
from the image.

So you just write a function to do that &amp;quot;inverse uv mapping&amp;quot;, and apply it to an
average texture that combines the r, g, and b values from the image map.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 29 Feb 2024 18:40:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.65e0ceb4d4e2d795e21e5c0b25979125%40news.povray.org%3E/#%3Cweb.65e0ceb4d4e2d795e21e5c0b25979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.65e0ceb4d4e2d795e21e5c0b25979125%40news.povray.org%3E/#%3Cweb.65e0ceb4d4e2d795e21e5c0b25979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[kurtz le pirate] Re: image mapping [776 days 22 hours and 37 minutes ago]</title>
		<description>
&lt;pre&gt;On 28/02/2024 17:57, William F Pokorny wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; On 2/28/24 05:13, William F Pokorny wrote:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; Attached is a method using new v3.8 and yuqk features.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Yep. In the scene where I wrote ObjLeftL and ObjLeftR, those should have &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; been ObjLegL and ObjLegR, respectively.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; (The definition of Pink is also extraneous)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Bill P.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;

after two days of absence, I find your example... and what example !
on first reading, I understood nothing, but I'm going to peel it back a
bit more.


and I need the yuqk fork, which I don't have and which isn't (yet?)
available for my platform.


It's an excellent proofreading exercise.
What a job! Hats off to you!


-- 
Kurtz le pirate
Compagnie de la Banquise
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 29 Feb 2024 15:36:18 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C65e0a472%40news.povray.org%3E/#%3C65e0a472%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C65e0a472%40news.povray.org%3E/#%3C65e0a472%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[William F Pokorny] Re: image mapping [777 days 21 hours and 16 minutes ago]</title>
		<description>
&lt;pre&gt;On 2/28/24 05:13, William F Pokorny wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Attached is a method using new v3.8 and yuqk features.&lt;/span&gt;

Yep. In the scene where I wrote ObjLeftL and ObjLeftR, those should have 
been ObjLegL and ObjLegR, respectively.

(The definition of Pink is also extraneous)

Bill P.
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 28 Feb 2024 16:57:16 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C65df65ec%241%40news.povray.org%3E/#%3C65df65ec%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C65df65ec%241%40news.povray.org%3E/#%3C65df65ec%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[William F Pokorny] Re: image mapping [778 days 4 hours ago]</title>
		<description>
&lt;pre&gt;On 2/26/24 12:05, kurtz le pirate wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; How would you do it ?&lt;/span&gt;

Attached is a method using new v3.8 and yuqk features. While working up 
new inbuilt functions for yuqk, I've tried to implement them with the 
ability to return 't' or indexes for maps when that's possible.

The shapes I left as isosurfaces. Better render performance could be had 
by using using more basic CSG for the shapes and still the function set 
up for applying the image_map.

Bill P.
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 28 Feb 2024 10:13:58 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C65df0766%241%40news.povray.org%3E/#%3C65df0766%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C65df0766%241%40news.povray.org%3E/#%3C65df0766%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Francois LE COAT] Optical Inertia [778 days 23 hours and 43 minutes ago]</title>
		<description>
&lt;pre&gt;Hi,

The experiment from Hernan Badino was redone. You can see it there ...

	&amp;lt;https://www.youtube.com/watch?v=fqWdSfN9FiA&amp;gt; Source

The main interest is that video is looping, and the result is almost :

	&amp;lt;https://www.youtube.com/watch?v=0ZPJmnBh03M&amp;gt; Reworked

Well, Hernan Badino is moving his head when he is walking, so the
reconstructed trajectory is not perfectly looping at the end. But
we can reconstruct the movement almost perfectly. We use OpenCV
for image processing, and POV-Ray for 3D representation. We have
to determine projective dominant motion in the video with a
reference image, and change it when correlation drops below 80%.

We have a 3D inertial model of motion, that's why POV-Ray helps =)

Best regards,

-- 
Fran&amp;#231;ois LE COAT
&amp;lt;https://eureka.atari.org/&amp;gt;
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 27 Feb 2024 14:30:29 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C65ddf205%241%40news.povray.org%3E/#%3C65ddf205%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C65ddf205%241%40news.povray.org%3E/#%3C65ddf205%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: image mapping [779 days 17 hours and 49 minutes ago]</title>
		<description>
&lt;pre&gt;kurtz le pirate &amp;lt;kur###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; How would you do it ?&lt;/span&gt;

Use a parametric function, so that you could make the geometry of the curve, and
then use that to uv-map it manually in SDL by applying the function as a 1:1
mapping function from &amp;lt;x, y&amp;gt; to the &amp;lt;u, v&amp;gt; of the shape.

I have to head out, but can elaborate on that if you need me to.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 26 Feb 2024 20:25:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.65dcf39ad4e2d7951f9dae3025979125%40news.povray.org%3E/#%3Cweb.65dcf39ad4e2d7951f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.65dcf39ad4e2d7951f9dae3025979125%40news.povray.org%3E/#%3Cweb.65dcf39ad4e2d7951f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[kurtz le pirate] image mapping [779 days 21 hours and 9 minutes ago]</title>
		<description>
&lt;pre&gt;Hello,


The problem of the day :
I'm trying to project an image onto the rounded corner.


I've tried a lot of try with image_map and uv_mapping without success.
Here is my &amp;quot;best&amp;quot; (less bad) result for now.

Do you think it's possible to map the image directly onto the object?

The joined image is the result of three parts with two planar and one
cylindrical projection, but the joints don't stick :(


How would you do it ?




The geometry of the rounded corner is simple and I can post the code
with my tests using image_map{}.

The image used is here : &amp;lt;https://shorturl.at/mnqz2&amp;gt; on which I added
red marks.





-- 
Kurtz le pirate
Compagnie de la Banquise
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 26 Feb 2024 17:05:02 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C65dcc4be%40news.povray.org%3E/#%3C65dcc4be%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C65dcc4be%40news.povray.org%3E/#%3C65dcc4be%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Reorient_Trans macro details [789 days and 4 minutes ago]</title>
		<description>
&lt;pre&gt;kurtz le pirate &amp;lt;kur###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I changed the video format from .mov to .mp4&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Can you tell me if it's better?&lt;/span&gt;


Very Nice.  Works perfectly and the colors and lighting are beautiful.

Well done.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 17 Feb 2024 14:10:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.65d0bd817ecd0aa1f9dae3025979125%40news.povray.org%3E/#%3Cweb.65d0bd817ecd0aa1f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.65d0bd817ecd0aa1f9dae3025979125%40news.povray.org%3E/#%3Cweb.65d0bd817ecd0aa1f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[kurtz le pirate] Re: Reorient_Trans macro details [789 days 3 hours and 23 minutes ago]</title>
		<description>
&lt;pre&gt;On 16/02/2024 23:04, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; The animations &amp;quot;played&amp;quot;, but were just black - no images.&lt;/span&gt;

Sorry for the inconvenience. I've tested with Fitrefox, Chrome and
Safari on Mac and Edge on Windows and it works fine.

I changed the video format from .mov to .mp4
Can you tell me if it's better?



-- 
Kurtz le pirate
Compagnie de la Banquise
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 17 Feb 2024 10:50:21 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C65d08f6d%241%40news.povray.org%3E/#%3C65d08f6d%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C65d08f6d%241%40news.povray.org%3E/#%3C65d08f6d%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Thomas de Groot] Re: Reorient_Trans macro details [789 days 6 hours and 44 minutes ago]</title>
		<description>
&lt;pre&gt;Op 16/02/2024 om 17:54 schreef kurtz le pirate:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; On 09/02/2024 08:20, Thomas de Groot wrote:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; Before I go further in reading: This is a very welcome exercise you have&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; started here, Bill! I am a very regular user of the macro and I confess&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; that I have had a lot of misunderstandings about its working in the past.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; bonjour,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Following your comment, I made this page about rotations in 3d space.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Could this kind of literature be useful for POV user or no one is&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; interested or even be annoying ?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;lt;http://louisbel.free.fr/scenes/scene036.shtml&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; It's on my website and in English ;)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;

Note: Contrary To Bald Eagle, the animations played correctly on my 
system (Win11) not black.

I think these kind of simple and clear visual explanations can be very 
useful, certainly for starting (POV-Ray) modellers, but also for old 
hands who have temporarily lost their way in confusion and need a little 
reminder. :-) I am certainly one of those from time to time.

I would suggest that you label the x-, y-, z-axis in the first 
animation, and/or add the usual red, green, and blue colours to them.

Well done and keep on!

-- 
Thomas
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 17 Feb 2024 07:29:27 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C65d06057%241%40news.povray.org%3E/#%3C65d06057%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C65d06057%241%40news.povray.org%3E/#%3C65d06057%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Reorient_Trans macro details [789 days 16 hours and 9 minutes ago]</title>
		<description>
&lt;pre&gt;kurtz le pirate &amp;lt;kur###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Following your comment, I made this page about rotations in 3d space.&lt;/span&gt;

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;lt;http://louisbel.free.fr/scenes/scene036.shtml&amp;gt;&lt;/span&gt;

The animations &amp;quot;played&amp;quot;, but were just black - no images.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 16 Feb 2024 22:05:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.65cfdbd47ecd0aa1f9dae3025979125%40news.povray.org%3E/#%3Cweb.65cfdbd47ecd0aa1f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.65cfdbd47ecd0aa1f9dae3025979125%40news.povray.org%3E/#%3Cweb.65cfdbd47ecd0aa1f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[kurtz le pirate] Re: Reorient_Trans macro details [789 days 21 hours and 19 minutes ago]</title>
		<description>
&lt;pre&gt;On 09/02/2024 08:20, Thomas de Groot wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Before I go further in reading: This is a very welcome exercise you have &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; started here, Bill! I am a very regular user of the macro and I confess &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; that I have had a lot of misunderstandings about its working in the past.&lt;/span&gt;

bonjour,


Following your comment, I made this page about rotations in 3d space.
Could this kind of literature be useful for POV user or no one is
interested or even be annoying ?


&amp;lt;http://louisbel.free.fr/scenes/scene036.shtml&amp;gt;
It's on my website and in English ;)






-- 
Kurtz le pirate
Compagnie de la Banquise
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 16 Feb 2024 16:54:47 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C65cf9357%241%40news.povray.org%3E/#%3C65cf9357%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C65cf9357%241%40news.povray.org%3E/#%3C65cf9357%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Making Patterns with functions [791 days 12 hours and 24 minutes ago]</title>
		<description>
&lt;pre&gt;This is very similar in concept to the Voronoi pattern, and indeed, if the
&amp;quot;annular rings&amp;quot; are fine enough, one gets the visual impression of Voronoi cells
filled with a concentric ring pattern.

I just did this for fun, to illustrate a practical pattern to use for ripples in
water, malachite, rhodochrosite, wood, &amp;quot;jawbreaker&amp;quot; candies, etc, and to
implement an example that makes use of splines, loops, pseudorandom numbers, and
a discrete set of &amp;quot;basis functions&amp;quot; that are evaluated &amp;quot;en-masse&amp;quot;.

Enjoy the &amp;quot;bubbles&amp;quot;.

(Speaking of which, this could be a fun one to apply iridescence to...)

I'd have to think about how to vary the &amp;quot;radius&amp;quot; of each seed point, and then
apply the true bubble intersection formula to get a nice foam cross-section.
Foam isosurface, anyone?

- BE
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 15 Feb 2024 01:50:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.65cd6cdcd81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.65cd6cdcd81b84791f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.65cd6cdcd81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.65cd6cdcd81b84791f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Alain Martel] Re: Making Patterns with functions [791 days 23 hours and 25 minutes ago]</title>
		<description>
&lt;pre&gt;Le 2024-02-13 &amp;#195;&amp;#160; 22:24, Bald Eagle a &amp;#195;&amp;#169;crit&amp;#194;&amp;#160;:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; This one's sort of like dice.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; mod (floor(x)+floor(y), 2) somehow is NOT the same as even (floor(x)+floor(y))&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; IIRC, Bill Pokorny mentioned something about how floor isn't quite &amp;quot;right&amp;quot;.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; anyway, this is the last one for the night.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; - BW&lt;/span&gt;
Another that play tricks with your eyes...
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 14 Feb 2024 14:48:33 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C65ccd2c1%241%40news.povray.org%3E/#%3C65ccd2c1%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C65ccd2c1%241%40news.povray.org%3E/#%3C65ccd2c1%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Alain Martel] Re: Making Patterns with functions [791 days 23 hours and 26 minutes ago]</title>
		<description>
&lt;pre&gt;Le 2024-02-13 &amp;#195;&amp;#160; 21:03, Bald Eagle a &amp;#195;&amp;#169;crit&amp;#194;&amp;#160;:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Here's one to torture your eyes.  :P&lt;/span&gt;
It moves.
There are colour spots popping everywhere.
It shakes.
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 14 Feb 2024 14:47:19 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C65ccd277%241%40news.povray.org%3E/#%3C65ccd277%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C65ccd277%241%40news.povray.org%3E/#%3C65ccd277%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[William F Pokorny] Re: Making Patterns with functions [792 days 1 hour and 44 minutes ago]</title>
		<description>
&lt;pre&gt;On 2/13/24 22:24, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; IIRC, Bill Pokorny mentioned something about how floor isn't quite &amp;quot;right&amp;quot;.&lt;/span&gt;

IICRC... Rings a bell.

With yuqk, I do remember changing the code which creates the 0-1 ramp 
wave - in official POV-Ray there is some hard coded magic which 
sometimes causes trouble if one hits the right (wrong) values.

There is too some hard code clamping of values coming from functions 
into the pattern mechanism that I removed. However, this bit, from your 
results, I would say you are already avoiding. (That you are limiting 
your function() values into the pattern mechanism to 0-1 or &amp;gt;0.0 ranges)

Bill P.
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 14 Feb 2024 12:29:09 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C65ccb215%241%40news.povray.org%3E/#%3C65ccb215%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C65ccb215%241%40news.povray.org%3E/#%3C65ccb215%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[William F Pokorny] Re: Making Patterns with functions [792 days 1 hour and 54 minutes ago]</title>
		<description>
&lt;pre&gt;On 2/13/24 21:03, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Here's one to torture your eyes.  :P&lt;/span&gt;

It does dance around! :-)

Bill P.
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 14 Feb 2024 12:19:14 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C65ccafc2%241%40news.povray.org%3E/#%3C65ccafc2%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C65ccafc2%241%40news.povray.org%3E/#%3C65ccafc2%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[kurtz le pirate] Re: Making Patterns with functions [792 days 5 hours and 15 minutes ago]</title>
		<description>
&lt;pre&gt;On 13/02/2024 00:46, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Hopefully we can get a few new patterns posted in this thread, and I'm going to&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; try to post at least one new pattern a week, to keep some momentum going.&lt;/span&gt;



Excellent work! Congratulations

-- 
Kurtz le pirate
Compagnie de la Banquise
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 14 Feb 2024 08:59:04 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C65cc80d8%241%40news.povray.org%3E/#%3C65cc80d8%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C65cc80d8%241%40news.povray.org%3E/#%3C65cc80d8%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Making Patterns with functions [792 days 10 hours and 49 minutes ago]</title>
		<description>
&lt;pre&gt;This one's sort of like dice.

mod (floor(x)+floor(y), 2) somehow is NOT the same as even (floor(x)+floor(y))

IIRC, Bill Pokorny mentioned something about how floor isn't quite &amp;quot;right&amp;quot;.

anyway, this is the last one for the night.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 14 Feb 2024 03:25:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.65cc3266d81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.65cc3266d81b84791f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.65cc3266d81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.65cc3266d81b84791f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Making Patterns with functions [792 days 12 hours and 9 minutes ago]</title>
		<description>
&lt;pre&gt;Here's one to torture your eyes.  :P
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 14 Feb 2024 02:05:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.65cc1f5ed81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.65cc1f5ed81b84791f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.65cc1f5ed81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.65cc1f5ed81b84791f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Making Patterns with functions [792 days 12 hours and 19 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Tor Olav Kristensen&amp;quot; &amp;lt;tor###&amp;nbsp;[at]&amp;nbsp;TOBEREMOVEDgmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I like this one.&lt;/span&gt;

I do too, which is why I posted it.
It brought to mind the vintage Corelle plate rim pattern. (attached)

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; It seems like you're getting pretty good at this.&lt;/span&gt;

I'm getting a bit better at finding interesting patterns and translating them
from other languages/syntaxes.

I still have a devil of a time with some of them.
Some I can't get to work at all, especially if I have to make lines, use x and y
at the same time, or try to make a parametric function based on atan2(y, x).

I'm also trying to figure out why sometimes I only get a partial pattern.
But they _are_ more than formless grayscale vomit, so there is definitely some
progress.

When I understand WHY things work or don't, and know enough to fix them, then I
will be lots better.

When I can invent such functions on my own, then I will be good.

But that was half of the goal of this - to try implementing so many functions
that eventually I found changes that worked, and could be applied to others that
failed, and iteratively get better.

I'm almost at 200 functions, and at some point I'll have (temporarily) run out
of patterns to copy, and can start investigating variations and combinations.

There also seems to be various common methods for making patterns, and perhaps I
can distill them all down into several macros to make rendering each method a
little easier.

Thank you as always for your interest, tutelage, and encouragement.  :)
- BW
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 14 Feb 2024 01:55:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.65cc1c56d81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.65cc1c56d81b84791f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.65cc1c56d81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.65cc1c56d81b84791f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Tor Olav Kristensen] Re: Making Patterns with functions [792 days 13 hours and 14 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; I'm going to try to post at least one new pattern a week, to keep some momentum
going.&lt;/span&gt;

I like this one.

It seems like you're getting pretty good at this.

--
Tor Olav
http://subcube.com
https://github.com/t-o-k
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 14 Feb 2024 01:00:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.65cc1037d81b8479f673154389db30a9%40news.povray.org%3E/#%3Cweb.65cc1037d81b8479f673154389db30a9%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.65cc1037d81b8479f673154389db30a9%40news.povray.org%3E/#%3Cweb.65cc1037d81b8479f673154389db30a9%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Making Patterns with functions [792 days 14 hours and 54 minutes ago]</title>
		<description>
&lt;pre&gt;Neat grid pattern.
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 13 Feb 2024 23:20:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.65cbf809d81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.65cbf809d81b84791f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.65cbf809d81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.65cbf809d81b84791f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Making Patterns with functions [792 days 14 hours and 59 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I'm going to try to post at least one new pattern a week, to keep some momentum
going.&lt;/span&gt;
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 13 Feb 2024 23:15:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.65cbf72dd81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.65cbf72dd81b84791f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.65cbf72dd81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.65cbf72dd81b84791f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Making Patterns with functions [793 days 14 hours and 24 minutes ago]</title>
		<description>
&lt;pre&gt;I played with a few more functions - I think I'm up to about 189 in the
collection, and still have many more to implement.

This one I liked because it was &amp;quot;simple&amp;quot;, and would probably find use in any
number of scenes, for different purposes.

Like the ultra-impressive Greek frieze pattern, this one got adapted from
Desmos, and it takes a lot of reading and thinking to grasp Desmos' syntax /
expression structure, unravel what is meant, and discard the superfluous parts.

I got it wrong about a dozen times, but in the process found that sometimes the
mistakes yield some pretty amazing and complex pattern in and of themselves.
So, when experimenting with new patterns, don't give up, and don't be surprised
when the raw pattern seems to bear absolutely no relation to the pattern that
you're trying to code.  The raw vs &amp;quot;thickened&amp;quot; pattern can differ - starkly - in
appearance.

Hopefully we can get a few new patterns posted in this thread, and I'm going to
try to post at least one new pattern a week, to keep some momentum going.

Hope you like.

- BE
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 12 Feb 2024 23:50:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.65caadc8d81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.65caadc8d81b84791f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.65caadc8d81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.65caadc8d81b84791f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[kurtz le pirate] Re: Reorient_Trans macro details [793 days 22 hours and 10 minutes ago]</title>
		<description>
&lt;pre&gt;On 08/02/2024 21:43, Tor Olav Kristensen wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; And for axis rotate, this is relevant:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; https://github.com/t-o-k/Rodrigues-rotation-formula&lt;/span&gt;


Exactly, that's right and don't forget : vaxis_rotate() bult in ;)



-- 
Kurtz le pirate
Compagnie de la Banquise
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 12 Feb 2024 16:03:52 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C65ca4168%241%40news.povray.org%3E/#%3C65ca4168%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C65ca4168%241%40news.povray.org%3E/#%3C65ca4168%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Thomas de Groot] Re: Reorient_Trans macro details [797 days 6 hours and 53 minutes ago]</title>
		<description>
&lt;pre&gt;Op 08/02/2024 om 18:54 schreef Bald Eagle:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; So, since my whole Reorient_Triangle macro relies on the Reorient_Trans macro,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; which was a bit of a black box operation,  I decided to take a deeper look into&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; what goes on there, and unravel it all until I understood how it works.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
Before I go further in reading: This is a very welcome exercise you have 
started here, Bill! I am a very regular user of the macro and I confess 
that I have had a lot of misunderstandings about its working in the past.

Keep on the good work!

-- 
Thomas
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 9 Feb 2024 07:20:34 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C65c5d242%241%40news.povray.org%3E/#%3C65c5d242%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C65c5d242%241%40news.povray.org%3E/#%3C65c5d242%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Tor Olav Kristensen] Re: Reorient_Trans macro details [797 days 12 hours and 54 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Thanks Tor!&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; You've got an endless library of really useful macros, as usual.&lt;/span&gt;

Yes, I've written a lot of macros, some more useful than others.
My problem is to remember that I wrote them and were I've put them.


&lt;span class=&quot;RC1&quot;&gt;&amp;gt; With regard to matrix methods, would you happen to have any words of wisdom&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; about how to go about the following with matrices as opposed to my vector math&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; way?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;
http://news.povray.org/povray.binaries.images/message/%3Cweb.65c027a941c066f01f9dae3025979125%40news.povray.org%3E/#%&lt;/span&gt;
3C
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; web.65c027a941c066f01f9dae3025979125%40news.povray.org%3E&lt;/span&gt;

I just had a quick peek at your code.
It seems healthy, although it can probably be slimmed down a bit.

I'll see of can find some spare time for commenting it in the coming days.

--
Tor Olav
http://subcube.com
https://github.com/t-o-k
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 9 Feb 2024 01:20:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.65c57da87ecd0aae9c3f02789db30a9%40news.povray.org%3E/#%3Cweb.65c57da87ecd0aae9c3f02789db30a9%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.65c57da87ecd0aae9c3f02789db30a9%40news.povray.org%3E/#%3Cweb.65c57da87ecd0aae9c3f02789db30a9%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Tor Olav Kristensen] Re: Reorient_Trans macro details [797 days 13 hours and 39 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   // This makes no sense to me, since Vec_1 and Vec_2 are both normalized&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; vectors,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   // so the length of one unit vector minus another unit vector will ALWAYS be&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; zero&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   #if (vlength (Vec_1-Vec_2) = 0)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    transform {}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   #else&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    // Which means that this part NEVER gets executed&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    #local vZ = VPerp_To_Vector (Vec_2);&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    transform {Axis_Rotate_Trans (vZ, 180)}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;...&lt;/span&gt;

IIRC it was me that added those two if-then-else parts to John VanSickle's
reorient macro.

Note that we are subtracting the normalized vectors, not their lengths.
And then we check if the resulting vector has zero length.

So no, one unit vector minus another unit vector will NOT ALWAYS be zero, only
if they are pointing the same direction, in which case no transformation is
necessary.

After the last else statement we can be sure that the two vectors are pointing
in opposite directions. In this case the math for calculating the components of
the reorient matrix breaks down.

In this case we can not know what the user actually want to achieve. (And
perhaps she/he does not know this her/him-selves.)

We can (and perhaps we should) now give up and use the #error statement.

But in some cases we can choose one of infinitely many possible solutions and
the result will be the same (e.g. if the reoriented object is symmetric around a
line in the same direction as the the &amp;quot;reorient from&amp;quot; vector, like a cylinder.)

Now note that the reorient transform is very similar to the axis rotate
transform. If we take the cross product between the vector to reorient from and
the vector to reorient to, we get a rotation axis for the axis rotate transform.
And if we find the angle between those two vectors, (e.g. by acos of their dot
product, or arcsin of the length of their cross product, or both combined with
atan2, or a more numerical stable formula), we have the rotation angle for the
axis transform.

I choose one vector (from infinitely many vectors), that is perpendicular to
both the &amp;quot;rotate from&amp;quot; vector and the &amp;quot;rotate to&amp;quot; vector, to use for the axis in
the axis rotate transform. The rotation angle is 180 degrees.

--
Tor Olav
http://subcube.com
https://github.com/t-o-k
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 9 Feb 2024 00:35:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.65c5727c7ecd0aae9c3f02789db30a9%40news.povray.org%3E/#%3Cweb.65c5727c7ecd0aae9c3f02789db30a9%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.65c5727c7ecd0aae9c3f02789db30a9%40news.povray.org%3E/#%3Cweb.65c5727c7ecd0aae9c3f02789db30a9%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Reorient_Trans macro details [797 days 16 hours and 49 minutes ago]</title>
		<description>
&lt;pre&gt;Thanks Tor!

You've got an endless library of really useful macros, as usual.

With regard to matrix methods, would you happen to have any words of wisdom
about how to go about the following with matrices as opposed to my vector math
way?

http://news.povray.org/povray.binaries.images/message/%3Cweb.65c027a941c066f01f9dae3025979125%40news.povray.org%3E/#%3C
web.65c027a941c066f01f9dae3025979125%40news.povray.org%3E
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 8 Feb 2024 21:25:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.65c545c17ecd0aa1f9dae3025979125%40news.povray.org%3E/#%3Cweb.65c545c17ecd0aa1f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.65c545c17ecd0aa1f9dae3025979125%40news.povray.org%3E/#%3Cweb.65c545c17ecd0aa1f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Tor Olav Kristensen] Re: Reorient_Trans macro details [797 days 17 hours and 19 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Tor Olav Kristensen&amp;quot; &amp;lt;tor###&amp;nbsp;[at]&amp;nbsp;TOBEREMOVEDgmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;quot;Tor Olav Kristensen&amp;quot; &amp;lt;tor###&amp;nbsp;[at]&amp;nbsp;TOBEREMOVEDgmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; &amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt;...&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; Hi Bill&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; It's a useful exercise you've started here.&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; You may also want to have a look at the ReorientTransform() macro here:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; https://github.com/t-o-k/Useful-POV-Ray-macros/blob/main/vectors.inc&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; And for axis rotate, this is relevant:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; https://github.com/t-o-k/Rodrigues-rotation-formula&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;

Some more here:

From: Tor Olav Kristensen
Subject: Rotation around an arbitrary axis
Date: 2001-11-29 19:23:16
https://news.povray.org/povray.advanced-users/thread/%3C3C06D0B8.9DE747A0%40hotmail.com%3E/

- and here:

https://github.com/t-o-k/scikit-vectors/blob/master/skvectors/cartesian_3d_vectors.py

--
Tor Olav
http://subcube.com
https://github.com/t-o-k
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 8 Feb 2024 20:55:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.65c53ed17ecd0aae9c3f02789db30a9%40news.povray.org%3E/#%3Cweb.65c53ed17ecd0aae9c3f02789db30a9%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.65c53ed17ecd0aae9c3f02789db30a9%40news.povray.org%3E/#%3Cweb.65c53ed17ecd0aae9c3f02789db30a9%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Tor Olav Kristensen] Re: Reorient_Trans macro details [797 days 17 hours and 29 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Tor Olav Kristensen&amp;quot; &amp;lt;tor###&amp;nbsp;[at]&amp;nbsp;TOBEREMOVEDgmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Hi Bill&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; It's a useful exercise you've started here.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; You may also want to have a look at the ReorientTransform() macro here:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; https://github.com/t-o-k/Useful-POV-Ray-macros/blob/main/vectors.inc&lt;/span&gt;


And for axis rotate, this is relevant:

https://github.com/t-o-k/Rodrigues-rotation-formula


--
Tor Olav
http://subcube.com
https://github.com/t-o-k
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 8 Feb 2024 20:45:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.65c53d0f7ecd0aae9c3f02789db30a9%40news.povray.org%3E/#%3Cweb.65c53d0f7ecd0aae9c3f02789db30a9%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.65c53d0f7ecd0aae9c3f02789db30a9%40news.povray.org%3E/#%3Cweb.65c53d0f7ecd0aae9c3f02789db30a9%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Tor Olav Kristensen] Re: Reorient_Trans macro details [797 days 17 hours and 34 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; So, since my whole Reorient_Triangle macro relies on the Reorient_Trans macro,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; which was a bit of a black box operation,  I decided to take a deeper look into&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; what goes on there, and unravel it all until I understood how it works.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; The best I can describe it, briefly, is that we can look at POV-space as a&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; common reference frame that both Axis1 and Axis 2 exist in relation to.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Then we construct localized orthonormal (perpendicular) spaces using each Axis&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; argument as the x-axis of its frame.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; We apply the Axis1 frame as a matrix transform to align it with POV-space.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Then we apply the _inverse_ of the matrix for Axis2 to do a reverse form of what&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; we just did for Axis1.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; We align POV-space with the Axis2 frame by applying its matrix transpose.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; (Which, since it's essentially a rotation matrix, is the same as the inverse)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Here's the original macro with some of the variables renamed, and plenty of&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; commentary.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I did note that half of the macro doesn't seem to even need to be there.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I'm gonna write an alternate form of the macro that uses the inverse keyword&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; just to make sure it does exactly the same thing.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; In the render, the left cube shows Axis1 in yellow, Axis2 in purple, and the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; POV-space reference frame in white.  The two perpendicular axes of the Axis1&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; frame are in green and blue.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; At the center, we can see that the Axis 1 frame has been aligned with POV-space.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; (I know it looks weird, and I spent a few hours working through a lot of&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; experiments, but since we're essentially applying a rotation transformation in&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; the negative direction around x, the first transform winds up doing that wild&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; flip to invert the shape.  Look at the relationship between the perpendiculars&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; and the cube, and it ought to make sense)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Now we need to align the x-vector with Axis2, and you can imagine a rotation&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; aroind -x, followed by a rotation around -z to get there.  And that aligns&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; everything.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; If you picture the shortest-path rotation from Axis1 to Axis2, you'll see that&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; the colored corner markers end up in the right place, which was one of the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; things I was concerned about, and spurred this whole venture.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; //############################################################################&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #macro Reorient_Trans (Axis1, Axis2)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  // Edited and commented by Bill Walker &amp;quot;Bald Eagle&amp;quot; Feb 2024&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  #local Vec_1 = vnormalize (Axis1);&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  #local Vec_2 = vnormalize (Axis2);&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  // vcross returns a perpendicular vector&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  // if vectors are parallel or antiparallel, then vcross = 0&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  #local Perp = vcross (Vec_1, Vec_2);&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  #if (vlength (Perp) &amp;gt; 0)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   #local Pboth = vnormalize (Perp);&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   // so now we have normalized vectors with a common&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   // perpendicular to both vectors &amp;quot;Perp&amp;quot;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   // We generate a third perpendicular vector for each&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   // reference frame, &amp;quot;Perp1&amp;quot; and &amp;quot;Perp2&amp;quot;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   #local Perp1 = vnormalize (vcross (Vec_1, Pboth));&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   #local Perp2 = vnormalize (vcross (Vec_2, Pboth));&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   transform {&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    // Now we transform the basis vectors.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    // Notice that the standard matrix is composed of COLUMN vectors&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    // All of the vectors are normalized, and they&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    // are all orthonormal (perpendicular to each other)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    // so this constitutes a rigid body transformation&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    // which only performs rotations&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    // former x vector gets aligned to Vec_1 (Axis1)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    // former y vector gets aligned with the common perpendicular Pboth&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    // former z vector gets aligned to Perp1&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    matrix &amp;lt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    Vec_1.x, Pboth.x, Perp1.x,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    Vec_1.y, Pboth.y, Perp1.y,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    Vec_1.z, Pboth.z, Perp1.z,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      0,    0,    0    &amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    // Notice that the following matrix is composed of ROW vectors&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    // So this is a transpose matrix&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    // We know it's an orthonormal rotation matrix (with a determinant of 1)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    // so the matrix transpose is actually the same as the matrix inverse&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    // Let's consider what the untransposed matrix would have done:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    // former x vector gets aligned to Vec_2 (Axis2)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    // former y vector gets aligned with the common perpendicular Pboth&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    // former z vector gets aligned to Perp2&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    // (Just like the first matrix)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    // So we would have taken the result we're aiming toward - an alignment with&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Axis2,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    // and aligning it to the same place as we have just moved our starting Axis1&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; to.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    // And since the transpose matrix is the INVERSE, we are just UNDOING that&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; transform&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    // to move the common reference frame to that of Axis2&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    // Presumably we could have accomplished the same operation with the standard&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; column&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    // major form using a separate &amp;quot;transform { matrix &amp;lt;&amp;gt; inverse}&amp;quot; statement&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    matrix &amp;lt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    Vec_2.x, Vec_2.y, Vec_2.z,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    Pboth.x, Pboth.y, Pboth.z,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    Perp2.x, Perp2.y, Perp2.z,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      0,     0,     0  &amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  #else&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   // This makes no sense to me, since Vec_1 and Vec_2 are both normalized&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; vectors,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   // so the length of one unit vector minus another unit vector will ALWAYS be&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; zero&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   #if (vlength (Vec_1-Vec_2) = 0)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    transform {}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   #else&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    // Which means that this part NEVER gets executed&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    #local vZ = VPerp_To_Vector (Vec_2);&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    transform {Axis_Rotate_Trans (vZ, 180)}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   #end&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  #end&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #end&lt;/span&gt;

Hi Bill

It's a useful exercise you've started here.

You may also want to have a look at the ReorientTransform() macro here:
https://github.com/t-o-k/Useful-POV-Ray-macros/blob/main/vectors.inc

--
Tor Olav
http://subcube.com
https://github.com/t-o-k
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 8 Feb 2024 20:40:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.65c53b747ecd0aae9c3f02789db30a9%40news.povray.org%3E/#%3Cweb.65c53b747ecd0aae9c3f02789db30a9%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.65c53b747ecd0aae9c3f02789db30a9%40news.povray.org%3E/#%3Cweb.65c53b747ecd0aae9c3f02789db30a9%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Reorient_Trans macro details [797 days 17 hours and 59 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; (Which, since it's essentially a rotation matrix, is the same as the inverse)&lt;/span&gt;

I reworked my old rotation matrices scene to give a bit more of a visual
interpretation.

I wasn't sure if I'd need to animate this, and have changing values on a
readout, or the transformed vector rendered alongside its inverse and
transpose...

Hopefully it's clear, if it's not, then let me know what would really help
illustrate the concept(s) more clearly.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 8 Feb 2024 20:15:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.65c535447ecd0aa1f9dae3025979125%40news.povray.org%3E/#%3Cweb.65c535447ecd0aa1f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.65c535447ecd0aa1f9dae3025979125%40news.povray.org%3E/#%3Cweb.65c535447ecd0aa1f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Reorient_Trans macro details [797 days 19 hours and 49 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I'm gonna write an alternate form of the macro that uses the inverse keyword&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; just to make sure it does exactly the same thing.&lt;/span&gt;

And indeed, using the following gives the same results.
Note that you have to enclose the second matrix in its own transform {}, else
the inverse gets applied to the whole 2-matrix transform instead of just the
second matrix.

transform {
 matrix &amp;lt;
 Vec_1.x, Pboth.x, Perp1.x,
 Vec_1.y, Pboth.y, Perp1.y,
 Vec_1.z, Pboth.z, Perp1.z,
   0,    0,    0    &amp;gt;

 transform {
  // Column vectors like above
  matrix &amp;lt;
  Vec_2.x, Pboth.x, Perp2.x,
  Vec_2.y, Pboth.y, Perp2.y,
  Vec_2.z, Pboth.z, Perp2.z,
    0,     0,     0  &amp;gt;
  inverse // &amp;lt;--- Inverse
 }
}
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 8 Feb 2024 18:25:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.65c51b647ecd0aa1f9dae3025979125%40news.povray.org%3E/#%3Cweb.65c51b647ecd0aa1f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.65c51b647ecd0aa1f9dae3025979125%40news.povray.org%3E/#%3Cweb.65c51b647ecd0aa1f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Reorient_Trans macro details [797 days 20 hours and 19 minutes ago]</title>
		<description>
&lt;pre&gt;So, since my whole Reorient_Triangle macro relies on the Reorient_Trans macro,
which was a bit of a black box operation,  I decided to take a deeper look into
what goes on there, and unravel it all until I understood how it works.

The best I can describe it, briefly, is that we can look at POV-space as a
common reference frame that both Axis1 and Axis 2 exist in relation to.
Then we construct localized orthonormal (perpendicular) spaces using each Axis
argument as the x-axis of its frame.

We apply the Axis1 frame as a matrix transform to align it with POV-space.
Then we apply the _inverse_ of the matrix for Axis2 to do a reverse form of what
we just did for Axis1.
We align POV-space with the Axis2 frame by applying its matrix transpose.
(Which, since it's essentially a rotation matrix, is the same as the inverse)

Here's the original macro with some of the variables renamed, and plenty of
commentary.

I did note that half of the macro doesn't seem to even need to be there.

I'm gonna write an alternate form of the macro that uses the inverse keyword
just to make sure it does exactly the same thing.

In the render, the left cube shows Axis1 in yellow, Axis2 in purple, and the
POV-space reference frame in white.  The two perpendicular axes of the Axis1
frame are in green and blue.

At the center, we can see that the Axis 1 frame has been aligned with POV-space.
(I know it looks weird, and I spent a few hours working through a lot of
experiments, but since we're essentially applying a rotation transformation in
the negative direction around x, the first transform winds up doing that wild
flip to invert the shape.  Look at the relationship between the perpendiculars
and the cube, and it ought to make sense)

Now we need to align the x-vector with Axis2, and you can imagine a rotation
aroind -x, followed by a rotation around -z to get there.  And that aligns
everything.

If you picture the shortest-path rotation from Axis1 to Axis2, you'll see that
the colored corner markers end up in the right place, which was one of the
things I was concerned about, and spurred this whole venture.

//############################################################################


#macro Reorient_Trans (Axis1, Axis2)
 // Edited and commented by Bill Walker &amp;quot;Bald Eagle&amp;quot; Feb 2024
 #local Vec_1 = vnormalize (Axis1);
 #local Vec_2 = vnormalize (Axis2);
 // vcross returns a perpendicular vector
 // if vectors are parallel or antiparallel, then vcross = 0
 #local Perp = vcross (Vec_1, Vec_2);
 #if (vlength (Perp) &amp;gt; 0)
  #local Pboth = vnormalize (Perp);
  // so now we have normalized vectors with a common
  // perpendicular to both vectors &amp;quot;Perp&amp;quot;
  // We generate a third perpendicular vector for each
  // reference frame, &amp;quot;Perp1&amp;quot; and &amp;quot;Perp2&amp;quot;
  #local Perp1 = vnormalize (vcross (Vec_1, Pboth));
  #local Perp2 = vnormalize (vcross (Vec_2, Pboth));

  transform {
   // Now we transform the basis vectors.
   // Notice that the standard matrix is composed of COLUMN vectors
   // All of the vectors are normalized, and they
   // are all orthonormal (perpendicular to each other)
   // so this constitutes a rigid body transformation
   // which only performs rotations
   // former x vector gets aligned to Vec_1 (Axis1)
   // former y vector gets aligned with the common perpendicular Pboth
   // former z vector gets aligned to Perp1

   matrix &amp;lt;
   Vec_1.x, Pboth.x, Perp1.x,
   Vec_1.y, Pboth.y, Perp1.y,
   Vec_1.z, Pboth.z, Perp1.z,
     0,    0,    0    &amp;gt;

   // Notice that the following matrix is composed of ROW vectors
   // So this is a transpose matrix
   // We know it's an orthonormal rotation matrix (with a determinant of 1)
   // so the matrix transpose is actually the same as the matrix inverse

   // Let's consider what the untransposed matrix would have done:
   // former x vector gets aligned to Vec_2 (Axis2)
   // former y vector gets aligned with the common perpendicular Pboth
   // former z vector gets aligned to Perp2
   // (Just like the first matrix)

   // So we would have taken the result we're aiming toward - an alignment with
Axis2,
   // and aligning it to the same place as we have just moved our starting Axis1
to.
   // And since the transpose matrix is the INVERSE, we are just UNDOING that
transform
   // to move the common reference frame to that of Axis2

   // Presumably we could have accomplished the same operation with the standard
column
   // major form using a separate &amp;quot;transform { matrix &amp;lt;&amp;gt; inverse}&amp;quot; statement

   matrix &amp;lt;
   Vec_2.x, Vec_2.y, Vec_2.z,
   Pboth.x, Pboth.y, Pboth.z,
   Perp2.x, Perp2.y, Perp2.z,
     0,     0,     0  &amp;gt;
  }
 #else
  // This makes no sense to me, since Vec_1 and Vec_2 are both normalized
vectors,
  // so the length of one unit vector minus another unit vector will ALWAYS be
zero
  #if (vlength (Vec_1-Vec_2) = 0)
   transform {}
  #else
   // Which means that this part NEVER gets executed
   #local vZ = VPerp_To_Vector (Vec_2);
   transform {Axis_Rotate_Trans (vZ, 180)}
  #end
 #end
#end
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 8 Feb 2024 17:55:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.65c5154df4e0c5dc1f9dae3025979125%40news.povray.org%3E/#%3Cweb.65c5154df4e0c5dc1f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.65c5154df4e0c5dc1f9dae3025979125%40news.povray.org%3E/#%3Cweb.65c5154df4e0c5dc1f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Kenneth] Re: Making Patterns with functions [812 days 23 hours and 44 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;quot;Kenneth&amp;quot; &amp;lt;kdw###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; Is the technique you refer to here&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; the same as Mike's 'thickening' trick using 2 parallel surfaces (page 18 of&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; 149)? Or is it something different?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; It is the same - yet with a slight difference.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; If you're trying to make a black pattern on a white background, you're going to&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; want a solid black pattern, not a small gradient from -C to 0 to +C.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; So you just use select to make a discontinuous function.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #declare Pattern = function {select (abs(F(x,y,z)-C, 0, 0, 1)}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; And then when you do plane {z, 0, pigment {function {Pattern (x, y, z)}}}, you&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; get what you're probably expecting.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
Great, thanks. Yes, you were reading my mind, ha. (Actually, my own use would be
the reverse-- a white pattern on a black background.) I'll test it and play...
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 24 Jan 2024 14:30:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.65b11ea5d81b84799b4924336e066e29%40news.povray.org%3E/#%3Cweb.65b11ea5d81b84799b4924336e066e29%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.65b11ea5d81b84799b4924336e066e29%40news.povray.org%3E/#%3Cweb.65b11ea5d81b84799b4924336e066e29%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Making Patterns with functions [813 days 2 hours and 34 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Kenneth&amp;quot; &amp;lt;kdw###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Is the technique you refer to here&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; the same as Mike's 'thickening' trick using 2 parallel surfaces (page 18 of&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; 149)? Or is it something different?&lt;/span&gt;

It is the same - yet with a slight difference.

If you're trying to make a black pattern on a white background, you're going to
want a solid black pattern, not a small gradient from -C to 0 to +C.

So you just use select to make a discontinuous function.

#declare Pattern = function {select (abs(F(x,y,z)-C, 0, 0, 1)}

And then when you do plane {z, 0, pigment {function {Pattern (x, y, z)}}}, you
get what you're probably expecting.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 24 Jan 2024 11:40:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.65b0f5f3d81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.65b0f5f3d81b84791f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.65b0f5f3d81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.65b0f5f3d81b84791f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Kenneth] Re: Making Patterns with functions [813 days 7 hours and 14 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Kenneth&amp;quot; &amp;lt;kdw###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:&lt;/span&gt;

&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; Use Mike Williams' &amp;quot;shell&amp;quot; trick for isosurfaces to give an infinitely&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; thin line a visible thickness&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Do you have a link to this trick, or a short explanation? (--keeping my fingers&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; crossed--)&lt;/span&gt;

I just took a look at the Mike Williams 'isosurface tutorial' that you packaged
and sent to me as a .pdf file some years ago. Is the technique you refer to here
the same as Mike's 'thickening' trick using 2 parallel surfaces (page 18 of
149)? Or is it something different?

Thickening--
If we have a function F(x,y,z) we can turn it into two parallel surfaces by
using abs(F(x,y,z))-C where C is some small value. The original function should
be one that works with zero threshold. The two resulting surfaces are what you
would get by rendering the original function with threshold +C and -C, but
combined into a single image. The space between the two surfaces becomes the
&amp;quot;inside&amp;quot; of the object. In this way we can construct things like glasses and
cups that have walls of non-zero thickness.

[example:]
#declare F = function {y + f_noise3d (x*2, 0, z*2)}
isosurface {
function {abs (F(x, y, z))-0.1}
......
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 24 Jan 2024 07:00:01 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.65b0b43dd81b84799b4924336e066e29%40news.povray.org%3E/#%3Cweb.65b0b43dd81b84799b4924336e066e29%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.65b0b43dd81b84799b4924336e066e29%40news.povray.org%3E/#%3Cweb.65b0b43dd81b84799b4924336e066e29%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Kenneth] Re: Making Patterns with functions [813 days 8 hours and 9 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; (Still experimenting and struggling with various aspects of getting patterns&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; from other platforms to play well with SDL.)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Important tips to generate quality patterns from equations&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ----------------------------------------------------------&lt;/span&gt;

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Use Mike Williams' &amp;quot;shell&amp;quot; trick for isosurfaces to give an infinitely thin line&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; a visible thickness&lt;/span&gt;

Say what??!!
That would be really useful.

Do you have a link to this trick, or a short explanation? (--keeping my fingers
crossed--)
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 24 Jan 2024 06:05:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.65b0a85dd81b84799b4924336e066e29%40news.povray.org%3E/#%3Cweb.65b0a85dd81b84799b4924336e066e29%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.65b0a85dd81b84799b4924336e066e29%40news.povray.org%3E/#%3Cweb.65b0a85dd81b84799b4924336e066e29%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Making Patterns with functions [814 days 18 hours and 24 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:

(Still experimenting and struggling with various aspects of getting patterns
from other platforms to play well with SDL.)

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Hammering out that many equations one after the other ... has allowed me to learn
some new things and gain valuable i&lt;/span&gt;
nsights ...



OK, just to list the ones that I've written down so far:
(Questions, comments, and constructive criticism welcome as always)

Important tips to generate quality patterns from equations
----------------------------------------------------------
Be very careful with the use of parentheses - especially when + or - is in an
equation.  Group terms.
 You may want to declare different parts of a complex equation as separate
functions, then combine them in the final function
Use fmod instead of mod to get a regular repetition of a pattern across the
origin
 HOWEVER, sometimes using mod in certain functions gives a better (more
expected) result - so try both
Use Mike Williams' &amp;quot;shell&amp;quot; trick for isosurfaces to give an infinitely thin line
a visible thickness
Change the line thickness to give definition to patterns that may not show up
with smaller values.
Some equations don't cross the zero/integer/mod threshold often enough to show
finer details.  Multiply the
WHOLE equation (use parentheses) by a factor to increase the number of
lines/levels.
Zoom in or out to see pattern attributes that may not be visible or clearly
rendered.
If you're graphing y as a function of x, then you must write it in the form of:
function {y - formula} since when y=formula, the value is 0
If you're graphing a 2-argument function of both x and y, then you must write it
in the form of: function {(x - x_formula) + (y - y_formula)}

If you're graphing a polar equation, then write it in the form of: function {r -
formula}

POV-Ray's internal method of wrapping function values winds up hiding negative
vs positive parts,
 and won't be revealed until made as an isosurface, or the function is shifted
by + 0.5 and visualized with a color map

If you're using functions that return values in the 0-255 range, you're going to
have to divide the result by 255

If the function repeats over a range of 0-255, then you're going to have to use
mod (Function (x, y, z), 256)/255

You're going to need function versions of HSV to RGB to perform color
calculations

For full-color patterns, you're going to separate functions for r, g, and b,
plus an average texture using all 3 functions

There are common functions and operations that the function parser doesn't
recognize, and you'll have to write your own versions of

identifiers previously declared in a scene (even for loop iterators!) cannot
then be used in a function

If you're experiencing a blank pattern (all black/white/gray) then you have
likely forgotten to explicitly include x, y, and z into your function
argument list.  If your function takes some value N as an argument, but also
uses x, y, or z, then you must #declare F = function (x, y, z, N) {}

If your pattern only appears in the first quadrant (upper right, both x and y
are positive), then you will likely need to use abs(X) and abs(y) in your
equation
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 22 Jan 2024 19:50:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.65aec611d81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.65aec611d81b84791f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.65aec611d81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.65aec611d81b84791f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Francois LE COAT] Re: Head Pose [823 days 21 hours and 29 minutes ago]</title>
		<description>
&lt;pre&gt;Hi,

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; William F Pokorny writes:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; Francois LE COAT wrote:&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; I have a webcam on my Vaio ... I've moved my head in front of the&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; camera, extracted the pose of the head with projective transform&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; parameters, and re-injected those parameters in POV-ray in order to&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; move a &amp;quot;virtual head&amp;quot; rendered with it. This give the video :&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; &amp;lt;http://hebergement.u-psud.fr/lecoat/camera_fixe.mp4&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; Does somebody already seen that kind of demonstration results ?&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; Neat! I do not recall seeing this sort of camera to model coupling bei&lt;/span&gt;
ng
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; accomplished with POV-Ray.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; The processing is only based on computer vision and image processing,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; with one webcam. I obtained the parameters of the movement with image&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; registration and an original projective model. I don't think this&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; result can be obtained without the POV-Ray scripting capabilities.&lt;/span&gt;

A WEB page was made to illustrate the Head Pose experiment...

When we want to determine the movement, there are two simplifying
hypotheses. Either the camera is fixed, and the observed scene is
moving. Or the camera moves, and the scene is static. In the general
case, the camera and the scene are moving, and it is necessary to
segment static and dynamic elements of what is observed. In this case
the camera is fixed, and it observes the person who is located in front
of the computer and moving. The goal of the experiment is to reconstruct
the visible relief, by &amp;quot;monocular depth&amp;quot;...

&amp;lt;https://hebergement.universite-paris-saclay.fr/lecoat/demoweb/profondeur
.html&amp;gt;

That is to say we obtain the depth (inversely proportional to the
disparity) by measuring the optical-flow, with a single camera, tough
this measurement is classically made by binocular vision (for disparity)

Best regards,

-- 
Fran&amp;#231;ois LE COAT
&amp;lt;https://hebergement.universite-paris-saclay.fr/lecoat&amp;gt;
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 13 Jan 2024 16:45:02 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C65a2be0e%241%40news.povray.org%3E/#%3C65a2be0e%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C65a2be0e%241%40news.povray.org%3E/#%3C65a2be0e%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[And] Re: Making Patterns with functions [826 days 10 hours and 49 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Over the last 2 days, I've fallen down the mathematical pattern rabbit hole, and&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; have been experimenting with all manner of what can be done with a simple&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; pigment {function {}}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; statement.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I currently have a list of 155 different patterns, including simple y = f(x)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; style functions, implicit equations (some combination of x&amp;amp;y) = (some other&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; combination of x&amp;amp;y), and even some parametric polar equations and what I believe&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; are parametric Cartesian equations.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Hammering out that many equations one after the other and using different&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; methods to visualize the &amp;quot;raw&amp;quot; results has allowed me to learn some new things&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; and gain valuable insights into how best achieve a good, aesthetically pleasing&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; result, and why some patterns might be difficult to implement in the absence of&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; various &amp;quot;tricks&amp;quot;.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; At this junction, I would like to thank everyone in the POV-Ray community, and&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; especially Tor Olav Kristensen, Sam Benge, jr, William Pokorny, Jerome Grimbert,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; as well as the vast Shadertoy community - most notably Inigo Quilez, Martijn&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Steinrucken, and FabriceNeyret2, for inspiring me, and setting me on the path of&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; discovery with regard to using functions to make amazing patterns.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; With that, I'll just leave here a most amazing Greek frieze pattern, produced by&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; an astonishingly small amount of code, adapted to SDL from a shader by&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; FabriceNeyret2.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; While this is probably one of the most complex patterns I've adapted, simply due&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; to some specialized and highly technical methods that make its visibility even&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; possible, I'd love to see people experimenting with simple equations to produce&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; interesting patterns that we can build a library of.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; After progressively trimming down the amount of code I need to make a simple&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; grid on a plane, I'd love to see such patterns code-golfed down to the bare&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; minimum, and then parameterized to increase their variation and versatility.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Happy New Year, everyone.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; - Bald Eagle&lt;/span&gt;

Wow, this one looks not easy and beautiful.
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 11 Jan 2024 03:25:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.659f5f83d81b8479d7bff071aa81652d%40news.povray.org%3E/#%3Cweb.659f5f83d81b8479d7bff071aa81652d%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.659f5f83d81b8479d7bff071aa81652d%40news.povray.org%3E/#%3Cweb.659f5f83d81b8479d7bff071aa81652d%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Thomas de Groot] Re: Making Patterns with functions [827 days 7 hours and 5 minutes ago]</title>
		<description>
&lt;pre&gt;Op 09/01/2024 om 21:07 schreef Bald Eagle:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Enjoy the eye and mind candy.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;

Oh LOL! Well done :-)

-- 
Thomas
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 10 Jan 2024 07:08:36 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C659e4274%40news.povray.org%3E/#%3C659e4274%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C659e4274%40news.povray.org%3E/#%3C659e4274%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Making Patterns with functions [827 days 18 hours and 4 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Tor Olav Kristensen&amp;quot; &amp;lt;tor###&amp;nbsp;[at]&amp;nbsp;TOBEREMOVEDgmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Very nice. Well done!&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I'm glad to see that you are advancing your math and coding skills Bill.&lt;/span&gt;

Well, I'm moving forward bit by bit, but all the credit for that pattern
definitely goes to the author.

There's a function or two that I need to puzzle out to understand what they do
and how they are so essential to creating the pattern.

Just as a reminder to myself, I may have to branch out into the 3rd dimension to
see if I can work some of the same &amp;quot;magic&amp;quot; with media density by incorporating
z.

However, along those lines, I was admiring another nice little piece of work
that I stumbled across, and it prompted me to work out the gory details of
Euler's formula, Taylor series, and all of that &amp;quot;e to the power of&amp;quot; stuff that
seems to creep into all manner of interesting topics.

I edited the poem a bit, but shamelessly stole the idea (even though I had to
painfully work out the implementation from first principles).  I didn't realize
I'd need about 20 terms in the Taylor series to get a good enough approximation.
 :O

Enjoy the eye and mind candy.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 9 Jan 2024 20:10:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.659da785d81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.659da785d81b84791f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.659da785d81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.659da785d81b84791f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Tor Olav Kristensen] Re: Making Patterns with functions [829 days 14 hours and 4 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; With that, I'll just leave here a most amazing Greek frieze pattern, produced by&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; an astonishingly small amount of code, adapted to SDL from a shader by&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; FabriceNeyret2.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;...&lt;/span&gt;

Very nice. Well done!

I'm glad to see that you are advancing your math and coding skills Bill.

--
Tor Olav
http://subcube.com
https://github.com/t-o-k
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 8 Jan 2024 00:10:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.659b3cddd81b8479e9c3f02789db30a9%40news.povray.org%3E/#%3Cweb.659b3cddd81b8479e9c3f02789db30a9%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.659b3cddd81b8479e9c3f02789db30a9%40news.povray.org%3E/#%3Cweb.659b3cddd81b8479e9c3f02789db30a9%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Kenneth] Re: Making Patterns with functions [830 days 12 hours and 34 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; With that, I'll just leave here a most amazing Greek frieze pattern, produced by&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; an astonishingly small amount of code, adapted to SDL from a shader by&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; FabriceNeyret2.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;

That is spectacularly beautiful! I'm dumbfounded, and amazed that your got
POV-ray to render such a fantastical pattern.

Keep at it, by all means; I can't wait to see what else you come up with.
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 7 Jan 2024 01:40:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.659a00b4d81b84799b4924336e066e29%40news.povray.org%3E/#%3Cweb.659a00b4d81b84799b4924336e066e29%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.659a00b4d81b84799b4924336e066e29%40news.povray.org%3E/#%3Cweb.659a00b4d81b84799b4924336e066e29%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Making Patterns with functions [830 days 22 hours and 29 minutes ago]</title>
		<description>
&lt;pre&gt;Thomas de Groot &amp;lt;tho###&amp;nbsp;[at]&amp;nbsp;degroot&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;org&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; First of all: a Happy (and POV-Productive) New Year.&lt;/span&gt;

Thanks Thomas, I hope to see some more excellent landscapes, textures, or even
just doodles with no particular point behind them.

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I am literally speechless.&lt;/span&gt;

Ha!  So was I.  :D  The shader is literally only 6 lines of code.
It still took me a fair amount of time to grope in the pitch black towards a
solution.

The funny thing is, earlier in the day I had been struggling (once more) to make
a simple spiral pattern, and here is a spiral, evenly divided into cells by
spiral arc-length, with different animated spirals in each cell!
I was also really happy that the solution relied on using the fwidth function,
as that lit a fire under my lazy butt to actually implement that in SDL as well.

So now I think I actually have all of the tools to push  forward on coding the
knots in the wood texture, along with the spiral interpolation thing... all
because I was doing something completely unrelated, and juts serendipitously
stumbled upon a shader that was linked from a page I found through an image
search.

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; You did an awesome bit of work and I wouldn't&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; know where to begin, especially as my mathematical skills are rather&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; rudimentary.&lt;/span&gt;

You, and Kenneth, and jr have all expressed as much, but I will tell you that
it's less about &amp;quot;knowing&amp;quot; the math, than simply acquiring a &amp;quot;feel&amp;quot; for it - a
sense of what types of things are related to what you're trying to accomplish,
or recognizing what terms in an equation are likely to be related to what parts
of the graph's shape.
Playing with an existing equation can rapidly sort all of that out, even if
initially it's all as opaque as obsidian.

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Are you going to provide us with some basic guide lines on&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; how to start such experimentation? I guess that would be needed for&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; several of us, setting us on our way.&lt;/span&gt;

Yes, I started summarizing the things I discovered in a comment section of my
patterns scene, and I'm hoping at some point to make further progress on a
function monograph that I started, specifically with jr and Kenneth in mind.

I think there are several things that have prevented me from successfully coding
some of the patterns that I've tried to reproduce in the past - and that makes
me think that I was probably tantalizingly close, but either I fell into the
trap of convincing myself that &amp;quot;it just couldn't be done&amp;quot;, or there were some
finer points of how to visualize what was going on that I was missing.
I'm sure I must have threw away a few equations here &amp;amp; there in this last coding
frenzy, simply because I forgot to subtract the whole thing from y, and so it
just looked like a lot of random static.

I'm finishing up an extended family visit, and have an event to attend later
this evening, but after I get everything settled after that, I ought to have
some uninterrupted hours to devote to doing some more experiments, writing some
educational code, and hopefully finding ways to create some example scenes and
explain things clearly enough so that it's easy enough to follow.

It would actually help a lot to just write out a big list of things that you've
always wondered about, want to do, tried but were confused by, or any other
curiosities and speculations - so that I have a target to aim for.
It's not so much that &amp;quot;you don't know math / were never taught it / don't have
the skills&amp;quot;, but WHY certain things are confusing or unknown to you.

Then I can think about what needs explaining, how best to explain it, and what
examples I can code to best illustrate the concepts.  And to be honest, I'm
still at the stage where I don't clearly understand exactly how half of the
stuff I code actually works - so I may do a lot of hand-waving until some of the
smarter people (TOK, Jerome, WFP, Ingo) chime in with explanations or links that
lead me by the nose hairs to enlightenment.

All the best,

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 6 Jan 2024 15:45:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6599745fd81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.6599745fd81b84791f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6599745fd81b84791f9dae3025979125%40news.povray.org%3E/#%3Cweb.6599745fd81b84791f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[ingo] Re: Making Patterns with functions [831 days 4 hours and 14 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Over the last 2 days, I've fallen down the mathematical pattern rabbit hole, and&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; have been experimenting with all manner of what can be done with a simple&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; pigment {function {}}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; statement.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;

Excellent!!

I always had/have hoped that at some time the function language would grow a bit
in the direction of shaders by making more/all internal data available to
functions. Colour and normals are obvious, but just think of having also data on
radiosity, photons and what else there is inside POV-Ray that can be (ab)used.
These internal data do not even have to have any relation to textures or
objects. It's up to the artist to do something with them.

Photon data based displacement mapping for re-modeling meshes ...

A texture dependent on the number of times the light ray bounced before
intersection. Or normals based on the total length of a ray.


&amp;quot;Geluk in' tuk&amp;quot; (good luck in your pocket) for 2024,

ingo
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 6 Jan 2024 10:00:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6599237ad81b847917bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.6599237ad81b847917bac71e8ffb8ce3%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6599237ad81b847917bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.6599237ad81b847917bac71e8ffb8ce3%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Thomas de Groot] Re: Making Patterns with functions [831 days 6 hours and 55 minutes ago]</title>
		<description>
&lt;pre&gt;Op 05/01/2024 om 22:50 schreef Bald Eagle:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; [snip]&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; While this is probably one of the most complex patterns I've adapted, simply due&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; to some specialized and highly technical methods that make its visibility even&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; possible, I'd love to see people experimenting with simple equations to produce&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; interesting patterns that we can build a library of.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; After progressively trimming down the amount of code I need to make a simple&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; grid on a plane, I'd love to see such patterns code-golfed down to the bare&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; minimum, and then parameterized to increase their variation and versatility.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Happy New Year, everyone.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;

First of all: a Happy (and POV-Productive) New Year.

I am literally speechless. You did an awesome bit of work and I wouldn't 
know where to begin, especially as my mathematical skills are rather 
rudimentary. Are you going to provide us with some basic guide lines on 
how to start such experimentation? I guess that would be needed for 
several of us, setting us on our way.

Thanks indeed for your - and all those others - great work!

-- 
Thomas
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 6 Jan 2024 07:18:12 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C6598feb4%241%40news.povray.org%3E/#%3C6598feb4%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C6598feb4%241%40news.povray.org%3E/#%3C6598feb4%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Making Patterns with functions [831 days 16 hours and 19 minutes ago]</title>
		<description>
&lt;pre&gt;Over the last 2 days, I've fallen down the mathematical pattern rabbit hole, and
have been experimenting with all manner of what can be done with a simple
pigment {function {}}
statement.

I currently have a list of 155 different patterns, including simple y = f(x)
style functions, implicit equations (some combination of x&amp;amp;y) = (some other
combination of x&amp;amp;y), and even some parametric polar equations and what I believe
are parametric Cartesian equations.

Hammering out that many equations one after the other and using different
methods to visualize the &amp;quot;raw&amp;quot; results has allowed me to learn some new things
and gain valuable insights into how best achieve a good, aesthetically pleasing
result, and why some patterns might be difficult to implement in the absence of
various &amp;quot;tricks&amp;quot;.

At this junction, I would like to thank everyone in the POV-Ray community, and
especially Tor Olav Kristensen, Sam Benge, jr, William Pokorny, Jerome Grimbert,
as well as the vast Shadertoy community - most notably Inigo Quilez, Martijn
Steinrucken, and FabriceNeyret2, for inspiring me, and setting me on the path of
discovery with regard to using functions to make amazing patterns.

With that, I'll just leave here a most amazing Greek frieze pattern, produced by
an astonishingly small amount of code, adapted to SDL from a shader by
FabriceNeyret2.

While this is probably one of the most complex patterns I've adapted, simply due
to some specialized and highly technical methods that make its visibility even
possible, I'd love to see people experimenting with simple equations to produce
interesting patterns that we can build a library of.

After progressively trimming down the amount of code I need to make a simple
grid on a plane, I'd love to see such patterns code-golfed down to the bare
minimum, and then parameterized to increase their variation and versatility.

Happy New Year, everyone.

- Bald Eagle
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 5 Jan 2024 21:55:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.659879b9cca34dee1f9dae3025979125%40news.povray.org%3E/#%3Cweb.659879b9cca34dee1f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.659879b9cca34dee1f9dae3025979125%40news.povray.org%3E/#%3Cweb.659879b9cca34dee1f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: user_defined camera intermittent / threshold... [834 days 10 hours and 49 minutes ago]</title>
		<description>
&lt;pre&gt;William F Pokorny &amp;lt;ano###&amp;nbsp;[at]&amp;nbsp;anonymous&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;org&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; On the actual issue, unsure.&lt;/span&gt;

Well here's the thing.   the scene was rendering just fine for several renders
before I made a radical change to the functions (just adding a scalar), and then
even when i changed everything back to the original functions - the weird
behaviour persisted.

I'm not redefining any apparent keywords, however I am using the image
dimensions to adjust the aspect ratio in the user_defined block. Maybe I'll
define a right vector just to mix things up and see what happens.

In any event, the Cartesian forms are easy enough to implement, and calculating
the partial derivatives is 1000 times easier than in polar coordinates.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 3 Jan 2024 03:25:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6594d2bb8fec9b081f9dae3025979125%40news.povray.org%3E/#%3Cweb.6594d2bb8fec9b081f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6594d2bb8fec9b081f9dae3025979125%40news.povray.org%3E/#%3Cweb.6594d2bb8fec9b081f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[William F Pokorny] Re: user_defined camera intermittent / threshold... [834 days 14 hours and 50 minutes ago]</title>
		<description>
&lt;pre&gt;On 1/2/24 14:27, Kenneth wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Well, the rendered image IS called &amp;quot;astigmatism.png&amp;quot;. Maybe POV-ray's new&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; artificial-intelligence engine is at work, digesting your code and comparing it&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; to millions of human vision tests that it scraped for free from private medical&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; records around the world. Then it responded accordingly. Check your messages&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; pane, to see if the following is there:  &amp;quot;Hey, if this image looks blocky to&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; you, you definitely have astigmatism! Everyone else sees a perfectly normal&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; image.&amp;quot;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;

:-)

On the actual issue, unsure.

Looks render block related. Does using a single thread (+wt1) make a 
difference?

I vaguely recall setting all three directional components to 0 in a user 
defined camera, renders black - or transparent if using +ua. However, I 
didn't test my recollection.

Only other thought is that some apparent POV-Ray keywords are in fact 
declared as identifiers (IDs) at start up(a). Two such identifiers are 
'image_width' and 'image_height'. Keywords that are in fact IDs can be 
whacked by users in their SDL.

Bill P.

(a) - Most such 'apparent keyword' IDs are animation related.
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 2 Jan 2024 23:23:31 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C65949af3%241%40news.povray.org%3E/#%3C65949af3%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C65949af3%241%40news.povray.org%3E/#%3C65949af3%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Kenneth] Re: user_defined camera intermittent / threshold... [834 days 18 hours and 44 minutes ago]</title>
		<description>
&lt;pre&gt;Well, the rendered image IS called &amp;quot;astigmatism.png&amp;quot;. Maybe POV-ray's new
artificial-intelligence engine is at work, digesting your code and comparing it
to millions of human vision tests that it scraped for free from private medical
records around the world. Then it responded accordingly. Check your messages
pane, to see if the following is there:  &amp;quot;Hey, if this image looks blocky to
you, you definitely have astigmatism! Everyone else sees a perfectly normal
image.&amp;quot;
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 2 Jan 2024 19:30:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.659463868fec9b089b4924336e066e29%40news.povray.org%3E/#%3Cweb.659463868fec9b089b4924336e066e29%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.659463868fec9b089b4924336e066e29%40news.povray.org%3E/#%3Cweb.659463868fec9b089b4924336e066e29%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] user_defined camera intermittent / threshold ren... [834 days 19 hours and 54 minutes ago]</title>
		<description>
&lt;pre&gt;So, I managed to muster enough motivation to doggedly pursue implementing the
user_defined camera approach to modeling lens aberrations with Zernike
polynomials.

At present, I'm attempting to do that using --- derivatives of the polar
equations.  (Not at all sure I'm doing it right)

Anyway, the point is, that after fiddling a bit with the location and direction
parametric equations, POV-Ray suddenly decided to start partial-rendering my
scene with some bad 8-bit blocky censorship.
Sometimes it's fairly evenly distributed across the whole image, other times
it's only in the top half....

This leads to speculate that:
1. There's something wrong with my build (3.8 beta windows executable)
2. There's potentially something wrong with my (computer) memory  :P
3. There exists some sort of state-dependent bug in the user_defined camera code

I'm going to try to work everything out in Cartesian coordinates and see if
maybe that might behave better, plus I'll be a lot more confident about the
derivatives and the resulting normal vector I'll be using for the direction {}

If that fails, I'll try re-starting POV-Ray, and perhaps shutting down until I
get back in from this evening's exciting warehouse work adventure.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 2 Jan 2024 18:20:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.65945301e17c2e621f9dae3025979125%40news.povray.org%3E/#%3Cweb.65945301e17c2e621f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.65945301e17c2e621f9dae3025979125%40news.povray.org%3E/#%3Cweb.65945301e17c2e621f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Bubbles [847 days 10 hours and 9 minutes ago]</title>
		<description>
&lt;pre&gt;So, I've been way off my usual schedule, and so haven't had a lot of time to
focus on some of my other projects.

But I was watching a video about soap bubbles
https://www.youtube.com/watch?v=Dk0dB4HYnu0
and I found the bit about the film separating the two bubbles interesting.

For 2 bubbles, the radius of curvature of the film is ridiculously simple to
calculate, but then when I actually tried to sketch it out, I found that all of
the things that I needed to do were remarkably complex.  And that was just
sticking to 2D circles in the xy plane with &amp;quot;axis-aligned&amp;quot; circle centers.

It was certainly a lot trickier than it seemed at first glance.

It would be an interesting set of macros to calculate all this in 3D so as to
make some nice actual bubbles with iridescence, but thinking about what would be
necessary to make large bubble clusters makes my head hurt.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 21 Dec 2023 04:05:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6583b856f781b1d91f9dae3025979125%40news.povray.org%3E/#%3Cweb.6583b856f781b1d91f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6583b856f781b1d91f9dae3025979125%40news.povray.org%3E/#%3Cweb.6583b856f781b1d91f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Francois LE COAT] Re: Optical Pendulum [877 days 4 hours and 43 minutes ago]</title>
		<description>
&lt;pre&gt;Hi,

&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; ingo writes:&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; Francois LE COAT wrote:&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; A WEB page was made to illustrate the &amp;quot;optical pendulum&amp;quot; experiment:&lt;/span&gt;

&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;lt;https://hebergement.universite-paris-saclay.fr/lecoat/demoweb/optic&lt;/span&gt;
al_pendulum.html&amp;gt; 
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; Nice!&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; Thanks. I don't know anyone else working on such an experiment. It onl&lt;/span&gt;
y
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; requires a computer and a camera. This is so simple, but interesting!&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; Many people are trying to match images the best way, but there's no&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; real experiment like this &amp;quot;optical pendulum&amp;quot;, so far as I know about i&lt;/span&gt;
t?
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; The planar perspective transformation used for modelling the camera&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; motion, was added to the &amp;quot;optical pendulum&amp;quot; WEB page. Some of the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; transforms are present in Persistence of Vision, like 3 translations&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; and 3 rotations. But the &amp;quot;skew&amp;quot; or &amp;quot;shear&amp;quot; angles &amp;lt;Sx,Sy&amp;gt; are not&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; directly. Thanks for the POV-Ray advance users to have helped on that.&lt;/span&gt;

Here is the experimentation of the optical pendulum at its true rhythm
on a Dell Precision T3400 computer, Intel Core2 Quad Q6600 (2.4 GHz,
FSB 1066 MHz, 8 MB L2 cache, four cores)...

	&amp;lt;https://www.youtube.com/watch?v=3HnVTz1BPsU&amp;gt;

It is a machine which hosts GNU/Linux Mageia 8 in its 32-bits version,
and that is used to the maximum performances, thanks to multi-processing
and charge load balancing on the four cores. The calculation rate of the
eight movement parameters is at the time order of a second. Hardware
acceleration of algorithmic processing is envisaged.

Regards,

-- 
Fran&amp;#231;ois LE COAT
&amp;lt;https://eureka.atari.org/&amp;gt;
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 21 Nov 2023 09:30:11 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C655c78a3%241%40news.povray.org%3E/#%3C655c78a3%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C655c78a3%241%40news.povray.org%3E/#%3C655c78a3%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[And] Re: Direct stochastic tiling [883 days 2 hours and 14 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Trying to work out the &amp;quot;growth rings&amp;quot; part of the the paper, and while the words&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; sound reasonable, translating that into equations and code is --- less&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; straightforward.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Thankfully, due to the lessons of the past million projects, I can at least come&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; up with workable POV-Ray equivalents that serve the same purposes.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; At least the pattern looks like wood, although the texture and finish are&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; obviously not even close - since that will rely heavily on later work.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; hdr light probes really change the colors compared to a point light source and&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; sky_sphere!   :O&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; At least it looks somewhat like a cheap 4x4 post I might see at a big box store.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; - BW&lt;/span&gt;

Wow, this looks interesting.

The paper you posted: ?
https://arxiv.org/pdf/1511.04224.pdf

When I saw it again, it looks more valuable.
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 15 Nov 2023 12:00:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6554b1945bb87ec319234387aa81652d%40news.povray.org%3E/#%3Cweb.6554b1945bb87ec319234387aa81652d%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6554b1945bb87ec319234387aa81652d%40news.povray.org%3E/#%3Cweb.6554b1945bb87ec319234387aa81652d%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Direct stochastic tiling [893 days 18 hours and 29 minutes ago]</title>
		<description>
&lt;pre&gt;After a few more hours of feeling my way through the math of the patterns I
wanted,  I was able to apply the pores to the wood, and then add the rays.

I only partially know what I'm doing, and don't have very good control over how
all of the parameters in the functions work.

Basically what I'm doing is creating a grid of circles, but radially, using
cylindrical coordinates.

Then it's just adding some randomness and scaling to get the desired effects.

No idea if at this point adding SSLT to the finish would really boost it.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 4 Nov 2023 19:45:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.65469e125bb87ec31f9dae3025979125%40news.povray.org%3E/#%3Cweb.65469e125bb87ec31f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.65469e125bb87ec31f9dae3025979125%40news.povray.org%3E/#%3Cweb.65469e125bb87ec31f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Direct stochastic tiling [893 days 21 hours and 49 minutes ago]</title>
		<description>
&lt;pre&gt;Trying to work out the &amp;quot;growth rings&amp;quot; part of the the paper, and while the words
sound reasonable, translating that into equations and code is --- less
straightforward.

Thankfully, due to the lessons of the past million projects, I can at least come
up with workable POV-Ray equivalents that serve the same purposes.

At least the pattern looks like wood, although the texture and finish are
obviously not even close - since that will rely heavily on later work.

hdr light probes really change the colors compared to a point light source and
sky_sphere!   :O

At least it looks somewhat like a cheap 4x4 post I might see at a big box store.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 4 Nov 2023 16:25:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.65466f605bb87ec31f9dae3025979125%40news.povray.org%3E/#%3Cweb.65466f605bb87ec31f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.65466f605bb87ec31f9dae3025979125%40news.povray.org%3E/#%3Cweb.65466f605bb87ec31f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Direct stochastic tiling [894 days 13 hours and 24 minutes ago]</title>
		<description>
&lt;pre&gt;William F Pokorny &amp;lt;ano###&amp;nbsp;[at]&amp;nbsp;anonymous&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;org&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; On the &amp;quot;bah&amp;quot; comment. One of the things our current spiral capability&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; doesn't do well is start and stop exactly where we want it to - in a&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; clean way. We have hard starts and stops on numerical limits or by&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; fading the effect in or out. The piecemeal assembly of spirals does fill&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; a need for clean, limited duration, spirals - admittedly by default! :-)&lt;/span&gt;

Humbug.

The spiral equations are analytical, and therefore ought to lend themselves to
directly limiting the radius or arc length of the generated spiral.

It would be a simple matter of experimenting, asking a shadertoy coder, or
posting a request on stackoverflow or similar smarty-pants site for a way to
limit the rendered spiral's domain.

I have wide-ranging interests, a fertile and sometimes overactive imagination,
usually shallow pockets, and a disdain for people telling me what I can't or
especially am not allowed to do.

Which means that somehow, some way, eventually, _I'll find a way_.
I've done it with making a commercial database using only an open source
spreadsheet, and I've done it will full-color (almost) tileable Voronoi using
only functions.

Spirals ought to be easy.
I haven't even investigated implementing a SDF for the spiral, but I know it's
possible.

- BW

It would be nice to have a wish-list that operated something like a c++ list -
where things could be added onto the list and then removed (or marked as done),
so that people could scroll through it if they were bored and looking for
something to do.  ;)
Maybe enable tags to assign priority or difficulty levels, etc.
(Similar to bug-reporting 3rd party services like FlySpray, do they have
feature-request maintaining services?)
[Oh, right, I guess they do - it's called &amp;quot;SaaS&amp;quot;]
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 4 Nov 2023 00:50:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.654594d25bb87ec31f9dae3025979125%40news.povray.org%3E/#%3Cweb.654594d25bb87ec31f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.654594d25bb87ec31f9dae3025979125%40news.povray.org%3E/#%3Cweb.654594d25bb87ec31f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[William F Pokorny] Re: Direct stochastic tiling [894 days 14 hours and 53 minutes ago]</title>
		<description>
&lt;pre&gt;On 11/3/23 15:31, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Plenty of other spirals out there to code up and experiment with, once I get&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; some of this other heavy-lifting out of the way.&lt;/span&gt;

:-) Indeed. Somewhere, I've got a book on nothing but spirals.

I guess I see a practical need for some basic capability for vortex 
effects and a few of the more basic spirals. Beyond that, not sure.

Thanks for the additional ideas and especially the spiral code with 
which I play. I've got some of your earlier work on spirals stashed away 
too for when I can really get after the topic.

Heck, I've got a LOT of your general ideas stashed away! I can't keep up 
with you - or jr - truth be told.

On the &amp;quot;bah&amp;quot; comment. One of the things our current spiral capability 
doesn't do well is start and stop exactly where we want it to - in a 
clean way. We have hard starts and stops on numerical limits or by 
fading the effect in or out. The piecemeal assembly of spirals does fill 
a need for clean, limited duration, spirals - admittedly by default! :-)

Thanks for the thought to add the isosurface inside test comment to 
documentation. It's done in the documentation I'm shipping with the yuqk 
fork.

These days, I'm less a fan of massive popularity for POV-Ray than I 
expect you and others are. I'm becoming more and more averse to noise - 
and kids playing on my lawn.

Bill P.
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 3 Nov 2023 23:20:38 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C65458046%241%40news.povray.org%3E/#%3C65458046%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C65458046%241%40news.povray.org%3E/#%3C65458046%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Direct stochastic tiling [894 days 18 hours and 39 minutes ago]</title>
		<description>
&lt;pre&gt;William F Pokorny &amp;lt;ano###&amp;nbsp;[at]&amp;nbsp;anonymous&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;org&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; One thing I'd like to do in yuqk is dump the two inbuilt spiral patterns&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; for more general, tapered spiral warping as one or more additional&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; options of the warp{} mechanism.&lt;/span&gt;

Just search &amp;quot;shadertoy spiral&amp;quot; and you'll be there for hours.  ;)
https://www.shadertoy.com/user/FabriceNeyret2     is your guy.
Maybe if we reached out to him, he might have some interest in seeing what we do
here...

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; We have too f_spiral() - which has issues - as you well know. The&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; solutions to which, I believe, sit more with some sort of general&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; tapered warping capability.&lt;/span&gt;

Well, f_spiral, I think - was just something to make an isosurface type thing.
I think we could probably use some general spiral equations and implement the
tubular function approach for things like that.

Speaking of functions, it would probably be a good idea if you're implementing
inbuilt functions to have some mechanism by which to get the 1st and 2nd
derivatives, or a tangent to a point using a numerical approach --- useful
things to have that make coding a scene &amp;amp; orienting shapes a thousand times
easier for people.

With regard to warps and spirals, I finally got that spiral warp worked out,
which is just a rotation matrix with a falloff function.

Perhaps you could play with a general warp mechanism which takes a
transformation matrix and a falloff function and pairs them up to make a warp.
You could have 2D warps, 3D warps (like my tornado), etc.

I also absolutely think that we need to have a geometric inversion function,
since I think it's something that would inspire a LOT of experimentation, cool
scenes, novel approaches, animations, and all manner of things I can't possibly
predict.

Ditto FFT.  Have it take a start, stop, and function (especially spline), and
have it output an array.

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Aside: We can today implement a limited form of the sort of spiral - I&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; think you're implementing - with a series of half arc functions (there&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; is too the new-ish list_object pattern in yuqk which could use the torus&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; or functions via coded isosurfaces(a) (inside tests)). This approach,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; however, slows down significantly on the addition of each half arc.&lt;/span&gt;

Bah.  No need to do any such thing when doing it analytically it so
straightforward.

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; (a) The inside test of 'isosurface shapes' is relatively fast when used&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; for object based patterns. It's just whether the function returns a&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; negative value or not at a given location. In fact, 'isosurface shapes&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; for inside test purposes' do not need to be good isosurfaces with&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; respect to being render-able as actual shapes!&lt;/span&gt;

True.  That might be a good point to make in the documentation.

- BW


The basic Archimedean spiral is just:

#declare Distance = function (X, Y, Z) {sqrt (X*X+Y*Y+Z*Z)}
#declare fmod = function (Value, Modulo) {select (Value, 1 - mod (abs (Value),
Modulo), mod (abs (Value), Modulo))}  // this gives a mod function that remains
consistant across the origin
#declare Sqr = function (N) {N*N}

#declare ArmSpacing = 0.004;
#declare LineThickness = 0.0004;

#declare Aspect = image_width/image_height;
#declare U = function {x/image_width*Aspect}
#declare V = function {y/image_height}

#declare Angle = function {atan2 (V(x,y,z), U(x,y,z))}
#declare l = function {Distance (U(x,y,z), V(x,y,z), 0)}

#declare Offset = function {l(x,y,z) + ArmSpacing * (Angle(x,y,z)/(tau))}
#declare circles = function {fmod (Offset(x,y,z), ArmSpacing)}

#declare FracTurn = function {abs (l(x,y,z)/ArmSpacing - Angle(x,y,z)/(tau))}
#declare ArcLength = function (b, _Theta) {b/2 * (_Theta * sqrt (1 +
_Theta*_Theta) + ln (_Theta + sqrt (1 + _Theta*_Theta)))}

#declare f_Spiral = function {select (circles (x,y,z) - LineThickness, 0, 1)}


Plenty of other spirals out there to code up and experiment with, once I get
some of this other heavy-lifting out of the way.

Maybe we could/should have a website topic every month / quarter, and solicit
submissions for algorithms, functions, patterns, renders, etc. and have
something new and fresh on the POV-Ray homepage.

(I still think that getting out there on social media, and promoting POV-Ray is
the way forward wrt to finding new talent, and new people to help write source
so that we can fix bugs, add new features, and brainstorm a workable fresh start
with 4.0.)

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 3 Nov 2023 19:35:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.65454a8c5bb87ec31f9dae3025979125%40news.povray.org%3E/#%3Cweb.65454a8c5bb87ec31f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.65454a8c5bb87ec31f9dae3025979125%40news.povray.org%3E/#%3Cweb.65454a8c5bb87ec31f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[William F Pokorny] Re: Direct stochastic tiling [895 days 1 hour and 38 minutes ago]</title>
		<description>
&lt;pre&gt;On 11/2/23 18:19, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I think this would be a nice basic stock pattern for POV-Ray.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I set the spiral turn spacing to twice the line thickness to get a &amp;quot;maximally&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; dense&amp;quot; spiral.&lt;/span&gt;

I'm interested - FWIW. :-)

Maybe 5-6 weeks back I started to dig more into our warp{} code. I'd 
like to rework it all, including a bunch of hacks I have in that code. 
Then stuff, and more stuff, and it's on the back burner of the stove 
again...

One thing I'd like to do in yuqk is dump the two inbuilt spiral patterns 
for more general, tapered spiral warping as one or more additional 
options of the warp{} mechanism.

We have too f_spiral() - which has issues - as you well know. The 
solutions to which, I believe, sit more with some sort of general 
tapered warping capability.

Aside: We can today implement a limited form of the sort of spiral - I 
think you're implementing - with a series of half arc functions (there 
is too the new-ish list_object pattern in yuqk which could use the torus 
or functions via coded isosurfaces(a) (inside tests)). This approach, 
however, slows down significantly on the addition of each half arc.

(a) The inside test of 'isosurface shapes' is relatively fast when used 
for object based patterns. It's just whether the function returns a 
negative value or not at a given location. In fact, 'isosurface shapes 
for inside test purposes' do not need to be good isosurfaces with 
respect to being render-able as actual shapes!

Anyhow, I'm interested in seeing what code you work up.

Bill P.
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 3 Nov 2023 12:35:39 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C6544e91b%241%40news.povray.org%3E/#%3C6544e91b%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C6544e91b%241%40news.povray.org%3E/#%3C6544e91b%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Direct stochastic tiling [895 days 14 hours and 14 minutes ago]</title>
		<description>
&lt;pre&gt;It also seems to me that in addition to knowing if I'm on of off/in-between the
spiral, I'll need to somehow be able to know how far along the arc length of the
spiral I am at any given point.

Varying the r, g, and b values by different multiples of the arc length formula,
and changing the thickness of the lines as a function of arc length gives me the
attached.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 3 Nov 2023 00:00:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.654437bf5bb87ec31f9dae3025979125%40news.povray.org%3E/#%3Cweb.654437bf5bb87ec31f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.654437bf5bb87ec31f9dae3025979125%40news.povray.org%3E/#%3Cweb.654437bf5bb87ec31f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Direct stochastic tiling [895 days 15 hours and 54 minutes ago]</title>
		<description>
&lt;pre&gt;Slowing working through things.

To help me work through understanding how to use the end result of all of the
daisy-chained algorithms in an actual texture, I needed to understand how to
remap &amp;lt;x, y&amp;gt; into &amp;lt;r, theta&amp;gt;

So here's a nice pigment {function {}} to make an infinite spiral in the xy
plane.

(Thanks again, ShaderToy coders!)

I think this would be a nice basic stock pattern for POV-Ray.
I set the spiral turn spacing to twice the line thickness to get a &amp;quot;maximally
dense&amp;quot; spiral.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 2 Nov 2023 22:20:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.654420575bb87ec31f9dae3025979125%40news.povray.org%3E/#%3Cweb.654420575bb87ec31f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.654420575bb87ec31f9dae3025979125%40news.povray.org%3E/#%3Cweb.654420575bb87ec31f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[William F Pokorny] Re: No semicolon allowed in Tuple-style assignme... [896 days 4 hours and 9 minutes ago]</title>
		<description>
&lt;pre&gt;On 11/1/23 09:51, William F Pokorny wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; The short of what I wrote is I just ran across some buggy tuple behavior &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; trying to assign results from a macro.&lt;/span&gt;

Fixed in my yuqk fork. The error was in code I added to better handle 
empty parentheses in certain situations. The return state was wrong 
which confused the parser at the tuple assignment.

In official v3.8 parsers the test case generates unbalanced parentheses 
errors on some sets of balanced ones - where the inner most pair is empty.

Bill P.
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 2 Nov 2023 10:05:05 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C65437451%241%40news.povray.org%3E/#%3C65437451%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C65437451%241%40news.povray.org%3E/#%3C65437451%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Direct stochastic tiling [896 days 14 hours and 9 minutes ago]</title>
		<description>
&lt;pre&gt;Working through the spiral part of:

http://flycooler.com/download/Wood_SIGAsia2016.pdf

And struggling to understand

1) how the texture actually gets mapped/tiled onto the spiral

and

2) what points then, am I interpolating?

I'm guessing that either the 2D texture get mapped once onto each successive
turn of the spiral,
or it gets mapped linearly onto the nonlinear arc-length of the spiral arms, and
so there are then spaces between the x-dimension points?

Maybe someone could look at this and offer some ideas?
Even if you're just shooting in the dark, whatever you suggest might trigger an
idea for a solution.

Thanks!

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 2 Nov 2023 00:05:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6542e74b5bb87ec31f9dae3025979125%40news.povray.org%3E/#%3Cweb.6542e74b5bb87ec31f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6542e74b5bb87ec31f9dae3025979125%40news.povray.org%3E/#%3Cweb.6542e74b5bb87ec31f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Direct stochastic tiling [896 days 14 hours and 19 minutes ago]</title>
		<description>
&lt;pre&gt;Made some progress sorting out the whole &amp;quot;sparse convolution noise&amp;quot;.

Probably don't need to pursue this part any further until i see how it works in
the whole texture-generating chain of algorithms.
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 1 Nov 2023 23:55:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6542e4f95bb87ec31f9dae3025979125%40news.povray.org%3E/#%3Cweb.6542e4f95bb87ec31f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6542e4f95bb87ec31f9dae3025979125%40news.povray.org%3E/#%3Cweb.6542e4f95bb87ec31f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[William F Pokorny] Re: No semicolon allowed in Tuple-style assignme... [897 days and 22 minutes ago]</title>
		<description>
&lt;pre&gt;On 5/3/23 15:36, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I am back at it, and still experiencing a lot of weird behaviour with &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; regard to assigning tuple-style values via macros.&lt;/span&gt;

Well, another longer post just went poof...

The short of what I wrote is I just ran across some buggy tuple behavior 
trying to assign results from a macro.
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 1 Nov 2023 13:51:27 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C654257df%241%40news.povray.org%3E/#%3C654257df%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C654257df%241%40news.povray.org%3E/#%3C654257df%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[jr] Re: Direct stochastic tiling [906 days 18 hours and 29 minutes ago]</title>
		<description>
&lt;pre&gt;hi,

&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Re: Voronoi Furtune algorithm&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Update here - jr has been leading me by the nose-hairs ...&lt;/span&gt;

_that's_ what they were, eh ?!  &amp;lt;/grin&amp;gt;


&lt;span class=&quot;RC1&quot;&gt;&amp;gt; to get the binary tree / Red-Black tree coded up, and hopefully we (mostly he) will
have some code we can&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; start to play with soon.&lt;/span&gt;

to tease..


regards, jr.
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 22 Oct 2023 19:45:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.65357ab35bb87ec3b180e2cc6cde94f1%40news.povray.org%3E/#%3Cweb.65357ab35bb87ec3b180e2cc6cde94f1%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.65357ab35bb87ec3b180e2cc6cde94f1%40news.povray.org%3E/#%3Cweb.65357ab35bb87ec3b180e2cc6cde94f1%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Direct stochastic tiling [913 days 13 hours and 39 minutes ago]</title>
		<description>
&lt;pre&gt;Re: Voronoi Furtune algorithm

&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; So, I played around with starting to implement the Fortune algorithm for the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Voronoi diagram, but I also need a DCEL and a red-black tree data structure, a&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; balanced binary tree, or similar.&lt;/span&gt;

Update here - jr has been leading me by the nose-hairs to get the binary tree /
Red-Black tree coded up, and hopefully we (mostly he) will have some code we can
start to play with soon.

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Someone said it was easier to code the Bowyer-Watson algorithm, so I might try&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; to code both in parallel and see which one (if any) I get to work first.&lt;/span&gt;

Admittedly, I have not started on that one yet.

The RB-tree and the DCEL are used for storing the data for/from the Fortune
algorithm, and that seems to be mostly the results of &amp;quot;site events&amp;quot; and &amp;quot;circle
events&amp;quot;.

The site event seems trivial (scanline is the same height as a voronoi seed),
and so I worked out the detection of a circle event (the intersection of 3
parabolas)  to the best of my meager ability.

Shown is the point where the scanline generates a circle event, where the seeds
are all equidistant from each other and the scanline, and so all lie on a
circumcircle, with the Voronoi vertex at the center.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 16 Oct 2023 00:35:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.652c84b15bb87ec31f9dae3025979125%40news.povray.org%3E/#%3Cweb.652c84b15bb87ec31f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.652c84b15bb87ec31f9dae3025979125%40news.povray.org%3E/#%3Cweb.652c84b15bb87ec31f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Direct stochastic tiling [934 days 14 hours and 34 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
So, I played around with starting to implement the Fortune algorithm for the
Voronoi diagram, but I also need a DCEL and a red-black tree data structure, a
balanced binary tree, or similar.

I got a bunch of points and a scan line, and managed to plot all of the
parabolas and kind of draw some of the Voronoi edges by looping all the way down
the screen and plotting all of the intersection points.
It took a long time to spot a pair of missing parentheses that I should have
had.
Repeat after me: -b +/- sqrt (b*b -4*a*c)    ***ALL*** over 2*a
which makes it (-b +/- sqrt (b*b -4*a*c)) / 2*a

Someone said it was easier to code the Bowyer-Watson algorithm, so I might try
to code both in parallel and see which one (if any) I get to work first.

For that, I need to test if a point lay inside of a triangle's circumcircle, and
luckily someone had a nice little simple compact method for doing so.

I always find it fascinating how many geometric questions can be answered just
by simple arithmetic of point coordinates, be it sum, difference,
multiplication, vdot, vcross, or a matrix determinant.

We would be served well by compiling a list of such useful tricks and
maintaining that on a wiki page, or in the documentation, or as a periodically
updated (with version number and date) include file.

I also find these simple inside/outside test renders to be unusually visually
appealing for some reason.  Attached is the testing of 5000 points against a
triangle's circumcircle.

If there was a band named POV-Ray (a college friend had a band named Man Ray)
this would make a good album cover.   :D

- BE
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 24 Sep 2023 23:40:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6510c7ba5bb87ec31f9dae3025979125%40news.povray.org%3E/#%3Cweb.6510c7ba5bb87ec31f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6510c7ba5bb87ec31f9dae3025979125%40news.povray.org%3E/#%3Cweb.6510c7ba5bb87ec31f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[kurtz le pirate] Re: Direct stochastic tiling [936 days 5 hours and 27 minutes ago]</title>
		<description>
&lt;pre&gt;On 23/09/2023 01:30, Bald Eagle wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; One thing that I did notice is that I'm splicing out array entries until I have&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; an empty array.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; That was triggering an invalid array size error, which I fixed / worked around&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; by doing:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #if (newSize &amp;lt;= 0)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   #local tmpArray = array;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  #else&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   #local tmpArray = array[newSize]&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  #end&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; and&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #if (newSize &amp;lt;= 0)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   #declare thisArray = array;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  #else&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   #declare thisArray = array[newSize]&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  #end&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Maybe do some further testing and see what you think, then update that last&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; macro.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;


AAs always, that's a very good remark on your part.

I've never thought about the cases where the arrays are empty.

I'm going to apply your suggestions, correct my macros and
run more in-depth tests.







-- 
Kurtz le pirate
Compagnie de la Banquise
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 23 Sep 2023 08:47:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C650ea604%241%40news.povray.org%3E/#%3C650ea604%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C650ea604%241%40news.povray.org%3E/#%3C650ea604%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Direct stochastic tiling [936 days 14 hours and 19 minutes ago]</title>
		<description>
&lt;pre&gt;Alrighty.

I managed to work through a bunch of the code and twiddle this and that until I
got it to &amp;quot;work&amp;quot; and pretty much fill the screen with selected points.

The first issue that I ran into was that I was doing some kind of &amp;quot;screen size
math&amp;quot; which was just messing everything up, so I'm just using the whole image
resolution.

Then I managed to get a bunch of cycles to function, but the algorithm would
exit early - sometimes after only 7 cycles.

I added some logic to break out of the nested loops, and then I expanded the
neighbor search to a 5x5 grid, as suggested/explained/illustrated by Sebastian
Lague.

It still runs forever without a bailout value set, instead of exhausting the
Active array and properly exiting the macro.

Finally, the points are clustered much too closely - I ought to be able to draw
circles with radius R that don't overlap, and the attached image is using
circles that are only R/4.

Clearly POV-Ray is very different than Javascript or C#, or I'm really in a long
stretch of brain-fry or code blindness and am missing something very simple but
utterly crucial.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 22 Sep 2023 23:55:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.650e28ed5bb87ec31f9dae3025979125%40news.povray.org%3E/#%3Cweb.650e28ed5bb87ec31f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.650e28ed5bb87ec31f9dae3025979125%40news.povray.org%3E/#%3Cweb.650e28ed5bb87ec31f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Direct stochastic tiling [936 days 14 hours and 39 minutes ago]</title>
		<description>
&lt;pre&gt;kurtz le pirate &amp;lt;kur###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; maybe this inc file can help you?&lt;/span&gt;

One thing that I did notice is that I'm splicing out array entries until I have
an empty array.

That was triggering an invalid array size error, which I fixed / worked around
by doing:

#if (newSize &amp;lt;= 0)
  #local tmpArray = array;
 #else
  #local tmpArray = array[newSize]
 #end

and

#if (newSize &amp;lt;= 0)
  #declare thisArray = array;
 #else
  #declare thisArray = array[newSize]
 #end


Maybe do some further testing and see what you think, then update that last
macro.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 22 Sep 2023 23:35:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.650e23985bb87ec31f9dae3025979125%40news.povray.org%3E/#%3Cweb.650e23985bb87ec31f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.650e23985bb87ec31f9dae3025979125%40news.povray.org%3E/#%3Cweb.650e23985bb87ec31f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Direct stochastic tiling [936 days 20 hours and 9 minutes ago]</title>
		<description>
&lt;pre&gt;kurtz le pirate &amp;lt;kur###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; maybe this inc file can help you?&lt;/span&gt;

Yes Sir, that would probably help me avoid debugging THAT part, and see what
else I've buggered up.

Thanks - that's very nice little collection of very useful macros!   :)


- BW
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 22 Sep 2023 18:05:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.650dd70d5bb87ec31f9dae3025979125%40news.povray.org%3E/#%3Cweb.650dd70d5bb87ec31f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.650dd70d5bb87ec31f9dae3025979125%40news.povray.org%3E/#%3Cweb.650dd70d5bb87ec31f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[kurtz le pirate] Re: Direct stochastic tiling [936 days 22 hours and 48 minutes ago]</title>
		<description>
&lt;pre&gt;On 22/09/2023 02:37, Bald Eagle wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I have coded the first one, but it doesn't work, because I probably messed up my&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; push/splice macros, and I have to work out the array indices, because those are&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; going awry as always.   :/&lt;/span&gt;

maybe this inc file can help you?





-- 
Kurtz le pirate
Compagnie de la Banquise
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 22 Sep 2023 15:25:49 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C650db1fd%40news.povray.org%3E/#%3C650db1fd%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C650db1fd%40news.povray.org%3E/#%3C650db1fd%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Direct stochastic tiling [937 days 3 hours and 44 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;ingo&amp;quot; &amp;lt;nomail@nomail&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; These &amp;quot;computer science&amp;quot; papers are all shit&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Have you tried a search engine lately? Top 20 lists ... Stupid AI's ....&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ingo &amp;lt;ducks and hides&amp;gt;&lt;/span&gt;

Yeah - they're all changing - for the worst.
https://www.youtube.com/watch?v=48AOOynnmqU

I used to used duck duck go for a bit - until they sold out.
Then I switched primarily to Brave, but they stopped having useful search
results.
I find myself using Yandex a lot.

It's painful to have lived through &amp;quot;the golden age of the internet&amp;quot; and know
that all that stuff is out there  ---- somewhere.

The other thing that I find strange is that I'll get a list of search results,
and when I click on one of the top ones, the site is nonexistent.  So then
what's the result doing in the list?  How do I have an image thumbnail that goes
along with it, but can't get anywhere to see the image???


It's getting really weird.
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 22 Sep 2023 10:30:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.650d6c005bb87ec31f9dae3025979125%40news.povray.org%3E/#%3Cweb.650d6c005bb87ec31f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.650d6c005bb87ec31f9dae3025979125%40news.povray.org%3E/#%3Cweb.650d6c005bb87ec31f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[ingo] Re: Direct stochastic tiling [937 days 8 hours and 39 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; These &amp;quot;computer science&amp;quot; papers are all shit&lt;/span&gt;

Have you tried a search engine lately? Top 20 lists ... Stupid AI's ....

ingo &amp;lt;ducks and hides&amp;gt;
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 22 Sep 2023 05:35:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.650d264f5bb87ec317bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.650d264f5bb87ec317bac71e8ffb8ce3%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.650d264f5bb87ec317bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.650d264f5bb87ec317bac71e8ffb8ce3%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Direct stochastic tiling [937 days 13 hours and 34 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;ingo&amp;quot; &amp;lt;nomail@nomail&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; Not sure I'm looking forward to the Poisson disk part of this....&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; There is a poisson distribution in rand.inc, if it helps.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ingo&lt;/span&gt;

Thanks, but I went over that several times, and can't for the life of me figure
out what that does or how to implement / visualize it.  I think that somehow
that's a &amp;quot;different&amp;quot; Poisson distribution.

&amp;quot;The number of point in an area A is Poisson-distributed with mean equal to the
area times the density. For this reason, the distribution is often called a
Poisson distribution.  This unfortunate terminology should not be confused with
the univariate discrete Poisson distribution.&amp;quot;
http://www.dgp.toronto.edu/~elf/.misc/poissondisk.pdf (bottom of pg 3)


I think that basically what I need is:

https://www.youtube.com/watch?v=flQgnCUxHlw
https://editor.p5js.org/codingtrain/sketches/4N78DFCXN

https://www.youtube.com/watch?v=7WcmyxyFO7o
https://github.com/SebLague/Poisson-Disc-Sampling/tree/master/Poisson%20Disc%20Sampling%20E01

I have coded the first one, but it doesn't work, because I probably messed up my
push/splice macros, and I have to work out the array indices, because those are
going awry as always.   :/

These &amp;quot;computer science&amp;quot; papers are all shit - since there's no code, and
therefore no way to verify/reproduce their work.  As a chemist, I had to give a
full, detailed experimental procedure, plus physical characteristics, spectral
data, etc.

&amp;quot;Find the center of gravity of the Voronoi region....&amp;quot;
Oh yeah, buddy.   Go cut down the tallest tree in the forest with .... A
HERRING!

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 22 Sep 2023 00:40:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.650ce1c85bb87ec31f9dae3025979125%40news.povray.org%3E/#%3Cweb.650ce1c85bb87ec31f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.650ce1c85bb87ec31f9dae3025979125%40news.povray.org%3E/#%3Cweb.650ce1c85bb87ec31f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[ingo] Re: Direct stochastic tiling [938 days 1 hour and 34 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Not sure I'm looking forward to the Poisson disk part of this....&lt;/span&gt;

There is a poisson distribution in rand.inc, if it helps.

ingo
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 21 Sep 2023 12:40:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.650c39405bb87ec317bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.650c39405bb87ec317bac71e8ffb8ce3%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.650c39405bb87ec317bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.650c39405bb87ec317bac71e8ffb8ce3%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Direct stochastic tiling [938 days 3 hours and 44 minutes ago]</title>
		<description>
&lt;pre&gt;Also, here's a zoomed-in version, with thicker borders, and some rgb 0 cylinders
to separate the unit squares so that the tile structure is a lot more evident.

Not sure I'm looking forward to the Poisson disk part of this....
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 21 Sep 2023 10:30:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.650c1a905bb87ec31f9dae3025979125%40news.povray.org%3E/#%3Cweb.650c1a905bb87ec31f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.650c1a905bb87ec31f9dae3025979125%40news.povray.org%3E/#%3Cweb.650c1a905bb87ec31f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Direct stochastic tiling [938 days 3 hours and 49 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Would you like to not lose your mind trying to figure out why patterns don't do&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; what you think they're supposed to do?&lt;/span&gt;

After I posted this, I was looking at the rendered pattern, and noticed that
there was a lot of red, and very very little yellow, and since there's been
commentary on just how improbably it is to get an actual 1 or 0 from the PRNG, I
wondered what the spread of f_noise3d in functions.inc was.

It sucks.

After a few failed attempts to coax the output to cover a greater range, I took
5 noise samples at scales increasing by powers of 10, and did 1+2-3+4-5, and
then folded any out of range results back in with 2 nested select () functions.
That seemed to give a much more uniformly distributed random result, and a much
more varied coloration to the pattern.

- BE
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 21 Sep 2023 10:25:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.650c19af5bb87ec31f9dae3025979125%40news.povray.org%3E/#%3Cweb.650c19af5bb87ec31f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.650c19af5bb87ec31f9dae3025979125%40news.povray.org%3E/#%3Cweb.650c19af5bb87ec31f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Direct stochastic tiling [938 days 12 hours and 9 minutes ago]</title>
		<description>
&lt;pre&gt;Following through a long train of papers and references therein, I picked a part
of one that looked &amp;quot;simple&amp;quot; to implement.

The attached is a &amp;quot;Direct stochastic tiling&amp;quot; pattern that assigns any unit
square a random, but calculable Wang tile.  The edge color of any Wang tile
matches the edge of any adjacent Wang tile.

https://graphics.cs.kuleuven.be/publications/LD05PODF/LD05PODF_paper.pdf

Since it's a pattern, it's all functions.

Would you like to not lose your mind trying to figure out why patterns don't do
what you think they're supposed to do?  Especially across the origin?
Stop using mod (), and use the user-defined function:

#declare fmod = function (N, Modulo) {select (N, 1-mod(abs(N), Modulo), mod
(abs(N), Modulo))}

And use that wherever you need x, y, or z in a repeating unit-square pattern.

- BE
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 21 Sep 2023 02:05:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.650ba428c90fe1dd1f9dae3025979125%40news.povray.org%3E/#%3Cweb.650ba428c90fe1dd1f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.650ba428c90fe1dd1f9dae3025979125%40news.povray.org%3E/#%3Cweb.650ba428c90fe1dd1f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Thomas de Groot] Re: Editing or creating an image or heightfield ... [945 days 1 hour and 10 minutes ago]</title>
		<description>
&lt;pre&gt;Op 13-9-2023 om 19:33 schreef ingo:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; An other option, if you want to shape an island, in the insert menu/special&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; shapes/meshmaker.inc/p_cylinder_crackle2 shows how to do displacement of mesh&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; vertices. This in principle works for all things one can make with the mesh&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; macros. You could extrude the island shape and then deform the mesh or build the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; island shape with multiple splines.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;

I correctly remembered I had played some with meshmaker. I used in the 
example included, a granite pattern, heavily scaled up in the horizontal 
directions. Not a sedimentary pattern but I see where to go from here.

-- 
Thomas
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 14 Sep 2023 13:04:02 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C650304c2%40news.povray.org%3E/#%3C650304c2%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C650304c2%40news.povray.org%3E/#%3C650304c2%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Thomas de Groot] Re: Editing or creating an image or heightfield ... [945 days 1 hour and 16 minutes ago]</title>
		<description>
&lt;pre&gt;Op 14-9-2023 om 12:49 schreef Bald Eagle:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Excellent.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Here's another one where I just rendered the faces of the boxes as meshes and&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; added in a function to give some tectonic sqooshing of the lateral layers of the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; strata.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Very quick, buggy early morning WIP.&lt;/span&gt;

For a quick buggy, it is a ride I would not have missed! ;-)

Very good indeed; it is development full of promises.

-- 
Thomas
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 14 Sep 2023 12:57:08 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C65030324%241%40news.povray.org%3E/#%3C65030324%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C65030324%241%40news.povray.org%3E/#%3C65030324%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Editing or creating an image or heightfield ... [945 days 3 hours and 24 minutes ago]</title>
		<description>
&lt;pre&gt;Thomas de Groot &amp;lt;tho###&amp;nbsp;[at]&amp;nbsp;degroot&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;org&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Yes indeed. Thanks Bill. My main problem at the moment is that I have so&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; little time to do some significant experiments, and I fail to come&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; across those things I did already in the past on this very same chapter.&lt;/span&gt;

That is indeed the ebb and flow of what we do here.
A long, prolonged and eerie silence, followed by a sudden flurry of frenetic
activity.


&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Patience! I shall tackle all this asap and see where it brings me; there&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; are a couple of ideas you and ingo have reawakened that I want to pursue.&lt;/span&gt;


Excellent.
Here's another one where I just rendered the faces of the boxes as meshes and
added in a function to give some tectonic sqooshing of the lateral layers of the
strata.

Very quick, buggy early morning WIP.
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 14 Sep 2023 10:50:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6502e530574212401f9dae3025979125%40news.povray.org%3E/#%3Cweb.6502e530574212401f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6502e530574212401f9dae3025979125%40news.povray.org%3E/#%3Cweb.6502e530574212401f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Thomas de Groot] Re: Editing or creating an image or heightfield ... [945 days 7 hours and 32 minutes ago]</title>
		<description>
&lt;pre&gt;Op 13/09/2023 om 22:00 schreef Bald Eagle:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; So, this is just boxes with a granite texture, nothing fancy yet.&lt;/span&gt;

Yes indeed. Thanks Bill. My main problem at the moment is that I have so 
little time to do some significant experiments, and I fail to come 
across those things I did already in the past on this very same chapter. 
Patience! I shall tackle all this asap and see where it brings me; there 
are a couple of ideas you and ingo have reawakened that I want to pursue.

-- 
Thomas
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 14 Sep 2023 06:42:02 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C6502ab3a%40news.povray.org%3E/#%3C6502ab3a%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C6502ab3a%40news.povray.org%3E/#%3C6502ab3a%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Thomas de Groot] Re: Editing or creating an image or heightfield ... [945 days 7 hours and 38 minutes ago]</title>
		<description>
&lt;pre&gt;Op 13/09/2023 om 19:33 schreef ingo:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Thomas de Groot &amp;lt;tho###&amp;nbsp;[at]&amp;nbsp;degroot&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;org&amp;gt; wrote:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; Thanks for the pointer, Ingo!&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Here's an other version, using a patter function for the structure. First a&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; union{hf box} then the intersection.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; An other option, if you want to shape an island, in the insert menu/special&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; shapes/meshmaker.inc/p_cylinder_crackle2 shows how to do displacement of mesh&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; vertices. This in principle works for all things one can make with the mesh&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; macros. You could extrude the island shape and then deform the mesh or build the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; island shape with multiple splines.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ---%&amp;lt;------%&amp;lt;------%&amp;lt;---&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; // PoVRay 3.7 Scene File &amp;quot; hf_intersection_2.pov&amp;quot;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; // author:  ingo&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; // date:    2023-09-13&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; //--------------------------------------------------------------------------&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #version 3.7;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; global_settings{ assumed_gamma 1.0 }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #default{ finish{ ambient 0.1 diffuse 0.7 }}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; camera {&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    perspective angle 5               // front view&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    location  &amp;lt;20.0 , 0.0 ,-40.0&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    right     x*image_width/image_height&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    look_at   &amp;lt;0.0 , 0.0 , 0.0&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; light_source{&amp;lt; 3000, 3000,-6000&amp;gt; rgb 1}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; sky_sphere {&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    pigment {&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      gradient &amp;lt;0,1,0&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      color_map {&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;        [0.00 rgb &amp;lt;0.6,0.7,1.0&amp;gt;]&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;        [0.35 rgb &amp;lt;0.1,0.0,0.8&amp;gt;]&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;        [0.65 rgb &amp;lt;0.1,0.0,0.8&amp;gt;]&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;        [1.00 rgb &amp;lt;0.6,0.7,1.0&amp;gt;]&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      scale 2&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #declare Rock = union {&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    intersection{&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      height_field {&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;        function 1000,1000 {&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;          pattern {&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;            gradient -y&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;            scale .1&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;            turbulence 0.7&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;            octaves 12&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;            lambda 1.5&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;            omega 0.3&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;          }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;        }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      box{0,1.001}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      scale &amp;lt;1,0.05,1&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    box{&amp;lt;0,0,0&amp;gt;,&amp;lt;1,-1,1&amp;gt;}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    translate &amp;lt;-0.5,0.5,-0.5&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; intersection{&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    object{&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      Rock&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      translate &amp;lt;0,-0.1,0&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      pigment{rgb 1}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    object{&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      Rock&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      rotate &amp;lt;-90,0,0&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      translate &amp;lt;0,0,0.1&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      pigment{rgb 1}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    object{&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      Rock&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      rotate &amp;lt;90,90,0&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      translate &amp;lt;-0.1,0,0&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      pigment{rgb 1}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    rotate &amp;lt;-45,0,0&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ---%&amp;lt;------%&amp;lt;------%&amp;lt;---&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; You can modify the patterns in the HF_function with the functions in&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; https://ingoogni.nl/download/Gradients.zip&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ingo&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
Thanks for all this ingo, very much appreciated indeed. I need to review 
all this at leisure.

I used displacement mapping a couple of years ago for stoneworks, using 
Poseray:

https://news.povray.org/povray.binaries.images/thread/%3C60e02637%40news.povray.org%3E/

And (I think) I tackled Meshmaker too somewhere/-time in a similar 
manner. I really /need/ to delve deeper in my archives (and my hazy 
memory).... :-/

-- 
Thomas
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 14 Sep 2023 06:35:18 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C6502a9a6%241%40news.povray.org%3E/#%3C6502a9a6%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C6502a9a6%241%40news.povray.org%3E/#%3C6502a9a6%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Editing or creating an image or heightfield ... [945 days 18 hours and 9 minutes ago]</title>
		<description>
&lt;pre&gt;So, this is just boxes with a granite texture, nothing fancy yet.
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 13 Sep 2023 20:05:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.650214eb574212401f9dae3025979125%40news.povray.org%3E/#%3Cweb.650214eb574212401f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.650214eb574212401f9dae3025979125%40news.povray.org%3E/#%3Cweb.650214eb574212401f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Editing or creating an image or heightfield ... [945 days 20 hours and 34 minutes ago]</title>
		<description>
&lt;pre&gt;I think that if you did something like make a brick wall out of mesh blocks, in
the manner of building a wood floor, then you could &amp;quot;erode&amp;quot; the faces ad
abutting edges of all the blocks according to hardness assigned by a noise
function, and you could vary the height of the lateral strata, and govern the
shape of the protruding layer by using something like an x=pow(y, N) type
function that gets more square with higher powers (superellipsoid).

For that matter, you could even try just stacking superellipsoids to see how
that works.

Building the cliff with individual blocks would allow you to govern the size and
width of each piece, and allow indexing of any individual block.  You could also
remove or fracture out the majority of an individual block.

Also, going with the heightfield thing, you could just use a base heightfield
image for the basic clock, and then perturb it with a noise function, but rotate
it on its side, and scale it be a &amp;quot;block&amp;quot;.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 13 Sep 2023 17:40:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6501f2c5574212401f9dae3025979125%40news.povray.org%3E/#%3Cweb.6501f2c5574212401f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6501f2c5574212401f9dae3025979125%40news.povray.org%3E/#%3Cweb.6501f2c5574212401f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[ingo] Re: Editing or creating an image or heightfield ... [945 days 20 hours and 39 minutes ago]</title>
		<description>
&lt;pre&gt;Thomas de Groot &amp;lt;tho###&amp;nbsp;[at]&amp;nbsp;degroot&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;org&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Thanks for the pointer, Ingo!&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;

Here's an other version, using a patter function for the structure. First a
union{hf box} then the intersection.

An other option, if you want to shape an island, in the insert menu/special
shapes/meshmaker.inc/p_cylinder_crackle2 shows how to do displacement of mesh
vertices. This in principle works for all things one can make with the mesh
macros. You could extrude the island shape and then deform the mesh or build the
island shape with multiple splines.

---%&amp;lt;------%&amp;lt;------%&amp;lt;---

// PoVRay 3.7 Scene File &amp;quot; hf_intersection_2.pov&amp;quot;
// author:  ingo
// date:    2023-09-13
//--------------------------------------------------------------------------

#version 3.7;
global_settings{ assumed_gamma 1.0 }
#default{ finish{ ambient 0.1 diffuse 0.7 }}

camera {
  perspective angle 5               // front view
  location  &amp;lt;20.0 , 0.0 ,-40.0&amp;gt;
  right     x*image_width/image_height
  look_at   &amp;lt;0.0 , 0.0 , 0.0&amp;gt;
}

light_source{&amp;lt; 3000, 3000,-6000&amp;gt; rgb 1}

sky_sphere {
  pigment {
    gradient &amp;lt;0,1,0&amp;gt;
    color_map {
      [0.00 rgb &amp;lt;0.6,0.7,1.0&amp;gt;]
      [0.35 rgb &amp;lt;0.1,0.0,0.8&amp;gt;]
      [0.65 rgb &amp;lt;0.1,0.0,0.8&amp;gt;]
      [1.00 rgb &amp;lt;0.6,0.7,1.0&amp;gt;]
    }
    scale 2
  }
}


#declare Rock = union {
  intersection{
    height_field {
      function 1000,1000 {
        pattern {
          gradient -y
          scale .1
          turbulence 0.7
          octaves 12
          lambda 1.5
          omega 0.3
        }
      }
    }
    box{0,1.001}
    scale &amp;lt;1,0.05,1&amp;gt;
  }
  box{&amp;lt;0,0,0&amp;gt;,&amp;lt;1,-1,1&amp;gt;}
  translate &amp;lt;-0.5,0.5,-0.5&amp;gt;
}

intersection{
  object{
    Rock
    translate &amp;lt;0,-0.1,0&amp;gt;
    pigment{rgb 1}
  }

  object{
    Rock
    rotate &amp;lt;-90,0,0&amp;gt;
    translate &amp;lt;0,0,0.1&amp;gt;
    pigment{rgb 1}
  }

  object{
    Rock
    rotate &amp;lt;90,90,0&amp;gt;
    translate &amp;lt;-0.1,0,0&amp;gt;
    pigment{rgb 1}
  }

  rotate &amp;lt;-45,0,0&amp;gt;
}

---%&amp;lt;------%&amp;lt;------%&amp;lt;---

You can modify the patterns in the HF_function with the functions in
https://ingoogni.nl/download/Gradients.zip


ingo
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 13 Sep 2023 17:35:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6501f2555742124017bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.6501f2555742124017bac71e8ffb8ce3%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6501f2555742124017bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.6501f2555742124017bac71e8ffb8ce3%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Thomas de Groot] Re: Editing or creating an image or heightfield ... [945 days 23 hours and 10 minutes ago]</title>
		<description>
&lt;pre&gt;Op 13-9-2023 om 13:45 schreef ingo:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; simple quick example of HF intersection (the Mount2.png is in the 3.7&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; distribution):&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ---%&amp;lt;------%&amp;lt;------%&amp;lt;---&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; // PoVRay 3.7 Scene File &amp;quot; hf_intersection.pov&amp;quot;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; // author:  ingo&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; // date:    2023-09-13&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; //--------------------------------------------------------------------------&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #version 3.7;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; global_settings{ assumed_gamma 1.0 }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #default{ finish{ ambient 0.1 diffuse 0.9 }}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; camera {&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    perspective angle 75               // front view&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    location  &amp;lt;0.0 , 4.0 ,-10.0&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    right     x*image_width/image_height&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    look_at   &amp;lt;0.0 , 1.0 , 0.0&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; light_source{&amp;lt; 3000,3000,-3000&amp;gt; rgb 1}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; sky_sphere {&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    pigment {&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      gradient &amp;lt;0,1,0&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      color_map {&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;        [0.00 rgb &amp;lt;0.6,0.7,1.0&amp;gt;]&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;        [0.35 rgb &amp;lt;0.1,0.0,0.8&amp;gt;]&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;        [0.65 rgb &amp;lt;0.1,0.0,0.8&amp;gt;]&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;        [1.00 rgb &amp;lt;0.6,0.7,1.0&amp;gt;]&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      scale 2&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #declare Rock = height_field{&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    png &amp;quot;Mount2.png&amp;quot; smooth double_illuminate&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    translate&amp;lt;-0.5,-0.0,-0.5&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    scale&amp;lt;9, 2.5, 9&amp;gt;*2&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    texture{&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      pigment { color rgb &amp;lt;0.82,0.6,0.4&amp;gt;}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    rotate&amp;lt;0,-110,0&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    translate&amp;lt;1,0,11&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; intersection{&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    object{Rock}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    object {&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      Rock&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      scale 1.5&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      rotate &amp;lt;-33,0,-90&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      translate &amp;lt;-4,-1,0&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    object {&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      Rock&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;      rotate &amp;lt;0,0,90&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ---%&amp;lt;------%&amp;lt;------%&amp;lt;---&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ingo&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;

Right! I had been briefly wondering about something like this, but 
thought it would not really do. However, your example makes me think 
again more seriously. I need to think some more and - above all - play. 
Potential solutions are certainly there indeed.

Thanks for the pointer, Ingo!

-- 
Thomas
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 13 Sep 2023 15:03:31 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C6501cf43%241%40news.povray.org%3E/#%3C6501cf43%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C6501cf43%241%40news.povray.org%3E/#%3C6501cf43%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[ingo] Re: Editing or creating an image or heightfield ... [946 days 2 hours and 24 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;ingo&amp;quot; &amp;lt;nomail@nomail&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Thomas de Groot &amp;lt;tho###&amp;nbsp;[at]&amp;nbsp;degroot&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;org&amp;gt; wrote:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; Could we somehow achieve something similar using functions in POV-Ray,&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; without the help of isosurfaces? That would be my question.&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Create hight-fields using functions. Then rotate the one with the 'lines' and&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; intersect it with the one with the horizontal landscape.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ingo&lt;/span&gt;

simple quick example of HF intersection (the Mount2.png is in the 3.7
distribution):

---%&amp;lt;------%&amp;lt;------%&amp;lt;---
// PoVRay 3.7 Scene File &amp;quot; hf_intersection.pov&amp;quot;
// author:  ingo
// date:    2023-09-13
//--------------------------------------------------------------------------
#version 3.7;
global_settings{ assumed_gamma 1.0 }
#default{ finish{ ambient 0.1 diffuse 0.9 }}

camera {
  perspective angle 75               // front view
  location  &amp;lt;0.0 , 4.0 ,-10.0&amp;gt;
  right     x*image_width/image_height
  look_at   &amp;lt;0.0 , 1.0 , 0.0&amp;gt;
}

light_source{&amp;lt; 3000,3000,-3000&amp;gt; rgb 1}

sky_sphere {
  pigment {
    gradient &amp;lt;0,1,0&amp;gt;
    color_map {
      [0.00 rgb &amp;lt;0.6,0.7,1.0&amp;gt;]
      [0.35 rgb &amp;lt;0.1,0.0,0.8&amp;gt;]
      [0.65 rgb &amp;lt;0.1,0.0,0.8&amp;gt;]
      [1.00 rgb &amp;lt;0.6,0.7,1.0&amp;gt;]
    }
    scale 2
  }
}


#declare Rock = height_field{
  png &amp;quot;Mount2.png&amp;quot; smooth double_illuminate
  translate&amp;lt;-0.5,-0.0,-0.5&amp;gt;
  scale&amp;lt;9, 2.5, 9&amp;gt;*2
  texture{
    pigment { color rgb &amp;lt;0.82,0.6,0.4&amp;gt;}
  }
  rotate&amp;lt;0,-110,0&amp;gt;
  translate&amp;lt;1,0,11&amp;gt;
}

intersection{

  object{Rock}

  object {
    Rock
    scale 1.5
    rotate &amp;lt;-33,0,-90&amp;gt;
    translate &amp;lt;-4,-1,0&amp;gt;
  }

  object {
    Rock
    rotate &amp;lt;0,0,90&amp;gt;
  }


---%&amp;lt;------%&amp;lt;------%&amp;lt;---

ingo
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 13 Sep 2023 11:50:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6501a08f5742124017bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.6501a08f5742124017bac71e8ffb8ce3%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6501a08f5742124017bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.6501a08f5742124017bac71e8ffb8ce3%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[ingo] Re: Editing or creating an image or heightfield ... [946 days 4 hours and 29 minutes ago]</title>
		<description>
&lt;pre&gt;Thomas de Groot &amp;lt;tho###&amp;nbsp;[at]&amp;nbsp;degroot&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;org&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Could we somehow achieve something similar using functions in POV-Ray,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; without the help of isosurfaces? That would be my question.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;

Create hight-fields using functions. Then rotate the one with the 'lines' and
intersect it with the one with the horizontal landscape.

ingo
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 13 Sep 2023 09:45:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.650183f85742124017bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.650183f85742124017bac71e8ffb8ce3%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.650183f85742124017bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.650183f85742124017bac71e8ffb8ce3%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Thomas de Groot] Re: Editing or creating an image or heightfield ... [946 days 7 hours and 38 minutes ago]</title>
		<description>
&lt;pre&gt;Op 10/09/2023 om 18:01 schreef Bald Eagle:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; With regard to TdG's interest in erosion, I was thinking about doing a quick&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; test with an image map converted to a height_field.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; The only problem here is that I don't recall if there was a way to edit the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; pixel data in the image_map, or in the height_field, or to somehow use a&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; function {} or a 2D array to create an image or heightfield...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Or maybe a way to add/subtract / overlay onto the base image.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I can't use arrays in functions, otherwise I could do image_map {function&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; {array}}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; It would be useful to not have to load an image, convert that to an array, use&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; that array to create a mesh, then use the algorithm I'm experimenting with to&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; edit the mesh.....&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Does anyone have any ideas?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; - BW&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;

Real Time is binding me hands and feet, so a belated comment so far.

What I am personally looking for / interested in is not so much the 
generation of natural-looking heightfields in terms of erosional 
patterns like mountains and valleys which is provided by e.g. World 
Machine. In itself it is an interesting topic and I remember (but cannot 
find again) a series of tests some years ago where the drainage patterns 
on in the heightfields were used to generate down-flowing rivers using a 
trace function. I must have a whole collection of examples somewhere 
under the dust but to date I have not been able to find those.

What I am /really/ interested in is the rockface erosion in cliffs and 
such which enhance the natural aspect of any mountain or landscape. As 
an example I attach a photograph of the Faroe Islands showing a cliff 
face, but what you can see are those (sub-)horizontal layers of more or 
less &amp;quot;competent&amp;quot; (= hard/soft) rocks, in the cliff and in the overlying 
landscape. They account for regions where the rock faces are more or 
less overhanging. This is impossible in classical heightfields but easy 
to achieve with isosurfaces of course.

Could we somehow achieve something similar using functions in POV-Ray, 
without the help of isosurfaces? That would be my question.

-- 
Thomas
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 13 Sep 2023 06:35:33 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C65015835%40news.povray.org%3E/#%3C65015835%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C65015835%40news.povray.org%3E/#%3C65015835%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Editing or creating an image or heightfield ... [946 days 18 hours and 54 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;ingo&amp;quot; &amp;lt;nomail@nomail&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Tor Olav has, or at least some inspiration:&lt;/span&gt;

Hmmmm.... Very interesting.  I'm gonna need a bit of time to dissect that and
see how all the different parts work.
Knowing TOK, I'll probably walk away with some new lessons well worth learning,
which might give rise to some new inspirations and experiments.

Thanks for the links - I would have never made the connection and thought to
look there. (although I did, of course, suspect that he would have some ideas...
;) )

[Now of course, what we need to do is get him some _free time_ to POV!  :D ]

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 12 Sep 2023 19:20:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6500b8e3574212401f9dae3025979125%40news.povray.org%3E/#%3Cweb.6500b8e3574212401f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6500b8e3574212401f9dae3025979125%40news.povray.org%3E/#%3Cweb.6500b8e3574212401f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Recursive Backtracker Maze Algorithm [947 days 11 hours and 44 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Here's 100 by 100.&lt;/span&gt;

&amp;quot;Maybe I'll solve this tomorrow...&amp;quot;
Pffft.  We all know better than that, right?

A* solver took 4 min 5 sec to solve the maze.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 12 Sep 2023 02:30:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.64ffccbc14defef41f9dae3025979125%40news.povray.org%3E/#%3Cweb.64ffccbc14defef41f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.64ffccbc14defef41f9dae3025979125%40news.povray.org%3E/#%3Cweb.64ffccbc14defef41f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Recursive Backtracker Maze Algorithm [947 days 12 hours and 24 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; 5. I'm still not sure how the algorithm &amp;quot;erases&amp;quot; walls, and if that's the issue&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I'm having with the &amp;quot;islands&amp;quot; in the maze - drawing on a canvas and&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; instantiating primitives in 3D space are fundamentally different operations.&lt;/span&gt;

Because I'm STOOOOPID.
It's really easy to invert the meaning of things, and look at the inverse of a
maze.
After watching the relevant portion and paying very careful attention to the all
to brief explanation, I did a few experiments that highlighted the issue, and
let me unravel everything so that I now have proper, algorithm-correct,
fully-internally-connected mazes.

Here's 100 by 100.  I've already tried a 500 x 500, which is 250,000 cells, and
it works, but I'd have to render it a bit bigger than usual to have it show up
clearly.
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 12 Sep 2023 01:50:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.64ffc31714defef41f9dae3025979125%40news.povray.org%3E/#%3Cweb.64ffc31714defef41f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.64ffc31714defef41f9dae3025979125%40news.povray.org%3E/#%3Cweb.64ffc31714defef41f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Recursive Backtracker Maze Algorithm [947 days 17 hours and 14 minutes ago]</title>
		<description>
&lt;pre&gt;So, since I got the A* pathfinding algorithm to function, I figured that I ought
to have a maze generator to go along with it.

I got most of the thing coded and sort of working by last night, and then spent
~3h today after work trying to puzzle out where the rest of it was going wrong.

1. The &amp;amp;'s and |'s in POV-Ray's #if statements ALL get evaluated, so if you want
#if something
(then)
#if something else

then it needs to be coded that way instead of #if (S &amp;amp; SE)

2. I think I missed a few lines of code, because the guy's live-coding screen
real estate sucks, and he's really loosey-goosey with RT explanations, and
moving forward at a pretty good clip with the copy-paste

3. I believe that maybe the bitwise_and and bitwise_or may work differently in
POV-Ray than in c++, since I seemed to be getting cross-talk in the logic he was
using with the values 1, 2, 4, 8, and 10.
So I switched the last to 16 and all was well.

AFAIK, we don't have any base-conversion functions, keywords, or macros in the
distribution, and I could swear that I wrote some decimal to binary and back
conversion macros - but I can't find them and had to write another one from
scratch to verify the behaviours of the bitwise operators.

4. I had to write my own stack to push and pop from, and thankfully there wasn't
any dynamic resizing of the c++ &amp;quot;vector&amp;quot; he was using.
I also had trouble with the modulo method he was using to select a random
element of the vector, so I used RRand from rand.inc.

5. I'm still not sure how the algorithm &amp;quot;erases&amp;quot; walls, and if that's the issue
I'm having with the &amp;quot;islands&amp;quot; in the maze - drawing on a canvas and
instantiating primitives in 3D space are fundamentally different operations.

https://www.youtube.com/watch?v=Y37-gB83HKE
https://github.com/OneLoneCoder/Javidx9/blob/master/ConsoleGameEngine/SmallerProjects/OneLoneCoder_Mazes.cpp


Anyway, here's a maze in a 50 x 50 grid.  Enjoy.

- BW


Could be cool to do some movie/video scenes featuring mazes
Labyrinth
Harry Potter and the Goblet of Fire
Hellbound: HellRaiser II
Katy Perry - Wide Awake
The Shining
Pan's Labyrinth

etc.
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 11 Sep 2023 21:00:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.64ff7f7e33513f7c1f9dae3025979125%40news.povray.org%3E/#%3Cweb.64ff7f7e33513f7c1f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.64ff7f7e33513f7c1f9dae3025979125%40news.povray.org%3E/#%3Cweb.64ff7f7e33513f7c1f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[ingo] Re: Editing or creating an image or heightfield ... [948 days 4 hours and 29 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Does anyone have any ideas?&lt;/span&gt;

Tor Olav has, or at least some inspiration:

https://github.com/t-o-k/POV-Ray-gaussian-blur/blob/master/Examples/Blur_Image_Region.png

https://github.com/t-o-k/POV-Ray-gaussian-blur/blob/master/Examples/Blur_Image_Region.pov

ingo
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 11 Sep 2023 09:45:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.64fee0cc5742124017bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.64fee0cc5742124017bac71e8ffb8ce3%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.64fee0cc5742124017bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.64fee0cc5742124017bac71e8ffb8ce3%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[kurtz le pirate] Re: Editing or creating an image or heightfield ... [948 days 4 hours and 38 minutes ago]</title>
		<description>
&lt;pre&gt;On 10/09/2023 18:01, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; With regard to TdG's interest in erosion, I was thinking about doing a quick&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; test with an image map converted to a height_field.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; The only problem here is that I don't recall if there was a way to edit the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; pixel data in the image_map, or in the height_field, or to somehow use a&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; function {} or a 2D array to create an image or heightfield...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Or maybe a way to add/subtract / overlay onto the base image.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I can't use arrays in functions, otherwise I could do image_map {function&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; {array}}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; It would be useful to not have to load an image, convert that to an array, use&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; that array to create a mesh, then use the algorithm I'm experimenting with to&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; edit the mesh.....&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Does anyone have any ideas?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; - BW&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;



Long time ago, I made a code that, given a png image, would plot for
each pixel a box of the original color and store this value in a 2d array.
&amp;#239;&amp;#187;&amp;#191;&amp;#239;&amp;#187;&amp;#191;
Code attached


Maybe it can give you some ideas for your problem ?




-- 
Kurtz le pirate
Compagnie de la Banquise
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 11 Sep 2023 09:35:24 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C64fedf5c%40news.povray.org%3E/#%3C64fedf5c%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C64fedf5c%40news.povray.org%3E/#%3C64fedf5c%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Editing or creating an image or heightfield ... [948 days 16 hours and 44 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I guess I'll just bite the bullet and remember how to make a mesh, calculate the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; normals, make smooth triangles..... {sigh}.&lt;/span&gt;

I abandoned an A* driven method in favor of using existing algorithms instead of
starting from scratch with no real idea what I'm doing.  (A* might be useful for
filling in the terrain with water cascading downhill via the erosion paths.)

So, I made the meshes, calculated the normals, made the smooth_triangles, edited
a small erosion algorithm, ran it a few times (which took longer that it should
have), and then added some elapsed time code.
Had to hack the algorithm to get rid of the deep pitting.

My meshes look terrible, my color_map is all off, etc.

I'm using a tiny 358 x 358 image for my terrain.  That's 128164 pixels or 256328
triangles (maybe a few less).

I then drop 20,000 raindrops that undergo a max of 50 erosion/deposition cycles.

No idea what the parameter values ought to be.


Building HeightField array ...
Took 2.47 sec to build the HeightField array.
Making starting mesh ...
Took 59.70 sec to build the starting mesh.
Took 1.43 min to erode starting mesh.
Making eroded mesh ...
Took 1.08 min to make the Eroded mesh.


Parser Time
  Parse Time:       0 hours  3 minutes 32 seconds (212.499 seconds)
Elapsed time 215.84 seconds.


That's an awful damned long time to build a stinking mesh, especially since the
array gets populated in 2.47 sec.

Anyway, it's a start, and I'm sure there are improvements to be made, for those
interested in having a go at it.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 10 Sep 2023 21:30:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.64fe3522574212401f9dae3025979125%40news.povray.org%3E/#%3Cweb.64fe3522574212401f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.64fe3522574212401f9dae3025979125%40news.povray.org%3E/#%3Cweb.64fe3522574212401f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Editing or creating an image or heightfield ... [948 days 20 hours and 4 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;ingo&amp;quot; &amp;lt;nomail@nomail&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Does the starting point have to be an image? You can use a function in a HF.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; https://wiki.povray.org/content/Reference:Function_Pattern#Function_Image&lt;/span&gt;

Good to know, sorry that you lost your archive.

I've (ab)used splines in functions, but I don't know if I could do that in 2D to
get a heightfield.

I could use a function to make the HF, but I'm still presently at a loss for how
I'd modify the values at each &amp;lt;x, y&amp;gt; position, since I still can't make discrete
modifications, due to the nature of functions, etc.  Going around in circles.

It seems like we _should_ have a way to &amp;quot;write&amp;quot; to the &amp;lt;x,y&amp;gt; pixel data stored
in memory after POV-Ray loads an image file, but we don't.
It also seems like we _should_ have a way to make images and HF's from a 2D
array, but we don't.

I guess I'll just bite the bullet and remember how to make a mesh, calculate the
normals, make smooth triangles..... {sigh}.

I was just hoping for an easier, lazier way.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 10 Sep 2023 18:10:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.64fe0616574212401f9dae3025979125%40news.povray.org%3E/#%3Cweb.64fe0616574212401f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.64fe0616574212401f9dae3025979125%40news.povray.org%3E/#%3Cweb.64fe0616574212401f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[ingo] Re: Editing or creating an image or heightfield ... [948 days 20 hours and 29 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Does anyone have any ideas?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; - BW&lt;/span&gt;

Does the starting point have to be an image? You can use a function in a HF.
https://wiki.povray.org/content/Reference:Function_Pattern#Function_Image

ingo
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 10 Sep 2023 17:45:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.64fe002a5742124017bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.64fe002a5742124017bac71e8ffb8ce3%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.64fe002a5742124017bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.64fe002a5742124017bac71e8ffb8ce3%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[ingo] Re: Editing or creating an image or heightfield ... [948 days 21 hours and 4 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Does anyone have any ideas?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; - BW&lt;/span&gt;

Not elegant, but you can abuse splines as arrays in functions.

In a distant past we've had several discussions on erosion. I had a look but
can't find it (my archive is lost). I then made an animation or images using
DF3's. Not in POV-Ray it self but in Python.

I randomly dropped rain drops on the DF3. Every rain drop had a strength. The
density of the DF3 was the density/hardness of the stone. When eroding the
raindrop lost some strength and the stone lost some density. The harder the rock
the more costly it was for the drop.

Then, if there was still some 'life' in it, the raindrop would move to the
nearest neighbor with the lowest density and repeat the process until the drops
strength was zero.

I also did it with a combination of Hf and DF3, the HF was the landscape and the
DF3 the rock/soil. Then I eroded the HF away.

Christoph Hormann, ABX were also working on this, i.i.r.c.

ingo
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 10 Sep 2023 17:10:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.64fdf7ee5742124017bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.64fdf7ee5742124017bac71e8ffb8ce3%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.64fdf7ee5742124017bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.64fdf7ee5742124017bac71e8ffb8ce3%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Editing or creating an image or heightfield in P... [948 days 22 hours and 9 minutes ago]</title>
		<description>
&lt;pre&gt;With regard to TdG's interest in erosion, I was thinking about doing a quick
test with an image map converted to a height_field.

The only problem here is that I don't recall if there was a way to edit the
pixel data in the image_map, or in the height_field, or to somehow use a
function {} or a 2D array to create an image or heightfield...

Or maybe a way to add/subtract / overlay onto the base image.
I can't use arrays in functions, otherwise I could do image_map {function
{array}}

It would be useful to not have to load an image, convert that to an array, use
that array to create a mesh, then use the algorithm I'm experimenting with to
edit the mesh.....

Does anyone have any ideas?

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 10 Sep 2023 16:05:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.64fde8724fc784d81f9dae3025979125%40news.povray.org%3E/#%3Cweb.64fde8724fc784d81f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.64fde8724fc784d81f9dae3025979125%40news.povray.org%3E/#%3Cweb.64fde8724fc784d81f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[kurtz le pirate] Re: A-Star algorithm Image Test [949 days and 32 minutes ago]</title>
		<description>
&lt;pre&gt;On 09/09/2023 19:19, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; So, I grabbed some code off the wayback machine for the A* algorithm in visual&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; c++, and converted all of that to POV-Ray SDL.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Although I still probably need to go back in and fix some the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; late-night/early-morning edits/hacks that I did in order to get it to run to&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; completion without errors, it looks like it works.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; After hand-coding some obstacles in the map array, I figured that I ought to try&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; it with a real maze, and the easiest thing to do there was use an image (plus&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; that would move me in the direction of applying this to meshes)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; So after a few false starts, I got everything nicely framed on the page, and it&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; took this implementation 2 min 20 sec to solve a 500*500 pixel maze image (parse&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;amp; render).&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Enjoy.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; - BE&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;


How brave ! Very good job Bill


-- 
Kurtz le pirate
Compagnie de la Banquise
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 10 Sep 2023 13:42:04 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C64fdc7ac%241%40news.povray.org%3E/#%3C64fdc7ac%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C64fdc7ac%241%40news.povray.org%3E/#%3C64fdc7ac%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[William F Pokorny] Re: A-Star algorithm Image Test [949 days 3 hours and 27 minutes ago]</title>
		<description>
&lt;pre&gt;On 9/9/23 13:19, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; After hand-coding some obstacles in the map array, I figured that I ought to try&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; it with a real maze, and the easiest thing to do there was use an image (plus&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; that would move me in the direction of applying this to meshes)&lt;/span&gt;

Cool! :-)

Bill P.
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 10 Sep 2023 10:46:25 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C64fd9e81%241%40news.povray.org%3E/#%3C64fd9e81%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C64fd9e81%241%40news.povray.org%3E/#%3C64fd9e81%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: A-Star algorithm Image Test [949 days 17 hours and 59 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;jr&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; wow.  _v_ cool.  (I'm turning that shade of green again.. :-))&lt;/span&gt;

Hi jr,
I just took a stab at it, and had a few moments where I was feeling like I had
bit off more than I could chew. As you can imagine, I get that feeling often.

I kinda get how it works - the gist - but there are a few things that I haven't
cleared up, and I haven't looked at the binary heap optimization part.
I basically just edited the code and kept running it and hacking it until it ran
without errors.

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; hope you'll publish &amp;quot;a tutorial&amp;quot; on the topic.&lt;/span&gt;

I will not, until I have something significantly different from the code I
copied.

https://web.archive.org/web/20051230122239/http://www.policyalmanac.org/games/aStarTutorial.htm
code:
https://web.archive.org/web/20051230122239/http://www.blitzcoder.com/cgi-bin/showcase/showcase_showentry.pl?id=turtle17
7604062002002208&amp;amp;comments=no

Other stuff at:

http://theory.stanford.edu/~amitp/GameProgramming/

Sebastian Lague:  https://www.youtube.com/watch?v=mZfyt03LDH4

Daniel Schiffman: https://www.youtube.com/watch?v=EaZxUCWAjb0

Now with regard to TdG's desire to erode terrain, I wanted to find a heightfield
that I could use to run a height-driven A* algorithm on, and wouldn't you know
it - I found a bunch of interesting links.

https://ranmantaru.com/blog/2011/10/08/water-erosion-on-heightmap-terrain/

https://github.com/dandrino/terrain-erosion-3-ways

Sebastian Lague:  https://www.youtube.com/watch?v=eaXk97ujbPQ

https://github.com/LanLou123/Webgl-Erosion

https://jobtalle.com/simulating_hydraulic_erosion.html

https://perso.liris.cnrs.fr/aparis/public_html/posts/terrain_erosion.html

and lots more, I'm sure.

Since this is essentially a cost-optimization algorithm, I was also thinking
that maybe this kind of thing could be used to trace electrical circuits, or
something like that.

Also, conducting erosion on a 3D objects could give more interesting clouds if
rendered as a df3.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 9 Sep 2023 20:15:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.64fcd1f97648a5e81f9dae3025979125%40news.povray.org%3E/#%3Cweb.64fcd1f97648a5e81f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.64fcd1f97648a5e81f9dae3025979125%40news.povray.org%3E/#%3Cweb.64fcd1f97648a5e81f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[jr] Re: A-Star algorithm Image Test [949 days 20 hours and 34 minutes ago]</title>
		<description>
&lt;pre&gt;hi,

&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; So, ... Enjoy.&lt;/span&gt;

wow.  _v_ cool.  (I'm turning that shade of green again.. :-))

hope you'll publish &amp;quot;a tutorial&amp;quot; on the topic.


regards, jr.
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 9 Sep 2023 17:40:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.64fcadbe7648a5e8b180e2cc6cde94f1%40news.povray.org%3E/#%3Cweb.64fcadbe7648a5e8b180e2cc6cde94f1%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.64fcadbe7648a5e8b180e2cc6cde94f1%40news.povray.org%3E/#%3Cweb.64fcadbe7648a5e8b180e2cc6cde94f1%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] A-Star algorithm Image Test [949 days 20 hours and 54 minutes ago]</title>
		<description>
&lt;pre&gt;So, I grabbed some code off the wayback machine for the A* algorithm in visual
c++, and converted all of that to POV-Ray SDL.

Although I still probably need to go back in and fix some the
late-night/early-morning edits/hacks that I did in order to get it to run to
completion without errors, it looks like it works.

After hand-coding some obstacles in the map array, I figured that I ought to try
it with a real maze, and the easiest thing to do there was use an image (plus
that would move me in the direction of applying this to meshes)

So after a few false starts, I got everything nicely framed on the page, and it
took this implementation 2 min 20 sec to solve a 500*500 pixel maze image (parse
&amp;amp; render).

Enjoy.

- BE
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 9 Sep 2023 17:20:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.64fca905c32c9bfa1f9dae3025979125%40news.povray.org%3E/#%3Cweb.64fca905c32c9bfa1f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.64fca905c32c9bfa1f9dae3025979125%40news.povray.org%3E/#%3Cweb.64fca905c32c9bfa1f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[kurtz le pirate] Re: New random distribution macros [951 days 23 hours and 28 minutes ago]</title>
		<description>
&lt;pre&gt;On 03/09/2023 02:44, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; It's kind of scary when so many seemingly disparate topics that I've dipped my&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; toes into all get brought together into one pretty cool video.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Enjoy:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;quot;The BEST Way to Find a Random Point in a Circle&amp;quot;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; https://www.youtube.com/watch?v=4y_nmpv-9lI&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;

This is really a great find !!!!

The result is truly stunning.

For a small number of points, the difference is not obvious. Above about
200 points, there's a really big difference which becomes more and more
apparent as the population increases.


Thanks for the link Bill.



-- 
Kurtz le pirate
Compagnie de la Banquise
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 7 Sep 2023 14:45:48 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C64f9e21c%40news.povray.org%3E/#%3C64f9e21c%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C64f9e21c%40news.povray.org%3E/#%3C64f9e21c%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: New random distribution macros [956 days 13 hours and 29 minutes ago]</title>
		<description>
&lt;pre&gt;It's kind of scary when so many seemingly disparate topics that I've dipped my
toes into all get brought together into one pretty cool video.

Enjoy:

&amp;quot;The BEST Way to Find a Random Point in a Circle&amp;quot;
https://www.youtube.com/watch?v=4y_nmpv-9lI
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 3 Sep 2023 00:45:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.64f3d6e9296d8a3b1f9dae3025979125%40news.povray.org%3E/#%3Cweb.64f3d6e9296d8a3b1f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.64f3d6e9296d8a3b1f9dae3025979125%40news.povray.org%3E/#%3Cweb.64f3d6e9296d8a3b1f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: &lt;no subject&gt; [1010 days 14 hours and 44 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; (I'm trying to replicate Shadertoy's / GLSL's fwidth () function):&lt;/span&gt;

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Forward I plod....&lt;/span&gt;

Well, I didn't really get that to work as well as I planned, since it may only
work with (x, y, z) functions and not my (px, py) functions.

I did manage to daisy-chain a massive pile of functions, follow the daisy-chain
of propagated parser errors, &amp;quot;fix&amp;quot; everything to the point where the code runs
without errors, and gives me --- something.
Not really at all what it's supposed to look like, but it's really square one of
translating a lot of complicated Shadertoy code with lots of magic numbers,
ridiculous equations, and very little in the way of explanatory documentation.

But I have hope that fixing it will be easier than that painful first step of
translating the raw code.  I'm sure I've failed to properly daisy-chain some
functions, so I'll go looking there first.

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 10 Jul 2023 23:30:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.64ac94216f92e8561f9dae3025979125%40news.povray.org%3E/#%3Cweb.64ac94216f92e8561f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.64ac94216f92e8561f9dae3025979125%40news.povray.org%3E/#%3Cweb.64ac94216f92e8561f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: &lt;no subject&gt; [1016 days 18 hours and 19 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Tor Olav Kristensen&amp;quot; &amp;lt;tor###&amp;nbsp;[at]&amp;nbsp;TOBEREMOVEDgmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Try this:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #macro MakeFunction(Fn)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;     function(N) { Fn(0) + 1 }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #end // macro MakeFunction&lt;/span&gt;

Ah, yes.   I omitted the function parameters, so it was expecting x, y, z or
something.

That works, thanks.

Of course, when trying to debug some other scene doodle, because math.inc was
squawking at me about VEq, I saw that you already wrote probably exactly what i
needed in the form of fn_Gradient_Directional.

(I'm trying to replicate Shadertoy's / GLSL's fwidth () function):

// fwidth is simply the sum of the absolute values of dfdx and dfdy,
// which signifies the window-space rate of change of the parameter in the x and
y axes, respectively.
// You can determine these by using finite differences

Forward I plod....


- BW
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 4 Jul 2023 19:55:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.64a4789f6f92e8561f9dae3025979125%40news.povray.org%3E/#%3Cweb.64a4789f6f92e8561f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.64a4789f6f92e8561f9dae3025979125%40news.povray.org%3E/#%3Cweb.64a4789f6f92e8561f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Leroy] Re: &lt;no subject&gt; [1016 days 19 hours and 54 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; So, I had some experiments I wanted to try, but I need to make some functions&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; that are based on other functions.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; In order to vary what base function I use, I have to do that with a macro, which&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; seems to work fine, but I seem to be missing something, either in the creation&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; syntax or the invocation syntax.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #declare Zero = function (N) {0}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #declare One = function (N) {1}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #macro MakeFunction (Function)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  function {Function (0) + 1}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #end&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #declare Two = MakeFunction (One);&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #debug concat( &amp;quot;Zero = &amp;quot;, str (Zero (10), 0, 3), &amp;quot;\n&amp;quot;)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #debug concat( &amp;quot;One = &amp;quot;, str (One (10), 0, 3), &amp;quot;\n&amp;quot;)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #declare Val = Two (10);&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #debug concat( &amp;quot;Two = &amp;quot;, str (Val, 0, 3), &amp;quot;\n&amp;quot;)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; That gets me:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Parse Error: Expected 'numeric expression', ) found instead&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I have yet to find a way around that.  Though I could swear that I've done&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; something similar to this before....&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
Here's a macro that will do what you want maybe.
It returns a function of a function

#macro Sf_Inv(F1) //inverse ground values
  function(x,z){1-F1(x,z)}
#end

use like this:

#declare F1=function(x,z){what ever}
#declare FncA=function(x,z){Sf_Inv(F1)}
#declare B=FncA(6,7);

I took this off a whole list of functions I was playing with a while back.
With this basic syntax you can put togather several functions and values to get
some interesting and hopeful useful functions.
Have Fun!
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 4 Jul 2023 18:20:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.64a461c46f92e856f47dfe88f712fc00%40news.povray.org%3E/#%3Cweb.64a461c46f92e856f47dfe88f712fc00%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.64a461c46f92e856f47dfe88f712fc00%40news.povray.org%3E/#%3Cweb.64a461c46f92e856f47dfe88f712fc00%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Tor Olav Kristensen] Re: &lt;no subject&gt; [1017 days 13 hours and 24 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; So, I had some experiments I wanted to try, but I need to make some functions&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; that are based on other functions.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; In order to vary what base function I use, I have to do that with a macro, which&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; seems to work fine, but I seem to be missing something, either in the creation&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; syntax or the invocation syntax.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #declare Zero = function (N) {0}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #declare One = function (N) {1}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #macro MakeFunction (Function)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  function {Function (0) + 1}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #end&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #declare Two = MakeFunction (One);&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #debug concat( &amp;quot;Zero = &amp;quot;, str (Zero (10), 0, 3), &amp;quot;\n&amp;quot;)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #debug concat( &amp;quot;One = &amp;quot;, str (One (10), 0, 3), &amp;quot;\n&amp;quot;)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #declare Val = Two (10);&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #debug concat( &amp;quot;Two = &amp;quot;, str (Val, 0, 3), &amp;quot;\n&amp;quot;)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; That gets me:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Parse Error: Expected 'numeric expression', ) found instead&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I have yet to find a way around that.  Though I could swear that I've done&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; something similar to this before....&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Does anyone have any ideas?&lt;/span&gt;

Try this:


#macro MakeFunction(Fn)

    function(N) { Fn(0) + 1 }

#end // macro MakeFunction


--
Tor Olav
http://subcube.com
https://github.com/t-o-k
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 4 Jul 2023 00:50:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.64a36b886f92e856ba2b3ee089db30a9%40news.povray.org%3E/#%3Cweb.64a36b886f92e856ba2b3ee089db30a9%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.64a36b886f92e856ba2b3ee089db30a9%40news.povray.org%3E/#%3Cweb.64a36b886f92e856ba2b3ee089db30a9%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] &lt;no subject&gt; [1017 days 14 hours and 29 minutes ago]</title>
		<description>
&lt;pre&gt;So, I had some experiments I wanted to try, but I need to make some functions
that are based on other functions.
In order to vary what base function I use, I have to do that with a macro, which
seems to work fine, but I seem to be missing something, either in the creation
syntax or the invocation syntax.


#declare Zero = function (N) {0}
#declare One = function (N) {1}


#macro MakeFunction (Function)
 function {Function (0) + 1}
#end

#declare Two = MakeFunction (One);

#debug concat( &amp;quot;Zero = &amp;quot;, str (Zero (10), 0, 3), &amp;quot;\n&amp;quot;)
#debug concat( &amp;quot;One = &amp;quot;, str (One (10), 0, 3), &amp;quot;\n&amp;quot;)

#declare Val = Two (10);

#debug concat( &amp;quot;Two = &amp;quot;, str (Val, 0, 3), &amp;quot;\n&amp;quot;)

That gets me:

Parse Error: Expected 'numeric expression', ) found instead

I have yet to find a way around that.  Though I could swear that I've done
something similar to this before....


Does anyone have any ideas?



- BW
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 3 Jul 2023 23:45:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.64a35d5ec23a6d91f9dae3025979125%40news.povray.org%3E/#%3Cweb.64a35d5ec23a6d91f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.64a35d5ec23a6d91f9dae3025979125%40news.povray.org%3E/#%3Cweb.64a35d5ec23a6d91f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[William F Pokorny] Re: Speeding up (or faking) scattering media [1021 days 15 hours and 16 minutes ago]</title>
		<description>
&lt;pre&gt;On 6/25/23 17:56, Juergen wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Hi,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I made a few attempts over the weekend. I followed the variant &amp;quot;transparent&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; cylinder&amp;quot;. The result looks quite usable, but there are a few restrictions and&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; things to consider.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; In the core I use a (vertical) cylinder. On this cylinder is a gradient texture&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; to avoid sharp edges. Finally, the cylinder is rotated so that it is parallel to&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; the light rays.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; The constraints are:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; 1. there must be no visible intersection of a cylinder with another object in&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; the scene, here you would have sharp, unnatural edges.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; 2. the gradient texture must be aligned with the camera, otherwise the advantage&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; of having no sharp edges is lost,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; 3. not too many of these cylinders should be used (about 150), otherwise the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; render time will increase again to the point where you can use the right media.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; J&amp;#195;&amp;#188;rgen&lt;/span&gt;

Hi. It does look like a workable solution.

Real life has me busy these days, but I'll mention a couple additional 
things.

Norbert Kern, perhaps a couple years ago (and IIRC), worked out a scheme 
where he created a high field containing media (emitting?) in front of 
his actual scene for light rays through media effects.

Second and FWIW, when I reworked the fog feature in the povr fork, I 
added an 'inverse' feature which creates the densest fog closer to the 
camera rather than at greatest depth. The idea is to make it easier to 
fake media effects with fog{} using special near-camera, otherwise 
invisible/null for ray depth only, shapes. The sad bit is aside from a 
few quick experiments, I've never gotten to really playing with the new 
feature myself...

Bill P.
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 29 Jun 2023 22:58:06 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C649e0c7e%241%40news.povray.org%3E/#%3C649e0c7e%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C649e0c7e%241%40news.povray.org%3E/#%3C649e0c7e%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Juergen] Re: Speeding up (or faking) scattering media [1025 days 16 hours and 14 minutes ago]</title>
		<description>
&lt;pre&gt;Hi,

I made a few attempts over the weekend. I followed the variant &amp;quot;transparent
cylinder&amp;quot;. The result looks quite usable, but there are a few restrictions and
things to consider.

In the core I use a (vertical) cylinder. On this cylinder is a gradient texture
to avoid sharp edges. Finally, the cylinder is rotated so that it is parallel to
the light rays.

The constraints are:
1. there must be no visible intersection of a cylinder with another object in
the scene, here you would have sharp, unnatural edges.
2. the gradient texture must be aligned with the camera, otherwise the advantage
of having no sharp edges is lost,
3. not too many of these cylinders should be used (about 150), otherwise the
render time will increase again to the point where you can use the right media.

J&amp;#252;rgen
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 25 Jun 2023 22:00:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6498b8273f91956674554476df9b2273%40news.povray.org%3E/#%3Cweb.6498b8273f91956674554476df9b2273%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6498b8273f91956674554476df9b2273%40news.povray.org%3E/#%3Cweb.6498b8273f91956674554476df9b2273%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[jr] Re: Speeding up (or faking) scattering media [1029 days 8 hours and 9 minutes ago]</title>
		<description>
&lt;pre&gt;hi,

&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Short 5 second animation attached.   500 frames at 10 frames/sec.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I guess it looks ok.&lt;/span&gt;

agree, better than &amp;quot;ok&amp;quot; even, fwiw :-).  reminds me (a little) of &amp;quot;Art Nouveau&amp;quot;
style.  cheers.


regards, jr.
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 22 Jun 2023 06:05:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6493e3693f919566b49d80446cde94f1%40news.povray.org%3E/#%3Cweb.6493e3693f919566b49d80446cde94f1%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6493e3693f919566b49d80446cde94f1%40news.povray.org%3E/#%3Cweb.6493e3693f919566b49d80446cde94f1%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Speeding up (or faking) scattering media [1029 days 19 hours and 24 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;jr&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; yes :-)&lt;/span&gt;

tl;dr


Short 5 second animation attached.   500 frames at 10 frames/sec.

I guess it looks ok.  No idea why it looks so different from the beautiful
Shadertoy result.
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 21 Jun 2023 18:50:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.649345363f9195661f9dae3025979125%40news.povray.org%3E/#%3Cweb.649345363f9195661f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.649345363f9195661f9dae3025979125%40news.povray.org%3E/#%3Cweb.649345363f9195661f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[jr] Re: Speeding up (or faking) scattering media [1030 days 6 hours and 54 minutes ago]</title>
		<description>
&lt;pre&gt;hi,

&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I suppose I ought to animate it to see what that looks like....&lt;/span&gt;

yes :-)


regards, jr.
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 21 Jun 2023 07:20:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6492a4103f919566b49d80446cde94f1%40news.povray.org%3E/#%3Cweb.6492a4103f919566b49d80446cde94f1%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6492a4103f919566b49d80446cde94f1%40news.povray.org%3E/#%3Cweb.6492a4103f919566b49d80446cde94f1%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Speeding up (or faking) scattering media [1030 days 14 hours and 54 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I found this:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; https://www.shadertoy.com/view/lljGDt&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; which seems to be the best of a 10-15 min search.&lt;/span&gt;

Since it's a shader, it all needs to be converted into functions, and then
rendered as a pigment pattern that controls an average texture.

That took a little bit to make a little 200-line scene, and winnow out all the
stupid trivial mistakes.

I suppose I ought to animate it to see what that looks like....
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 20 Jun 2023 23:20:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.649233fa3f9195661f9dae3025979125%40news.povray.org%3E/#%3Cweb.649233fa3f9195661f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.649233fa3f9195661f9dae3025979125%40news.povray.org%3E/#%3Cweb.649233fa3f9195661f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Speeding up (or faking) scattering media [1030 days 18 hours and 54 minutes ago]</title>
		<description>
&lt;pre&gt;I found this:
https://www.shadertoy.com/view/lljGDt

which seems to be the best of a 10-15 min search.

Other stuff I found (and there's tons):




https://lesterbanks.com/2016/11/underwater-light-rays-volumetrics-c4d/

Also, here's an article with some background on caustics, which may or may not
help trigger some ideas for faking/approximating a faster way.
https://developer.nvidia.com/gpugems/gpugems/part-i-natural-effects/chapter-2-rendering-water-caustics

It also provides search keywords &amp;quot;crepuscular rays&amp;quot; and &amp;quot;God's rays&amp;quot;.

https://www.shadertoy.com/view/llXfRs

https://www.shadertoy.com/view/Xtcfzj

https://www.shadertoy.com/view/lldcDf

https://github.com/miloyip/light2d

http://web.archive.org/web/20221207134737/https://www.genericgamedev.com/effects/localised-crepuscular-rays/

https://developer.nvidia.com/gpugems/gpugems3/part-ii-light-and-shadows/chapter-13-volumetric-light-scattering-post-pro
cess

https://github.com/Erkaman/glsl-godrays

https://fabiensanglard.net/lightScattering/

https://www.ventuz.com/support/help/V4_05/HowTo/HowToCreateGodRayShader.html

The following seems to imply (to me) that a simple convolution kernel might be
able to achieve the effect:
https://web.archive.org/web/20210503152629/https://anderskruger.com/opengl-god-rays/


- BW
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 20 Jun 2023 19:20:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6491fbc33f9195661f9dae3025979125%40news.povray.org%3E/#%3Cweb.6491fbc33f9195661f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6491fbc33f9195661f9dae3025979125%40news.povray.org%3E/#%3Cweb.6491fbc33f9195661f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[jr] Re: Speeding up (or faking) scattering media [1031 days and 34 minutes ago]</title>
		<description>
&lt;pre&gt;hi,

&amp;quot;Juergen&amp;quot; &amp;lt;nomail@nomail&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Is there a way to fake this (similar to what I did with the caustics), but for&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; the scattering media I have no idea at the moment.&lt;/span&gt;

wondering, could you use a density pattern, suitably rotated etc, to 'fake' the
shafts of light ?  (just a thought, no idea if it would &amp;quot;buy&amp;quot; you time)


regards, jr.
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 20 Jun 2023 13:40:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6491ac203f919566b49d80446cde94f1%40news.povray.org%3E/#%3Cweb.6491ac203f919566b49d80446cde94f1%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6491ac203f919566b49d80446cde94f1%40news.povray.org%3E/#%3Cweb.6491ac203f919566b49d80446cde94f1%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Speeding up (or faking) scattering media [1031 days 15 hours and 54 minutes ago]</title>
		<description>
&lt;pre&gt;Have you tried just using a loop to make a bunch of thin cylinders radiating
from a distant point and having an rgbf pigment?

Maybe there's a way to use your caustics method and have that control the
placement of the cylinders?

Or use an isosurface, or bezier surface with a pattern simulating streaks
(gradient).

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 19 Jun 2023 22:20:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6490d3a43f9195661f9dae3025979125%40news.povray.org%3E/#%3Cweb.6490d3a43f9195661f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6490d3a43f9195661f9dae3025979125%40news.povray.org%3E/#%3Cweb.6490d3a43f9195661f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Juergen] Speeding up (or faking) scattering media [1031 days 16 hours and 34 minutes ago]</title>
		<description>
&lt;pre&gt;HelloI would like to extend my scene with the fake caustic to see the light rays
under water. With a scattered media this works, but the computation time
increases indisputably from 0.5 to almost 70s per frame (should become an
animation later).
In the concrete scene the samples have to be at least 50,100 for this to look
usable - so I can't turn the screw anymore.
What possibilities are there to speed up the process (I think that the
calculation time/image should not be more than double or triple, but not by a
factor of 100)?
Is there a way to fake this (similar to what I did with the caustics), but for
the scattering media I have no idea at the moment.


---------------------the scene----------------
// Testscene mit einer gefakten Caustik,
// indem eine helle light_source mit einer Kugel und entspr teiltransparenten
Textur umgeben wird
// Renderzeit: 1sek
#version 3.7;
global_settings {
  assumed_gamma 1.0
}

#declare InclMedia = 1;

#declare CausAdd    = 0.0;
#declare ScatterCol = 0.0004;

#include &amp;quot;colors.inc&amp;quot;
#include &amp;quot;textures.inc&amp;quot;

#declare PSize = 300;

//////// Caustics-Texture START /////////
#declare TxtS4b =
texture {  // &amp;quot;DunkelTextur&amp;quot;
  pigment { rgbf &amp;lt;1.0, 1.0, 1.0, 1*CausAdd&amp;gt; }
}
#declare TxtS4a1 =
texture { // &amp;quot;Helltextur&amp;quot;
  pigment { color rgbf &amp;lt;1.0, 1.0, 1.0, 1.0&amp;gt; }
  finish { diffuse 0.5 ambient 1 }
}
#declare TxtS4a2 =
texture {
  pigment { color rgbf &amp;lt;1.0, 1.0, 1.0, 0.2+0.8*CausAdd&amp;gt; }
}
#declare TxtS4c =
texture { // Textur f&amp;#252;r die &amp;quot;Fl&amp;#228;che&amp;quot;
  bozo
  scale 1.5
  translate &amp;lt;752,74,62343&amp;gt;
  texture_map {
    [ 0.25 pigment { rgbf &amp;lt;1.0,1.0,1.0,0.0+CausAdd&amp;gt; } ]
    [ 0.5  pigment { rgbf &amp;lt;1.0,1.0,1.0,0.1+0.9*CausAdd&amp;gt; } ]
    [ 0.75 pigment { rgbf &amp;lt;1.0,1.0,1.0,0.0+CausAdd&amp;gt; } ]
  }
  //pigment { color rgbf &amp;lt;0.6, 0.6, 1.0, 1.0&amp;gt; }
}
#declare TxtS4a =
texture {  // 1. Layer mit Bozo (Hell-Dunke-Effekte innerbalb der Textur)
  bozo
  scale 0.5
  translate &amp;lt;1223,455,121&amp;gt;
  texture_map {
    [ 0.15 TxtS4b ]
    [ 0.4  TxtS4a2 ]
    [ 0.5  TxtS4a1 ]
    [ 0.6  TxtS4a2 ]
    [ 0.85 TxtS4b ]
  }
}
#declare CausticsTxt =
texture { // die eigentliche Caustic-Textur
  crackle
  turbulence 0.25
  omega 0
  scale 5
  texture_map {
    [ 0.0 TxtS4a ]
    [ 0.12 TxtS4c ]
    [ 0.5 TxtS4b ]
  }
  scale 0.075
}
//////// Caustics-Texture ENDE /////////


// Boden
difference {
  plane { y,0 }
  box { &amp;lt;-PSize,-250,-PSize&amp;gt;&amp;lt;PSize,1,PSize&amp;gt; } // Pool

  pigment { Gray50 }
  //pigment { bozo scale 30}
}

// Tr&amp;#252;bung/Nebel
//#declare adsasdas =
#ifdef(InclMedia)
  box { &amp;lt;-PSize,-250,-PSize&amp;gt;&amp;lt;PSize,-50,PSize&amp;gt;
    pigment { rgbt 1 } // clear
    hollow
    interior{
      media{
        scattering{ 1, ScatterCol extinction 0.01 }
        //scattering{ 1, 0.17 extinction 0.01}
        samples 50, 100 // min, max
      } // end media
    } // end interior
  }
#end


// #declare adadas =
cylinder {
  &amp;lt;-25,0,0&amp;gt;&amp;lt;25,0,0&amp;gt; 10
  pigment { Red }
  translate &amp;lt;100,-200,-50&amp;gt;
}
cylinder {
  &amp;lt;0,-300,0&amp;gt;&amp;lt;0,100,0&amp;gt; 50
  pigment { Blue }
  translate &amp;lt;120,-200,70&amp;gt;
}
sphere {
  0,20
  pigment { Yellow }
  translate &amp;lt;120,-200,-150&amp;gt;
}


// Sonne
light_source {
  &amp;lt;-50,200, 0&amp;gt;
  color 5
}

// Caustics-sphere
#declare CausticsSpr =
sphere {
  0,10
  texture {
    CausticsTxt
    translate &amp;lt;clock*0.02  ,clock*0.1,  -clock*0.005&amp;gt;
  }
}

object {
  CausticsSpr
  translate &amp;lt;-50,200,0&amp;gt;
}


#declare Cam =
camera {
  location 0
  direction &amp;lt;0.0, 0.0, 1&amp;gt;
  up &amp;lt;0.0, 1.0, 0.0&amp;gt;
  right &amp;lt;4/3, 0.0, 0.0&amp;gt;
  look_at &amp;lt;0,0,1&amp;gt;
}
camera {
  Cam
  rotate 30*x
  rotate 30*y
  translate -70*y
  translate -PSize*z+10
}
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 19 Jun 2023 21:40:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6490ca4b9e00c62a74554476df9b2273%40news.povray.org%3E/#%3Cweb.6490ca4b9e00c62a74554476df9b2273%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6490ca4b9e00c62a74554476df9b2273%40news.povray.org%3E/#%3Cweb.6490ca4b9e00c62a74554476df9b2273%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[jr] Re: Gaussian curvature of a surface [1045 days 16 hours and 54 minutes ago]</title>
		<description>
&lt;pre&gt;hi,

(very nearly forgot, sorry)


&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;quot;jr&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; no idea what it might be &amp;quot;good for&amp;quot; but looks intriguing.  ...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; So, this is a video with information pertaining to Blender, but aside from the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; general workflow and texture mapping/layering tricks, what caught my interest&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; was the &amp;quot;curvature map&amp;quot;.&lt;/span&gt;

that part of the Blender i/f where the &amp;quot;flow&amp;quot; got &amp;quot;stitched together&amp;quot; very much
made me think of MS Access + ERDs.  re curvature map and all -- whooosh..  :-)


&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I think that addresses the question &amp;quot;what can it be used for?&amp;quot; with regard to&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; the mean and Gaussian curvature of Bezier surfaces.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I'd still have to work out the numerical method for calculating the curvature of&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ANY given surface, and that might be a bit slower, but the final results sure do&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; look promising.&lt;/span&gt;

some (visual) example I could (with luck) relate to ?


regards, jr.
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 5 Jun 2023 21:20:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.647e51116f7bb9fb49d80446cde94f1%40news.povray.org%3E/#%3Cweb.647e51116f7bb9fb49d80446cde94f1%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.647e51116f7bb9fb49d80446cde94f1%40news.povray.org%3E/#%3Cweb.647e51116f7bb9fb49d80446cde94f1%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Gaussian curvature of a surface [1048 days 20 hours and 49 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;jr&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; no idea what it might be &amp;quot;good for&amp;quot; but looks intriguing.  (the 2nd image made&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; me wonder, could the data be used to simulate something like a marble run :-))&lt;/span&gt;


So, this is a video with information pertaining to Blender, but aside from the
general workflow and texture mapping/layering tricks, what caught my interest
was the &amp;quot;curvature map&amp;quot;.

https://www.youtube.com/watch?v=-x-b2U-MSgc

I think that addresses the question &amp;quot;what can it be used for?&amp;quot; with regard to
the mean and Gaussian curvature of Bezier surfaces.

I'd still have to work out the numerical method for calculating the curvature of
ANY given surface, and that might be a bit slower, but the final results sure do
look promising.

- BE
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 2 Jun 2023 17:25:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.647a25126f7bb9f1f9dae3025979125%40news.povray.org%3E/#%3Cweb.647a25126f7bb9f1f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.647a25126f7bb9f1f9dae3025979125%40news.povray.org%3E/#%3Cweb.647a25126f7bb9f1f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Chris R] Re: Applying noise to geometry [1065 days 17 hours and 34 minutes ago]</title>
		<description>
&lt;pre&gt;yesbird &amp;lt;sya###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Hi,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; while working on Yes-project, I am trying to find the way of making&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; the objects less 'geometrical', giving them more natural and 'noisy'&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; shapes (like in this attachment, for example). The only way I found in&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; manual is to play with normals, but I'd like to have an influence on&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; geometry, to apply more relief.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; It's possible to pass a noisy hi-res mesh from ZBrush, as I'm doing now,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; but this is not 'pure' POV-way and import takes some 'non-zero' time.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Maybe anyone can advise something about such arbitrary geometry&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; modifications ?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Thanks in advance.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; --&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; YB&lt;/span&gt;
My preferred method for doing this, albeit introducing some longer render times,
is to use isosurface objects.  I usually start with a function that defines the
non-perturbed shape of the object, e.g.:

#local _shape_fn = function(x,y,z) {
   sqrt(x*x+y*y+z*z) - 1
}

for a 1-unit radius sphere.

I then use one of several techniques to do the perturbations.  For example,

#local _shape_fn = function(x,y,z) {
   sqrt(x*x+y*y+z*z) - (1+0.1*f_snoise3d(x,y,z))
}

or
#local _pattern_fn = function {
   pigment {
      bozo
      color_map {
         [0.0 rgb 0]
         [1.0 rgb 1]
      }
   }
}
#local _shape_fn = function(x,y,z) {
   sqrt(x*x+y*y+z*z) - (1 + 0.1*_pattern_fn(x,y,z).gray)
}

or, if your shape function is well-behaved, (i.e. returns a value representing
the distance from a point to the surface of your object), you could do it this
way instead:

#local _shape2_fn = function(x,y,z) {
   _shape_fn(x,y,z) - 0.1*_pattern_fn(x,y,z).gray
}

The attached image is a pretty complex example, where the basic shape of the
wood-part of the blocks is basically f_rounded_box, but patterns are applied for
the wood grain, dents in the wood, cracks in the wood, etc.

-- Chris R.
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 16 May 2023 20:40:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6463e9ae2d727589a39f4a525cc1b6e%40news.povray.org%3E/#%3Cweb.6463e9ae2d727589a39f4a525cc1b6e%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6463e9ae2d727589a39f4a525cc1b6e%40news.povray.org%3E/#%3Cweb.6463e9ae2d727589a39f4a525cc1b6e%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: No semicolon allowed in Tuple-style assignme... [1078 days 18 hours and 34 minutes ago]</title>
		<description>
&lt;pre&gt;I am back at it, and still experiencing a lot of weird behaviour with regard to
assigning tuple-style values via macros.

And that somehow seems to be a subset of just generally weird parser behaviour
overall.

I have a scene that I've run dozens of times.
I've let it sit while I've pursued other projects and IRL stuff.
I added some fairly inconsequential code WAY at the end of the .pov file.

Now the parser is complaining about semicolons and undeclared Lvalues.

So I fiddled and restructured the macro it was complaining about, and now I'm
getting a totally inexplicable &amp;quot;all #declares..... require a semicolon...&amp;quot; error
in a macro where _everything has a semicolon_.

Okay - maybe I'm mid-parse on some other #declare or #local  and I need to fix
something upstream of the macro call.  So I add in all my macro calls that track
what level in the nesting of things I'm in, and that all seems fine ---

EXCEPT

that the parser tells me that my error occurs on line 205.

My macro calls that output the debugging stack, and current position in the
stack, both execute to completion --- but those are AFTER the cited error line,
at lines 207 and 208.

I honestly have no idea what's going on.

Either something is very weirdly wrong with my code
or
I am losing my mind
or
there is a problem in the source code for the parser
and/or
there is a problem with the parsing of tuple-style assignments

Parsing a scene should not be this - fussy.
Nor should debugging the problem be so cryptic and mysterious.


I think there needs to be a better mechanism to structure code, and follow the
flow when parse errors are triggered.
If the parser thinks that I need a semicolon to close a #local or #declare, then
it should give me the line number of the opening #local or #declare statement
that it's expecting the semicolon to finalize.

For some reason, this particular pov/inc scene pairing has been nothing but
trouble, and I'm not really sure why.  I've written vastly more complex code.

I can use all the help and advice I can get as to how to proceed.

This is very frustrating, annoying, and angering.

Trying to run previously working code shouldn't result in a failed 2-day
debugging odyssey.
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 3 May 2023 19:40:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6452b7c417acbde31f9dae3025979125%40news.povray.org%3E/#%3Cweb.6452b7c417acbde31f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6452b7c417acbde31f9dae3025979125%40news.povray.org%3E/#%3Cweb.6452b7c417acbde31f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[jr] Re: No semicolon allowed in Tuple-style assignme... [1100 days 21 hours and 39 minutes ago]</title>
		<description>
&lt;pre&gt;hi,

&amp;quot;Kenneth&amp;quot; &amp;lt;kdw###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; (I also run into the same kind of thing when I'm putting commas into a cylinder&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; {} and use an extra comma in between the second endpoint and the cylinder&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; radious - POV-Ray no likey.)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; In v3.8xx in Windows, the extra comma works OK for me. I had always assumed it&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; was necessary anyway, as per docs (using the cylinder syntax there):&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; cylinder{-.5*x,.5*x,.1 texture{...}}&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Leaving out the 2nd comma works as well, but that seems to be undocumented&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; 'shorthand' behavior, IMHO.&lt;/span&gt;

agree.  fwiw, here both self-compiled beta.2 and (WFP's) povr, on Linux, are
perfectly ok with all three forms:
  #declare a_ = cylinder {0 1 .1 open};
  #declare b_ = cylinder {0,1 .1 open};
  #declare c_ = cylinder {0,1,.1 open};


regards, jr.
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 11 Apr 2023 16:35:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.64358aa817acbde34301edef6cde94f1%40news.povray.org%3E/#%3Cweb.64358aa817acbde34301edef6cde94f1%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.64358aa817acbde34301edef6cde94f1%40news.povray.org%3E/#%3Cweb.64358aa817acbde34301edef6cde94f1%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Kenneth] Re: No semicolon allowed in Tuple-style assignme... [1101 days 3 hours and 9 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; (I also run into the same kind of thing when I'm putting commas into a cylinder&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; {} and use an extra comma in between the second endpoint and the cylinder&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; radious - POV-Ray no likey.)&lt;/span&gt;

In v3.8xx in Windows, the extra comma works OK for me. I had always assumed it
was necessary anyway, as per docs (using the cylinder syntax there):

cylinder{-.5*x,.5*x,.1 texture{...}}

Leaving out the 2nd comma works as well, but that seems to be undocumented
'shorthand' behavior, IMHO.
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 11 Apr 2023 11:05:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.64353dcb17acbde39b4924336e066e29%40news.povray.org%3E/#%3Cweb.64353dcb17acbde39b4924336e066e29%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.64353dcb17acbde39b4924336e066e29%40news.povray.org%3E/#%3Cweb.64353dcb17acbde39b4924336e066e29%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Finding object's bounding box [1110 days and 2 minutes ago]</title>
		<description>
&lt;pre&gt;On 02/04/2023 10:52, jr wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; sometimes a simple rotation will affect the bbox.  :-)  I wrote a macro to help&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; me with those.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;lt;https://drive.google.com/file/d/1-ak9jRR7B6iNoQfchF_XMupNL6Wop5Oq/view?usp=sharing&amp;gt;&lt;/span&gt;

Thanks, another pitfall avoided.
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 2 Apr 2023 14:11:37 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C8feb501b-b5d9-6d9c-eb57-d2e4b1489572%40gmail.com%3E/#%3C8feb501b-b5d9-6d9c-eb57-d2e4b1489572%40gmail.com%3E</guid>
		<link>//news.povray.org/*/message/%3C8feb501b-b5d9-6d9c-eb57-d2e4b1489572%40gmail.com%3E/#%3C8feb501b-b5d9-6d9c-eb57-d2e4b1489572%40gmail.com%3E</link>
	</item>
	<item>
		<title>[jr] Re: Finding object's bounding box [1110 days 6 hours and 19 minutes ago]</title>
		<description>
&lt;pre&gt;hi,

yesbird &amp;lt;sya###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; On 02/04/2023 01:52, Alain Martel wrote:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; Remember that, when dealing with differences and intersections, the&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; bounding box can be larger than the object.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Thanks, your comment will help me to avoid unpleasant surprises ).&lt;/span&gt;

sometimes a simple rotation will affect the bbox.  :-)  I wrote a macro to help
me with those.

&amp;lt;https://drive.google.com/file/d/1-ak9jRR7B6iNoQfchF_XMupNL6Wop5Oq/view?usp=sharing&amp;gt;


regards, jr.
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 2 Apr 2023 07:55:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6429342b878e18a04301edef6cde94f1%40news.povray.org%3E/#%3Cweb.6429342b878e18a04301edef6cde94f1%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6429342b878e18a04301edef6cde94f1%40news.povray.org%3E/#%3Cweb.6429342b878e18a04301edef6cde94f1%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Finding object's bounding box [1110 days 15 hours and 13 minutes ago]</title>
		<description>
&lt;pre&gt;On 02/04/2023 01:52, Alain Martel wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Remember that, when dealing with differences and intersections, the &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; bounding box can be larger than the object.&lt;/span&gt;

Thanks, your comment will help me to avoid unpleasant surprises ).
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 1 Apr 2023 23:00:47 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cc17eb5cc-db4d-b79b-b045-da76f626e7b6%40gmail.com%3E/#%3Cc17eb5cc-db4d-b79b-b045-da76f626e7b6%40gmail.com%3E</guid>
		<link>//news.povray.org/*/message/%3Cc17eb5cc-db4d-b79b-b045-da76f626e7b6%40gmail.com%3E/#%3Cc17eb5cc-db4d-b79b-b045-da76f626e7b6%40gmail.com%3E</link>
	</item>
	<item>
		<title>[Alain Martel] Re: Finding object's bounding box [1110 days 15 hours and 21 minutes ago]</title>
		<description>
&lt;pre&gt;Le 2023-04-01 &amp;#195;&amp;#160; 13:56, yesbird a &amp;#195;&amp;#169;crit&amp;#194;&amp;#160;:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; On 01/04/2023 20:48, ingo wrote:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; from the docs on functions:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; min_extent(OBJECT_IDENTIFIER), max_extent(OBJECT_IDENTIFIER). The &lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; min_extent and&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; max_extent return the minimum and maximum coordinates of a declared &lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; object's&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; bounding box (Corner1 and Corner2), in effect allowing you to find the&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; dimensions and location of the object.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Thanks, ingo, this is exactly what I was expecting.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; -- &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; YB&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
Remember that, when dealing with differences and intersections, the 
bounding box can be larger than the object.
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 1 Apr 2023 22:52:22 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C6428b5a6%241%40news.povray.org%3E/#%3C6428b5a6%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C6428b5a6%241%40news.povray.org%3E/#%3C6428b5a6%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Finding object's bounding box [1110 days 20 hours and 17 minutes ago]</title>
		<description>
&lt;pre&gt;On 01/04/2023 20:48, ingo wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; from the docs on functions:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; min_extent(OBJECT_IDENTIFIER), max_extent(OBJECT_IDENTIFIER). The min_extent and&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; max_extent return the minimum and maximum coordinates of a declared object's&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; bounding box (Corner1 and Corner2), in effect allowing you to find the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; dimensions and location of the object.&lt;/span&gt;

Thanks, ingo, this is exactly what I was expecting.
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 1 Apr 2023 17:56:20 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cdfc74466-449c-42b9-9725-0bf66fc29b7e%40gmail.com%3E/#%3Cdfc74466-449c-42b9-9725-0bf66fc29b7e%40gmail.com%3E</guid>
		<link>//news.povray.org/*/message/%3Cdfc74466-449c-42b9-9725-0bf66fc29b7e%40gmail.com%3E/#%3Cdfc74466-449c-42b9-9725-0bf66fc29b7e%40gmail.com%3E</link>
	</item>
	<item>
		<title>[ingo] Re: Finding object's bounding box [1110 days 20 hours and 24 minutes ago]</title>
		<description>
&lt;pre&gt;yesbird &amp;lt;sya###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I can draw a BB box approximately, but if someone will show me the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; way to calculate BB of arbitrary objects, I will be able to set up&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; lighting more accurately.&lt;/span&gt;


from the docs on functions:

min_extent(OBJECT_IDENTIFIER), max_extent(OBJECT_IDENTIFIER). The min_extent and
max_extent return the minimum and maximum coordinates of a declared object's
bounding box (Corner1 and Corner2), in effect allowing you to find the
dimensions and location of the object.


ingo
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 1 Apr 2023 17:50:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.64286e7f878e18a017bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.64286e7f878e18a017bac71e8ffb8ce3%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.64286e7f878e18a017bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.64286e7f878e18a017bac71e8ffb8ce3%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Finding object's bounding box [1110 days 22 hours and 8 minutes ago]</title>
		<description>
&lt;pre&gt;Hi,
I am working on Mike's fly lighting and animation now.
To simplify and To speed up this task, I am using my C4D-&amp;gt;POV converter
for lights exporting, but I need some reference object in the C4D scene
to replace a fly (see attachments).

I can draw a BB box approximately, but if someone will show me the
way to calculate BB of arbitrary objects, I will be able to set up
lighting more accurately.

Thanks in advance.
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 1 Apr 2023 16:05:10 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C64285636%40news.povray.org%3E/#%3C64285636%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C64285636%40news.povray.org%3E/#%3C64285636%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[jr] Re: No semicolon allowed in Tuple-style assignme... [1116 days 11 hours and 44 minutes ago]</title>
		<description>
&lt;pre&gt;hi,

&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ....&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I got the ole' can't assign an unidentified something or other to Lvalue...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; The macro has 2 lines.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #local Result = array {Val1, Val2};&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Result&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; But somehow it thinks Result hasn't been defined.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; So I deleted the #local and the Result, and just left the array.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Works fine now.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I don't get it.&lt;/span&gt;

eg:
#version 3.8;
global_settings {assumed_gamma 1}
box {0,1}

#macro has2lines ()
  #local Result = array {1234,5678};
  (Result[0], Result[1])
#end

#declare (first,second) = has2lines();
#debug concat(&amp;quot;first &amp;quot;,str(first,0,0),&amp;quot; second &amp;quot;,str(second,0,0),&amp;quot;\n&amp;quot;)
#warning &amp;quot;end-of-scene&amp;quot;


note (a) you need to provide two return values if you want to assign two values
from the call, and (b) nothing doing w/out parentheses.  (and coffee !! :-))


regards, jr.
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 27 Mar 2023 02:30:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6420ff1417acbde34301edef6cde94f1%40news.povray.org%3E/#%3Cweb.6420ff1417acbde34301edef6cde94f1%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6420ff1417acbde34301edef6cde94f1%40news.povray.org%3E/#%3Cweb.6420ff1417acbde34301edef6cde94f1%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: No semicolon allowed in Tuple-style assignme... [1116 days 14 hours and 34 minutes ago]</title>
		<description>
&lt;pre&gt;William F Pokorny &amp;lt;ano###&amp;nbsp;[at]&amp;nbsp;anonymous&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;org&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Tried a few things quickly and v3.8 behavior I think OK. Test scene below:&lt;/span&gt;

Yeah, I don't know.
It seems like these things happen only sometimes, and in hard-to replicate
manners.

For instance, I just did a macro call on a macro that returns a 2 element array.
I got the ole' can't assign an unidentified something or other to Lvalue...

The macro has 2 lines.
#local Result = array {Val1, Val2};

Result

But somehow it thinks Result hasn't been defined.

So I deleted the #local and the Result, and just left the array.
Works fine now.

I don't get it.
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 26 Mar 2023 23:40:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6420d77e17acbde31f9dae3025979125%40news.povray.org%3E/#%3Cweb.6420d77e17acbde31f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6420d77e17acbde31f9dae3025979125%40news.povray.org%3E/#%3Cweb.6420d77e17acbde31f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[William F Pokorny] Re: No semicolon allowed in Tuple-style assignme... [1116 days 15 hours and 35 minutes ago]</title>
		<description>
&lt;pre&gt;On 3/26/23 15:32, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; After checking that there wasn't some { that got put somewhere by accident, I&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; took one of the tuple assignments&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #declare (this, that) = ThisMacroReturns2Values (arg1, arg2, ar3);&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; and deleted the trailing semicolon - and BEHOLD!  the error vanishes.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; That makes for coding awkwardness and confusion.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; (I also run into the same kind of thing when I'm putting commas into a cylinder&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; {} and use an extra comma in between the second endpoint and the cylinder&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; radious - POV-Ray no likey.)&lt;/span&gt;

Tried a few things quickly and v3.8 behavior I think OK. Test scene below:

//---
#version 3.8;

#macro Mac00()
     (1,2)
#end

#declare (V1,V2) = Mac00();
#debug concat(str(V1,-1,-1),&amp;quot; &amp;quot;,str(V2,-1,-1),&amp;quot;\n&amp;quot;)

#declare (V1,V2) = Mac00()
#debug concat(str(V1,-1,-1),&amp;quot; &amp;quot;,str(V2,-1,-1),&amp;quot;\n&amp;quot;)

#declare Cyl00 = cylinder { 0 1 0.1 }
#declare Cyl01 = cylinder { 0, 1 0.1 }
#declare Cyl02 = cylinder { 0, 1, 0.1 }
#declare Cyl03 = cylinder { 0 1, 0.1 }
// #declare Cyl04 = cylinder { 0 1,, 0.1 }  // Valid complaint
// #declare Cyl05 = cylinder { 0 1, 0.1, }  // Valid complaint
// #declare Cyl06 = cylinder { 0, 1,, 0.1 } // Valid complaint

#error &amp;quot;stopping early&amp;quot;
//---

Bill P.
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 26 Mar 2023 22:38:46 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C6420c976%241%40news.povray.org%3E/#%3C6420c976%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C6420c976%241%40news.povray.org%3E/#%3C6420c976%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[jr] Re: No semicolon allowed in Tuple-style assignme... [1116 days 18 hours and 19 minutes ago]</title>
		<description>
&lt;pre&gt;hi,

&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; After checking that there wasn't some { that got put somewhere by accident, I&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; took one of the tuple assignments&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #declare (this, that) = ThisMacroReturns2Values (arg1, arg2, ar3);&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; and deleted the trailing semicolon - and BEHOLD!  the error vanishes.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; That makes for coding awkwardness and confusion.&lt;/span&gt;

had a quick look at some code where I use tuple assignments, all are '#local'
rather than '#declare', but I think your example should work.  (see my
'pvars.inc')



regards, jr.
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 26 Mar 2023 19:55:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6420a26e17acbde34301edef6cde94f1%40news.povray.org%3E/#%3Cweb.6420a26e17acbde34301edef6cde94f1%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6420a26e17acbde34301edef6cde94f1%40news.povray.org%3E/#%3Cweb.6420a26e17acbde34301edef6cde94f1%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] No semicolon allowed in Tuple-style assignments? [1116 days 18 hours and 39 minutes ago]</title>
		<description>
&lt;pre&gt;So, I was just coding a few more macros, and I wanted to return a few vectors.

Pre-3.8, I'd normally handle this using a small array, but the nested macro call
that I was copy-paste-editing had the output that I needed as arguments, and I
figured I'd just use the tuple-style #declare.

I got a weird error about &amp;quot;expecting } found ; instead&amp;quot; and as all of my other
bits of code in the scene were working, with #declare LValue = value; inside of
union {}s, I was puzzled and confused.

After checking that there wasn't some { that got put somewhere by accident, I
took one of the tuple assignments
#declare (this, that) = ThisMacroReturns2Values (arg1, arg2, ar3);
and deleted the trailing semicolon - and BEHOLD!  the error vanishes.

That makes for coding awkwardness and confusion.

(I also run into the same kind of thing when I'm putting commas into a cylinder
{} and use an extra comma in between the second endpoint and the cylinder
radious - POV-Ray no likey.)
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 26 Mar 2023 19:35:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.64209db9e0deeaab1f9dae3025979125%40news.povray.org%3E/#%3Cweb.64209db9e0deeaab1f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.64209db9e0deeaab1f9dae3025979125%40news.povray.org%3E/#%3Cweb.64209db9e0deeaab1f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Bezier spline deformation [1120 days 3 hours and 44 minutes ago]</title>
		<description>
&lt;pre&gt;yesbird &amp;lt;sya###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; As I see your plot also not matching to POV version - vertical size is&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; less.&lt;/span&gt;

Well, your first data set is 1/10th the size of what you later posted as a
prism.  Here's my shape based on your most recent dataset post, and your
original prism simply scaled by 10.

So, I mean, to my eye, they &amp;quot;match&amp;quot; close enough for what we're talking about
here.

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Here I've posted Matlab version - it matches to C4D:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; news://news.povray.org:119/b44b0560-ea7d-f389-12d8-47cbc7d21017@gmail.com&lt;/span&gt;

linky no worky.  But I did see your past pasts, and the other one is indeed
rounder.

Puzzling indeed.  Troubling as well.
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 23 Mar 2023 10:30:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.641c2940122e7e3a1f9dae3025979125%40news.povray.org%3E/#%3Cweb.641c2940122e7e3a1f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.641c2940122e7e3a1f9dae3025979125%40news.povray.org%3E/#%3Cweb.641c2940122e7e3a1f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Bezier spline deformation [1120 days 7 hours and 24 minutes ago]</title>
		<description>
&lt;pre&gt;On 23/03/2023 01:53, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; So --- it looks to me like&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; the other software package is doing something strange?&lt;/span&gt;
As I see your plot also not matching to POV version - vertical size is
less.
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Maybe try another program, or an online tool to see what kinds of results you&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; get?&lt;/span&gt;
Here I've posted Matlab version - it matches to C4D:
news://news.povray.org:119/b44b0560-ea7d-f389-12d8-47cbc7d21017@gmail.com
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 23 Mar 2023 06:49:56 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C2e9fd20a-4f14-56dd-aaf5-71ec3c16d302%40gmail.com%3E/#%3C2e9fd20a-4f14-56dd-aaf5-71ec3c16d302%40gmail.com%3E</guid>
		<link>//news.povray.org/*/message/%3C2e9fd20a-4f14-56dd-aaf5-71ec3c16d302%40gmail.com%3E/#%3C2e9fd20a-4f14-56dd-aaf5-71ec3c16d302%40gmail.com%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Bezier spline deformation [1120 days 15 hours and 19 minutes ago]</title>
		<description>
&lt;pre&gt;I plotted out the points following the standard cubic equations described by the
Bernstein polynomials and got the attached shape.   So --- it looks to me like
the other software package is doing something strange?

Maybe try another program, or an online tool to see what kinds of results you
get?

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 22 Mar 2023 22:55:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.641b8701122e7e3a1f9dae3025979125%40news.povray.org%3E/#%3Cweb.641b8701122e7e3a1f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.641b8701122e7e3a1f9dae3025979125%40news.povray.org%3E/#%3Cweb.641b8701122e7e3a1f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Bezier spline deformation [1121 days and 13 minutes ago]</title>
		<description>
&lt;pre&gt;On 22/03/2023 16:07, William F Pokorny wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I get the attached image using an orthographic camera and if not a match &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; for what c4d is showing in your last post, it looks to me to be in the &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ballpark.&lt;/span&gt;

Thanks a lot for this experiment, the shape becomes much closer to
original and I see that POV gives a lot of space for 'hoodoo'.

As I expected before, to achieve exact matching, I need to do some
adjustments of original data. Not much of a fun, but this is reality ...
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 22 Mar 2023 14:00:50 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cc398b209-071c-9ae3-9f8e-40a4a4d6eeca%40gmail.com%3E/#%3Cc398b209-071c-9ae3-9f8e-40a4a4d6eeca%40gmail.com%3E</guid>
		<link>//news.povray.org/*/message/%3Cc398b209-071c-9ae3-9f8e-40a4a4d6eeca%40gmail.com%3E/#%3Cc398b209-071c-9ae3-9f8e-40a4a4d6eeca%40gmail.com%3E</link>
	</item>
	<item>
		<title>[William F Pokorny] Re: Bezier spline deformation [1121 days 1 hour and 6 minutes ago]</title>
		<description>
&lt;pre&gt;On 3/22/23 05:05, yesbird wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; The problem is in different results of splines rendering in C4D and POV, &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I can't even imagine how it could be.&lt;/span&gt;

A bit of wild guessing. In looking some at font rendering code years 
back, I noticed what looked like bezier spline p1-c1-c2-p2 incoming 
point sets being converted to p1-p1_2((c1+c2)/2)-p3 and then the 
duplicate end points getting compressed. The resulting point list was 
then rendered with via cubic_spline.

The why of all it then, I do not know. But, if I do that conversion on 
your bezier_spline point list and create an equivalent cubic_spline of:

#declare Extrude2 = prism { linear_sweep cubic_spline 0, 1.000000, 11
    &amp;lt;0.975347, -0.725347&amp;gt;
    &amp;lt;1.500000, 0.000000&amp;gt;
    &amp;lt;0.975347, 0.725347&amp;gt;
    &amp;lt;0.000000, 1.000000&amp;gt;
    &amp;lt;-0.975347, 0.725347&amp;gt;
    &amp;lt;-1.500000, 0.000000&amp;gt;
    &amp;lt;-0.975347, -0.725347&amp;gt;
    &amp;lt;0.000000, -1.000000&amp;gt;
    &amp;lt;0.975347, -0.725347&amp;gt;
    &amp;lt;1.500000, 0.000000&amp;gt;
    &amp;lt;0.975347, 0.725347&amp;gt;

I get the attached image using an orthographic camera and if not a match 
for what c4d is showing in your last post, it looks to me to be in the 
ballpark.

Bill P.
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 22 Mar 2023 13:07:31 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C641afd93%241%40news.povray.org%3E/#%3C641afd93%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C641afd93%241%40news.povray.org%3E/#%3C641afd93%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Bezier spline deformation [1121 days 5 hours and 8 minutes ago]</title>
		<description>
&lt;pre&gt;On 22/03/2023 04:54, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; The control points should transfer seamlessly, since they are just numerical&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; coordinates.  Although with a cubic, you need those &amp;quot;extra&amp;quot; control points which&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; don't show up but that affect the shape of the curve - so maybe that's where the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; problem lies?&lt;/span&gt;

Thanks, Bill, fortunately I'm familiar with splines from my school years 
:). The problem is in different results of splines rendering in C4D and 
POV, I can't even imagine how it could be.

Data is following:
//-------------------------------------------------------------------
#declare Extrude = prism { linear_sweep bezier_spline 0, 3.000000, 16

   // -----------
   &amp;lt;15.000000, 0.000000&amp;gt;   // P1
   &amp;lt;15.000000, 3.750000&amp;gt;   // T2
   &amp;lt;5.625000, 10.000000&amp;gt;   // T3
   &amp;lt;0.000000, 10.000000&amp;gt;   // P2
   // -----------
   &amp;lt;0.000000, 10.000000&amp;gt;   // P2
   &amp;lt;-5.625000, 10.000000&amp;gt;  // T4
   &amp;lt;-15.000000, 3.750000&amp;gt;  // T5
   &amp;lt;-15.000000, 0.000000&amp;gt;  // P3
   // -----------
   &amp;lt;-15.000000, 0.000000&amp;gt;  // P3
   &amp;lt;-15.000000, -3.750000&amp;gt; // T6
   &amp;lt;-5.625000, -10.000000&amp;gt; // T7
   &amp;lt;0.000000, -10.000000&amp;gt;  // P4
   // -----------
   &amp;lt;0.000000, -10.000000&amp;gt;  // P4
   &amp;lt;5.625000, -10.000000&amp;gt;  // T8
   &amp;lt;15.000000, -3.750000&amp;gt;  // T1
   &amp;lt;15.000000, 0.000000&amp;gt;   // P1
   // -----------

   matrix
  &amp;lt;0.100000, 0.000000, 0.000000,
   0.000000, 0.100000, 0.000000,
   0.000000, 0.000000, 0.100000,
   -0.005274, 0.030602, -0.017559&amp;gt;

   material { texture {pigment {rgb &amp;lt;1,1,1&amp;gt; }}}
}

object{ Extrude }
//-------------------------------------------------------------------

Results attached.
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 22 Mar 2023 09:05:30 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cbcbcfdb5-5a60-6216-15d7-3184785c9202%40gmail.com%3E/#%3Cbcbcfdb5-5a60-6216-15d7-3184785c9202%40gmail.com%3E</guid>
		<link>//news.povray.org/*/message/%3Cbcbcfdb5-5a60-6216-15d7-3184785c9202%40gmail.com%3E/#%3Cbcbcfdb5-5a60-6216-15d7-3184785c9202%40gmail.com%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Bezier spline deformation [1121 days 12 hours and 19 minutes ago]</title>
		<description>
&lt;pre&gt;yesbird &amp;lt;sya###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; On 21/03/2023 23:21, Leroy wrote:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; Do you have access to the C4D and POV source code ?&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; I know it's complicated but you might get an idea of where they differ.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Thanks for suggestion, yes, I have POV sources, but can only dream about&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; sources of C4D :)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; And even I will find the reason of difference (position of control&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; points) in sources, I will not be able to control them in POV's 'prism':&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; https://wiki.povray.org/content/Reference:Prism&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; So the problem still exists ...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; --&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; YB&lt;/span&gt;

So, years ago, when I still didn't have any real clue what was going on with
Bezier splines and patches, I thought that maybe different softwares might have
different equations for computing the cubic Bezier spline.

I don't see how that's that case, as Bezier curves all seem to be calculated the
same way, with the same, meaningful, purposeful equations, derived from the same
principles and adhering to the same behaviour and exhibiting the same properties
- such as partition of unity.  I'm not seeing how that could be done multiple
ways - without messing up things like True Type fonts, and the myriad other
applications of Bezier curves across different software packages and operating
systems.

So I am presuming that C4D uses the same equations that POV-Ray uses, which I've
at some point read the source code for, and matches the equations that I write
to make them myself.

The control points should transfer seamlessly, since they are just numerical
coordinates.  Although with a cubic, you need those &amp;quot;extra&amp;quot; control points which
don't show up but that affect the shape of the curve - so maybe that's where the
problem lies?

- BW
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 22 Mar 2023 01:55:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.641a5fee122e7e3a1f9dae3025979125%40news.povray.org%3E/#%3Cweb.641a5fee122e7e3a1f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.641a5fee122e7e3a1f9dae3025979125%40news.povray.org%3E/#%3Cweb.641a5fee122e7e3a1f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Bezier spline deformation [1121 days 16 hours and 29 minutes ago]</title>
		<description>
&lt;pre&gt;On 21/03/2023 23:21, Leroy wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Do you have access to the C4D and POV source code ?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I know it's complicated but you might get an idea of where they differ.&lt;/span&gt;

Thanks for suggestion, yes, I have POV sources, but can only dream about
sources of C4D :)

And even I will find the reason of difference (position of control
points) in sources, I will not be able to control them in POV's 'prism':
https://wiki.povray.org/content/Reference:Prism

So the problem still exists ...
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 21 Mar 2023 21:44:14 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C66108263-ba11-8ce5-3a52-d983c13c3cdf%40gmail.com%3E/#%3C66108263-ba11-8ce5-3a52-d983c13c3cdf%40gmail.com%3E</guid>
		<link>//news.povray.org/*/message/%3C66108263-ba11-8ce5-3a52-d983c13c3cdf%40gmail.com%3E/#%3C66108263-ba11-8ce5-3a52-d983c13c3cdf%40gmail.com%3E</link>
	</item>
	<item>
		<title>[Leroy] Re: Bezier spline deformation [1121 days 17 hours and 49 minutes ago]</title>
		<description>
&lt;pre&gt;yesbird &amp;lt;sya###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; On 15/03/2023 17:46, ingo wrote:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; Thanks Alain, I'm aware of that, just tried to show that the POV-Ray&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; implementation of the Bezier spline is not wrong using yesbird's data and&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; various implementations.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Yes, it's not wrong, but the question still exists: how to match it to&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; C4D's produces shape in POV's 'prism' object (see first post).&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Unfortunately, manual states, that only two control points can be set:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; https://wiki.povray.org/content/Reference:Prism&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Experiments with them gives nothing.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; --&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; YB&lt;/span&gt;

Do you have access to the C4D and POV source code ?
I know it's complicated but you might get an idea of where they differ.

 A while back I wrote a win program to make polygons and prisms for POV.
The first try I got the code straight from the internet.But it had little errors
like the one you showed. Then I went right to POV source. Now it is a lot
better.
 Of course you can do some trial an error by changing the control points by some
magic number. I would use a vector to move the control points either from the
other control point in a bezier_spline or the start point for other splines.
 Hope this helps.

Have Fun!
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 21 Mar 2023 20:25:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.641a11a6122e7e3ab201e5baf712fc00%40news.povray.org%3E/#%3Cweb.641a11a6122e7e3ab201e5baf712fc00%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.641a11a6122e7e3ab201e5baf712fc00%40news.povray.org%3E/#%3Cweb.641a11a6122e7e3ab201e5baf712fc00%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Francois LE COAT] Re: Optical Pendulum [1121 days 23 hours and 23 minutes ago]</title>
		<description>
&lt;pre&gt;Hi,

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ingo writes:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; Francois LE COAT wrote:&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; A WEB page was made to illustrate the &amp;quot;optical pendulum&amp;quot; experiment:&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt; &amp;lt;https://hebergement.universite-paris-saclay.fr/lecoat/demoweb/optica&lt;/span&gt;
l_pendulum.html&amp;gt; 
&lt;span class=&quot;RC3&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; Nice!&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Thanks. I don't know anyone else working on such an experiment. It only&lt;/span&gt;

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; requires a computer and a camera. This is so simple, but interesting!&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Many people are trying to match images the best way, but there's no&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; real experiment like this &amp;quot;optical pendulum&amp;quot;, so far as I know about it&lt;/span&gt;
?

The planar perspective transformation used for modelling the camera
motion, was added to the &amp;quot;optical pendulum&amp;quot; WEB page. Some of the
transforms are present in Persistence of Vision, like 3 translations
and 3 rotations. But the &amp;quot;skew&amp;quot; or &amp;quot;shear&amp;quot; angles &amp;lt;Sx,Sy&amp;gt; are not
directly. Thanks for the POV-Ray advance users to have helped on that.

Regards,

-- 
Fran&amp;#231;ois LE COAT
&amp;lt;http://eureka.atari.org/&amp;gt;
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 21 Mar 2023 14:51:07 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C6419c45b%241%40news.povray.org%3E/#%3C6419c45b%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C6419c45b%241%40news.povray.org%3E/#%3C6419c45b%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Least Squares fitting [1126 days 16 hours and 14 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Kenneth&amp;quot; &amp;lt;kdw###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Those stackexchange links are proving to be fascinating and really informative;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; thanks! Yes, I see now that 'squaring' has many purposes (and Pythagorean&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; antecedents) regarding the 'sum of squares' method. Lots to absorb!&lt;/span&gt;

Apparently, Grant has been closely monitoring our conversations, and made a
video to explain the basics:

But what is the Central Limit Theorem?

3Blue1Brown

https://www.youtube.com/watch?v=zeJD6dqJ5lo
&lt;/pre&gt;
		</description>
		<pubDate>Thu, 16 Mar 2023 22:00:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6413912d89b6dca71f9dae3025979125%40news.povray.org%3E/#%3Cweb.6413912d89b6dca71f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6413912d89b6dca71f9dae3025979125%40news.povray.org%3E/#%3Cweb.6413912d89b6dca71f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Bezier spline deformation [1127 days 22 hours and 52 minutes ago]</title>
		<description>
&lt;pre&gt;On 15/03/2023 17:46, ingo wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Thanks Alain, I'm aware of that, just tried to show that the POV-Ray&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; implementation of the Bezier spline is not wrong using yesbird's data and&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; various implementations.&lt;/span&gt;

Yes, it's not wrong, but the question still exists: how to match it to
C4D's produces shape in POV's 'prism' object (see first post).
Unfortunately, manual states, that only two control points can be set:
https://wiki.povray.org/content/Reference:Prism

Experiments with them gives nothing.
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 15 Mar 2023 15:21:22 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C3a1fca00-fbb0-8eb4-7e51-2c5c16514547%40gmail.com%3E/#%3C3a1fca00-fbb0-8eb4-7e51-2c5c16514547%40gmail.com%3E</guid>
		<link>//news.povray.org/*/message/%3C3a1fca00-fbb0-8eb4-7e51-2c5c16514547%40gmail.com%3E/#%3C3a1fca00-fbb0-8eb4-7e51-2c5c16514547%40gmail.com%3E</link>
	</item>
	<item>
		<title>[ingo] Re: Bezier spline deformation [1127 days 23 hours and 24 minutes ago]</title>
		<description>
&lt;pre&gt;Alain Martel &amp;lt;kua###&amp;nbsp;[at]&amp;nbsp;videotron&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;ca&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Le 2023-03-15 &amp;#224; 03:30, ingo a &amp;#233;crit&amp;#160;:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; &amp;quot;ingo&amp;quot; &amp;lt;nomail@nomail&amp;gt; wrote:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I see the problem. Your spline is not &amp;#171;stiff&amp;#187; enough.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Try pushing the control points back. That'll make the spline flatter at&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; the placement points.&lt;/span&gt;

Thanks Alain, I'm aware of that, just tried to show that the POV-Ray
implementation of the Bezier spline is not wrong using yesbird's data and
various implementations.

ingo
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 15 Mar 2023 14:50:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6411da2e122e7e3a17bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.6411da2e122e7e3a17bac71e8ffb8ce3%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6411da2e122e7e3a17bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.6411da2e122e7e3a17bac71e8ffb8ce3%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Alain Martel] Re: Bezier spline deformation [1128 days and 46 minutes ago]</title>
		<description>
&lt;pre&gt;Le 2023-03-15 &amp;#195;&amp;#160; 03:30, ingo a &amp;#195;&amp;#169;crit&amp;#194;&amp;#160;:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;quot;ingo&amp;quot; &amp;lt;nomail@nomail&amp;gt; wrote:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
I see the problem. Your spline is not &amp;#194;&amp;#171;stiff&amp;#194;&amp;#187; enough.
Try pushing the control points back. That'll make the spline flatter at 
the placement points.

Try this :
#declare vC = array[13]{
    &amp;lt;1.500000, 0.000000, 0&amp;gt;,//P
    &amp;lt;1.500000, 0.6, 0&amp;gt;,//C
    &amp;lt;0.47, 1.000000, 0&amp;gt;,//C
    &amp;lt;0.000000, 1.000000, 0&amp;gt;,//P
    &amp;lt;-0.47, 1.000000, 0&amp;gt;,//C
    &amp;lt;-1.500000, 0.6, 0&amp;gt;,//C
    &amp;lt;-1.500000, 0.000000, 0&amp;gt;,//P
    &amp;lt;-1.500000, -0.6, 0&amp;gt;,//C
    &amp;lt;-0.47, -1.000000, 0&amp;gt;,//C
    &amp;lt;0.000000, -1.000000, 0&amp;gt;,//P
    &amp;lt;0.47, -1.000000, 0&amp;gt;,//C
    &amp;lt;1.500000, -0.6, 0&amp;gt;,//C
    &amp;lt;1.500000, 0.000000, 0&amp;gt;//P
}
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 15 Mar 2023 13:27:50 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C6411c7d6%241%40news.povray.org%3E/#%3C6411c7d6%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C6411c7d6%241%40news.povray.org%3E/#%3C6411c7d6%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Bezier spline deformation [1128 days 1 hour and 49 minutes ago]</title>
		<description>
&lt;pre&gt;On 15/03/2023 14:29, ingo wrote:
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; Cubic splines are hard to compare. What cubic is used by whom?&lt;/span&gt;

As I was expected, looks like the reason is default location of control
points, no any magic here.
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 15 Mar 2023 12:24:40 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C5b92f96f-c8ce-6d16-3d3d-96b290d02a06%40gmail.com%3E/#%3C5b92f96f-c8ce-6d16-3d3d-96b290d02a06%40gmail.com%3E</guid>
		<link>//news.povray.org/*/message/%3C5b92f96f-c8ce-6d16-3d3d-96b290d02a06%40gmail.com%3E/#%3C5b92f96f-c8ce-6d16-3d3d-96b290d02a06%40gmail.com%3E</link>
	</item>
	<item>
		<title>[ingo] Re: Bezier spline deformation [1128 days 2 hours and 44 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;ingo&amp;quot; &amp;lt;nomail@nomail&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; yesbird &amp;lt;sya###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; On 15/03/2023 10:47, yesbird wrote:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Cubic splines are hard to compare. What cubic is used by whom?&lt;/span&gt;

Cubic B-spline using my curve macros

---%&amp;lt;------%&amp;lt;------%&amp;lt;---

#version 3.7;

#include &amp;quot;curve.inc&amp;quot;  //https://ingoogni.nl/download/Curve.zip

#global_settings{ assumed_gamma 1.0 }
#default{ finish{ ambient 0.1 diffuse 0.9 emission 0}}

#declare Bspl3 = CIbspline3(
    array[7]{
        &amp;lt;0.000000, -1.000000,0&amp;gt;
        &amp;lt;1.500000, 0.000000,0&amp;gt;
        &amp;lt;0.000000, 1.000000,0&amp;gt;
        &amp;lt;-1.500000, 0.000000,0&amp;gt;
        &amp;lt;0.000000, -1.000000,0&amp;gt;
        &amp;lt;1.500000, 0.000000,0&amp;gt;
        &amp;lt;0.000000, 1.000000,0&amp;gt;
    }
)

//get the points on the curve
#for(T, 0, 1, 0.005)
  sphere{CIget(Bspl3, T), 0.02 pigment{rgb 1}}
#end

//control points
sphere{Bspl3[1][0] 0.03 pigment{rgb &amp;lt;1,0,0&amp;gt;}}
#for(i, 1, dimension_size(Bspl3[1],1) - 1)
  sphere{Bspl3[1][i] 0.03 pigment{rgb &amp;lt;1,0,0&amp;gt;}}
  cylinder{Bspl3[1][i-1], Bspl3[1][i], 0.01 pigment{rgb &amp;lt;1,0,0&amp;gt;}}
#end

camera {
  perspective angle 45
  location  &amp;lt;0, 0, -6&amp;gt;
  right     x*image_width/image_height
  look_at   &amp;lt;0, 0, 0.0&amp;gt;
}

light_source{&amp;lt;0, 0,-3000&amp;gt; color rgb 1}

---%,------%&amp;lt;------%&amp;lt;---
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 15 Mar 2023 11:30:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6411abfd122e7e3a17bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.6411abfd122e7e3a17bac71e8ffb8ce3%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6411abfd122e7e3a17bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.6411abfd122e7e3a17bac71e8ffb8ce3%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[ingo] Re: Bezier spline deformation [1128 days 2 hours and 59 minutes ago]</title>
		<description>
&lt;pre&gt;yesbird &amp;lt;sya###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; On 15/03/2023 10:47, yesbird wrote:&lt;/span&gt;

Cubic splines are hard to compare. What cubic is used by whom?

Inkscape bezier:
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 15 Mar 2023 11:15:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6411a7b7122e7e3a17bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.6411a7b7122e7e3a17bac71e8ffb8ce3%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6411a7b7122e7e3a17bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.6411a7b7122e7e3a17bac71e8ffb8ce3%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Bezier spline deformation [1128 days 4 hours and 18 minutes ago]</title>
		<description>
&lt;pre&gt;On 15/03/2023 10:47, yesbird wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; It seems that C4D has some hidden spline rendering magic.&lt;/span&gt;

This is a Matlab version of cubic spline (attached):
------------------------------------
fnplt(cscvn( [1.5 0 -1.5 0 1.5; ...
               0 1 0 -1 0] ))
------------------------------------

details are here:
https://www.mathworks.com/help/curvefit/cscvn.html?searchHighlight=cscvn&amp;amp;s_tid=srchtitle_cscvn_1

Score is 2:2 now ...
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 15 Mar 2023 09:55:55 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cb44b0560-ea7d-f389-12d8-47cbc7d21017%40gmail.com%3E/#%3Cb44b0560-ea7d-f389-12d8-47cbc7d21017%40gmail.com%3E</guid>
		<link>//news.povray.org/*/message/%3Cb44b0560-ea7d-f389-12d8-47cbc7d21017%40gmail.com%3E/#%3Cb44b0560-ea7d-f389-12d8-47cbc7d21017%40gmail.com%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Bezier spline deformation [1128 days 6 hours and 10 minutes ago]</title>
		<description>
&lt;pre&gt;On 15/03/2023 07:11, Mike Miller wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I'll take a look. Have you tried plotting those same points in another package?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ...like AutoCAD or FreeCAD. Did you try adding a tolerance? I doubt it would&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; matter.&lt;/span&gt;

No, I have no them, maybe some online tools...
Also will try to ask MAXON support - they answer very quickly.
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 15 Mar 2023 08:03:48 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C85b87be3-7ea0-95d9-62fa-0aa3cad0a315%40gmail.com%3E/#%3C85b87be3-7ea0-95d9-62fa-0aa3cad0a315%40gmail.com%3E</guid>
		<link>//news.povray.org/*/message/%3C85b87be3-7ea0-95d9-62fa-0aa3cad0a315%40gmail.com%3E/#%3C85b87be3-7ea0-95d9-62fa-0aa3cad0a315%40gmail.com%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Bezier spline deformation [1128 days 6 hours and 26 minutes ago]</title>
		<description>
&lt;pre&gt;On 15/03/2023 10:13, ingo wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Using my curves macro:&lt;/span&gt;

Thank you for this test, POV leads 2:0 now. It seems that C4D has some
hidden spline rendering magic. I will ask MAXON support now...
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 15 Mar 2023 07:47:23 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C736a5120-c008-974b-7783-0b76be8983fb%40gmail.com%3E/#%3C736a5120-c008-974b-7783-0b76be8983fb%40gmail.com%3E</guid>
		<link>//news.povray.org/*/message/%3C736a5120-c008-974b-7783-0b76be8983fb%40gmail.com%3E/#%3C736a5120-c008-974b-7783-0b76be8983fb%40gmail.com%3E</link>
	</item>
	<item>
		<title>[ingo] Re: Bezier spline deformation [1128 days 6 hours and 39 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;ingo&amp;quot; &amp;lt;nomail@nomail&amp;gt; wrote:
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 15 Mar 2023 07:35:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.641173f2122e7e3a17bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.641173f2122e7e3a17bac71e8ffb8ce3%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.641173f2122e7e3a17bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.641173f2122e7e3a17bac71e8ffb8ce3%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[ingo] Re: Bezier spline deformation [1128 days 6 hours and 59 minutes ago]</title>
		<description>
&lt;pre&gt;Using my curves macro:
---%&amp;lt;---%&amp;lt;---%&amp;lt;---
#version 3.7;

#include &amp;quot;curve.inc&amp;quot;  //https://ingoogni.nl/download/Curve.zip

#global_settings{ assumed_gamma 1.0 }
#default{ finish{ ambient 0.1 diffuse 0.9 emission 0}}

#declare vT = array[2]{0, 1}

#declare vC = array[13]{
   &amp;lt;1.500000, 0.000000, 0&amp;gt;,
   &amp;lt;1.500000, 0.450694, 0&amp;gt;,
   &amp;lt;0.450694, 1.000000, 0&amp;gt;,
   &amp;lt;0.000000, 1.000000, 0&amp;gt;,
   &amp;lt;-0.450694, 1.000000, 0&amp;gt;,
   &amp;lt;-1.500000, 0.450694, 0&amp;gt;,
   &amp;lt;-1.500000, 0.000000, 0&amp;gt;,
   &amp;lt;-1.500000, -0.450694, 0&amp;gt;,
   &amp;lt;-0.450694, -1.000000, 0&amp;gt;,
   &amp;lt;0.000000, -1.000000, 0&amp;gt;,
   &amp;lt;0.450694, -1.000000, 0&amp;gt;,
   &amp;lt;1.500000, -0.450694, 0&amp;gt;,
   &amp;lt;1.500000, 0.000000, 0&amp;gt;
}
#declare Test = CIt(CIlinear(vT), CIbezier3(vC));


//get the points on the curve
#for(T, 0, 1, 0.005)
  sphere{CITget(Test, T), 0.02 pigment{rgb 1}}
#end

//control points
sphere{Test[1][1][0] 0.03 pigment{rgb &amp;lt;1,0,0&amp;gt;}}
#for(i, 1, dimension_size(Test[1][1],1) - 1)
  sphere{Test[1][1][i] 0.03 pigment{rgb &amp;lt;1,0,0&amp;gt;}}
  cylinder{Test[1][1][i-1], Test[1][1][i], 0.01 pigment{rgb &amp;lt;1,0,0&amp;gt;}}
#end

camera {
  perspective angle 45
  location  &amp;lt;0, 0, -6&amp;gt;
  right     x*image_width/image_height
  look_at   &amp;lt;0, 0, 0.0&amp;gt;
}

light_source{&amp;lt;0, 0,-3000&amp;gt; color rgb 1}

---%&amp;lt;---%&amp;lt;---%&amp;lt;---
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 15 Mar 2023 07:15:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.64116ff1122e7e3a17bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.64116ff1122e7e3a17bac71e8ffb8ce3%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.64116ff1122e7e3a17bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.64116ff1122e7e3a17bac71e8ffb8ce3%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Mike Miller] Re: Bezier spline deformation [1128 days 9 hours and 59 minutes ago]</title>
		<description>
&lt;pre&gt;yesbird &amp;lt;sya###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; On 14/03/2023 14:01, yesbird wrote:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; while working on C4D-&amp;gt;POV converter, I've discovered a strange form&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; deviation of prism, extruded from bezier spline (see attachment).&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; And I should say, that for cubic spline I have the same distortion:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; //----------------------------------------------------------------------------&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; camera{ perspective&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  location  &amp;lt;0, 0, 0&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;  angle 53.130102&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    matrix&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   &amp;lt;0.999944, -0.000000, -0.010610,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    0.010182, 0.281279, 0.959572,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    0.002984, -0.959626, 0.281263,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    -0.018327, 5.930451, -1.559761&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #declare Extrude = prism { linear_sweep cubic_spline 0, 1.000000, 7&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    &amp;lt;0.000000, -1.000000&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    &amp;lt;1.500000, 0.000000&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    &amp;lt;0.000000, 1.000000&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    &amp;lt;-1.500000, 0.000000&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    &amp;lt;0.000000, -1.000000&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    &amp;lt;1.500000, 0.000000&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    &amp;lt;0.000000, 1.000000&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    matrix&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;   &amp;lt;1.000000, 0.000000, 0.000000,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    0.000000, 1.000000, 0.000000,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    0.000000, 0.000000, 1.000000,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    0.000000, 0.000000, 0.000000&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;    material { mat_default }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; object{ Extrude }&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; //----------------------------------------------------------------------------&lt;/span&gt;

I'll take a look. Have you tried plotting those same points in another package?
...like AutoCAD or FreeCAD. Did you try adding a tolerance? I doubt it would
matter.
Mike
&lt;/pre&gt;
		</description>
		<pubDate>Wed, 15 Mar 2023 04:15:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.6411456b122e7e3aa30d213ddabc9342%40news.povray.org%3E/#%3Cweb.6411456b122e7e3aa30d213ddabc9342%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.6411456b122e7e3aa30d213ddabc9342%40news.povray.org%3E/#%3Cweb.6411456b122e7e3aa30d213ddabc9342%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Studio lighting setup [1129 days 2 hours and 50 minutes ago]</title>
		<description>
&lt;pre&gt;On 14/03/2023 10:04, Thomas de Groot wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I would expect a bit of shadow /under/ the beetle though...&lt;/span&gt;

Yes, this setup needs a lot of tweaking, but I was so glad to obtain
this tool that, posted the first draft immediately. :)
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 14 Mar 2023 11:24:01 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C10f28c89-9def-b667-186d-82904449a312%40gmail.com%3E/#%3C10f28c89-9def-b667-186d-82904449a312%40gmail.com%3E</guid>
		<link>//news.povray.org/*/message/%3C10f28c89-9def-b667-186d-82904449a312%40gmail.com%3E/#%3C10f28c89-9def-b667-186d-82904449a312%40gmail.com%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Bezier spline deformation [1129 days 2 hours and 53 minutes ago]</title>
		<description>
&lt;pre&gt;On 14/03/2023 14:01, yesbird wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; while working on C4D-&amp;gt;POV converter, I've discovered a strange form&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; deviation of prism, extruded from bezier spline (see attachment).&lt;/span&gt;

And I should say, that for cubic spline I have the same distortion:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; //----------------------------------------------------------------------------&lt;/span&gt;
camera{	perspective
	location  &amp;lt;0, 0, 0&amp;gt;
	angle 53.130102

   matrix
  &amp;lt;0.999944, -0.000000, -0.010610,
   0.010182, 0.281279, 0.959572,
   0.002984, -0.959626, 0.281263,
   -0.018327, 5.930451, -1.559761&amp;gt;

}

#declare Extrude = prism { linear_sweep cubic_spline 0, 1.000000, 7

   &amp;lt;0.000000, -1.000000&amp;gt;
   &amp;lt;1.500000, 0.000000&amp;gt;
   &amp;lt;0.000000, 1.000000&amp;gt;
   &amp;lt;-1.500000, 0.000000&amp;gt;
   &amp;lt;0.000000, -1.000000&amp;gt;
   &amp;lt;1.500000, 0.000000&amp;gt;
   &amp;lt;0.000000, 1.000000&amp;gt;
   matrix
  &amp;lt;1.000000, 0.000000, 0.000000,
   0.000000, 1.000000, 0.000000,
   0.000000, 0.000000, 1.000000,
   0.000000, 0.000000, 0.000000&amp;gt;

   material { mat_default }
}

object{ Extrude }
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; //----------------------------------------------------------------------------&lt;/span&gt;
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 14 Mar 2023 11:20:10 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C6410586a%241%40news.povray.org%3E/#%3C6410586a%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C6410586a%241%40news.povray.org%3E/#%3C6410586a%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Bezier spline deformation [1129 days 3 hours and 12 minutes ago]</title>
		<description>
&lt;pre&gt;Hi,

while working on C4D-&amp;gt;POV converter, I've discovered a strange form
deviation of prism, extruded from bezier spline (see attachment).

I claim, that exported data is absolutely correct (checked many times),
and no any useful info found here:
https://www.povray.org/documentation/view/3.7.0/62/
https://wiki.povray.org/content/Reference:Prism

I'm not sure about collisions, but only wonder how the same data with
the algorithm can produce different results. It seams to me, that
interpretation is different or maybe some additional scaling is applied
to tangents, for example.

Code is below, any ideas ?

//----------------------------------------------------------------------------
camera{	perspective
	location  &amp;lt;0, 0, 0&amp;gt;
	angle 53.130102

   matrix
  &amp;lt;1.000000, -0.000000, 0.000000,
   0.000000, 0.000000, 1.000000,
   -0.000000, -1.000000, 0.000000,
   0.058724, 5.575552, -0.059483&amp;gt;

}

#declare Extrude = prism { linear_sweep bezier_spline 0, 1.000000, 16

   &amp;lt;1.500000, 0.000000&amp;gt;
   &amp;lt;1.500000, 0.450694&amp;gt;
   &amp;lt;0.450694, 1.000000&amp;gt;
   &amp;lt;0.000000, 1.000000&amp;gt;
   &amp;lt;0.000000, 1.000000&amp;gt;
   &amp;lt;-0.450694, 1.000000&amp;gt;
   &amp;lt;-1.500000, 0.450694&amp;gt;
   &amp;lt;-1.500000, 0.000000&amp;gt;
   &amp;lt;-1.500000, 0.000000&amp;gt;
   &amp;lt;-1.500000, -0.450694&amp;gt;
   &amp;lt;-0.450694, -1.000000&amp;gt;
   &amp;lt;0.000000, -1.000000&amp;gt;
   &amp;lt;0.000000, -1.000000&amp;gt;
   &amp;lt;0.450694, -1.000000&amp;gt;
   &amp;lt;1.500000, -0.450694&amp;gt;
   &amp;lt;1.500000, 0.000000&amp;gt;
   matrix
  &amp;lt;1.000000, 0.000000, 0.000000,
   0.000000, 1.000000, 0.000000,
   0.000000, 0.000000, 1.000000,
   0.000000, 0.000000, 0.000000&amp;gt;

   material { mat_default }
}

object{ Extrude }
//----------------------------------------------------------------------------
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 14 Mar 2023 11:01:55 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C64105423%241%40news.povray.org%3E/#%3C64105423%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C64105423%241%40news.povray.org%3E/#%3C64105423%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Thomas de Groot] Re: Studio lighting setup [1129 days 7 hours and 9 minutes ago]</title>
		<description>
&lt;pre&gt;Op 13/03/2023 om 18:03 schreef yesbird:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; On 13/03/2023 18:42, yesbird wrote:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; Many thanks, Thomas, I tried it, and it works fine.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; This is why I was looking for it (attached).&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; -- &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; YB&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;

;-)

I would expect a bit of shadow /under/ the beetle though...

-- 
Thomas
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 14 Mar 2023 07:04:48 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C64101c90%241%40news.povray.org%3E/#%3C64101c90%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C64101c90%241%40news.povray.org%3E/#%3C64101c90%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Studio lighting setup [1129 days 21 hours and 10 minutes ago]</title>
		<description>
&lt;pre&gt;On 13/03/2023 18:42, yesbird wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Many thanks, Thomas, I tried it, and it works fine.&lt;/span&gt;
This is why I was looking for it (attached).
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 13 Mar 2023 17:04:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C4348320d-5181-4f92-5b24-95de6bd1ca00%40gmail.com%3E/#%3C4348320d-5181-4f92-5b24-95de6bd1ca00%40gmail.com%3E</guid>
		<link>//news.povray.org/*/message/%3C4348320d-5181-4f92-5b24-95de6bd1ca00%40gmail.com%3E/#%3C4348320d-5181-4f92-5b24-95de6bd1ca00%40gmail.com%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Studio lighting setup [1129 days 22 hours and 31 minutes ago]</title>
		<description>
&lt;pre&gt;On 13/03/2023 17:04, Thomas de Groot wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Maybe this?&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; http://www.ignorancia.org/index.php/technical/tools-objects/studio-lighting-kit/&lt;/span&gt;
YES, exactly !
Many thanks, Thomas, I tried it, and it works fine.
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 13 Mar 2023 15:42:36 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C1ce3c99e-547c-3949-7ce0-f68741f4ddb6%40gmail.com%3E/#%3C1ce3c99e-547c-3949-7ce0-f68741f4ddb6%40gmail.com%3E</guid>
		<link>//news.povray.org/*/message/%3C1ce3c99e-547c-3949-7ce0-f68741f4ddb6%40gmail.com%3E/#%3C1ce3c99e-547c-3949-7ce0-f68741f4ddb6%40gmail.com%3E</link>
	</item>
	<item>
		<title>[Thomas de Groot] Re: Studio lighting setup [1130 days and 9 minutes ago]</title>
		<description>
&lt;pre&gt;Op 13-3-2023 om 14:53 schreef yesbird:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; On 13/03/2023 16:07, ingo wrote:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; Look for basic portrait photography lighting. It works very well for &lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; single&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; objects.&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; This came up with a quick search,&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt;
https://askboxs.com/2014/09/30/what-are-the-5-basic-lighting-setups-used-in-studio-portrait-photography/&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Thanks, but unfortunately this link is not work, and may be I is should&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; say, that I mean some ready-to-use examples of POV scenes.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; -- &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
Maybe this?

http://www.ignorancia.org/index.php/technical/tools-objects/studio-lighting-kit/

-- 
Thomas
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 13 Mar 2023 14:04:16 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C640f2d60%241%40news.povray.org%3E/#%3C640f2d60%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C640f2d60%241%40news.povray.org%3E/#%3C640f2d60%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Studio lighting setup [1130 days and 20 minutes ago]</title>
		<description>
&lt;pre&gt;On 13/03/2023 16:07, ingo wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Look for basic portrait photography lighting. It works very well for single&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; objects.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; This came up with a quick search,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;
https://askboxs.com/2014/09/30/what-are-the-5-basic-lighting-setups-used-in-studio-portrait-photography/&lt;/span&gt;
Thanks, but unfortunately this link is not work, and may be I is should
say, that I mean some ready-to-use examples of POV scenes.
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 13 Mar 2023 13:53:15 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C0f7a191c-7baa-5064-ec66-1386651267fd%40gmail.com%3E/#%3C0f7a191c-7baa-5064-ec66-1386651267fd%40gmail.com%3E</guid>
		<link>//news.povray.org/*/message/%3C0f7a191c-7baa-5064-ec66-1386651267fd%40gmail.com%3E/#%3C0f7a191c-7baa-5064-ec66-1386651267fd%40gmail.com%3E</link>
	</item>
	<item>
		<title>[ingo] Re: Studio lighting setup [1130 days 1 hour and 4 minutes ago]</title>
		<description>
&lt;pre&gt;yesbird &amp;lt;sya###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Hi,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I need your advice in setting up lighting for different scenes, at&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; present time mostly for single objects, turned around Y axis (turntable&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; animation).&lt;/span&gt;

Look for basic portrait photography lighting. It works very well for single
objects.
This came up with a quick search,
https://askboxs.com/2014/09/30/what-are-the-5-basic-lighting-setups-used-in-studio-portrait-photography/

ingo
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 13 Mar 2023 13:10:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.640f1ff6f7a1f03317bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.640f1ff6f7a1f03317bac71e8ffb8ce3%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.640f1ff6f7a1f03317bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.640f1ff6f7a1f03317bac71e8ffb8ce3%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Studio lighting setup [1130 days 4 hours and 8 minutes ago]</title>
		<description>
&lt;pre&gt;Hi,
I need your advice in setting up lighting for different scenes, at
present time mostly for single objects, turned around Y axis (turntable
animation).

Achieving a good lighting environment is a challenging task, especially
for new users. When I was working with VRay, I found a set of
ready-to-use scenes with lights, light-boxes, umbrellas, etc. for
different cases, such as jewelry, faces, body, glossy objects, etc.
which helps me to start setting up my own.

I read this tips:
http://warp.povusers.org/povtips/
but it's only a basics, I would like to have set of professionally done
examples.

Could you please help me to find them, at least point where to start ?
Thanks in advance,
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 13 Mar 2023 10:05:48 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C640ef57c%241%40news.povray.org%3E/#%3C640ef57c%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C640ef57c%241%40news.povray.org%3E/#%3C640ef57c%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[William F Pokorny] Re: lemon {} revisited [1130 days 10 hours and 38 minutes ago]</title>
		<description>
&lt;pre&gt;On 3/12/23 08:45, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Perhaps an interesting thing to have available in povr would be a &amp;quot;global&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; bounding box&amp;quot; for the scene in the render statistics.  It could help clue scene&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; authors in to overlooked distance issues and maybe help track down spuriously&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; placed objects, as well as resolve other weird issues.&lt;/span&gt;

I'm thinking some about this and unsure how to do it in any general way 
that would not often raise false alarms.

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; On to the trivial solution.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Spindle torus, did you say?&lt;/span&gt;


I'll write more about accuracy stuff here so folks are not left too 
'depressed' about higher order inbuilt shapes like the lemon. ;-)

Attached is another image with three shapes left to right where the 
orthographic camera is again pulled back about -2000 from the origin 
where the shapes sit. In fact even -2e6 is no problem.

The middle and right shapes are an isosurface, f_torus 'intersect' 
spindle and on the right is the torus 'intersect' spindle. A good 
question is why do these shapes seem to be immune to the camera set back 
(to the long ray length)?

The answer is both shapes have low order container shapes which are in 
fact the first intersection. The isosurface shape uses either a box or a 
sphere(a) which users specify as the container. The torus internally 
creates a bounding sphere which is the first intersection(a).

On the left is again the lemon, but now it works! It does because I did 
this:

union {
     box { -1,1 pigment {rgbt &amp;lt;0,0,0,1&amp;gt;} } // &amp;lt;--- low order bounding(a)
     lemon {
       &amp;lt;0, -Y, 0&amp;gt;, 0, &amp;lt;0, Y, 0&amp;gt;, 0, r
       texture {pigment {rgb &amp;lt;0.2, 0.2,0&amp;gt;} finish {specular 0.4}}
     //sturm
     }
     translate &amp;lt;-.7,0,-.1&amp;gt;
}

Bill P.

(a) - This kind of outer bounding certainly helps and is often a decent 
work-around, but it is not a general solution. For example, when the 
shapes themselves are large (big interior) - as the ray-&amp;gt;surface 
equation and solvers see the shape. Or where the type of csg forces the 
from camera intersections.

The union, clear, first shape bounding can also introduce issues / 
artefacts with other shapes in the scene because that invisible surface 
exists in the scene.

Aside: An attractive argument for representing all shapes with low 
order, mesh approximations is those low order (simpler) ray-&amp;gt;surface 
equations tolerate MUCH longer ray to surface distances on cpu float 
hardware.
&lt;/pre&gt;
		</description>
		<pubDate>Mon, 13 Mar 2023 03:35:40 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C640e9a0c%241%40news.povray.org%3E/#%3C640e9a0c%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C640e9a0c%241%40news.povray.org%3E/#%3C640e9a0c%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[William F Pokorny] Re: lemon {} revisited [1130 days 18 hours and 1 minute ago]</title>
		<description>
&lt;pre&gt;On 3/12/23 13:41, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I also have a usage question with regard to orthographic:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I did not seem to be able to get this particular inclusion of the &amp;quot;angle&amp;quot;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; keyword to work as described, but maybe I didn't try hard enough, or my camera&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; {} block was malformed.&lt;/span&gt;

My only experience using orthographic &amp;amp; angle was first setting up a 
perspective view of solver test cases - where the camera needs be a 
significant distance away with smaller angles. Then I'd flip perspective 
to orthographic to get the, much harder for ray-&amp;gt;surface equations and 
solver, ortho rays as another test case. For me all I did was flip the 
camera types... I've got no experience with more.

Where the documentation says:

&amp;quot;Note: The length of direction is irrelevant unless angle is used.&amp;quot; is 
true only in an abstract sense. While not the direction vector length, 
the actual length of the ray in that direction absolutely matters with 
respect to how well many shapes work.

If I take my earlier Camera01z set up and change the location to be:

location &amp;lt;0,0,-2*1e3&amp;gt;

I get the attached image of the same identical scene. The ray length 
went from ~2 to ~2000.

Bill P.

(a) - To some extent it matters to other camera types(b) (or say light 
positions for shooting photons), but in other cases the rays are almost 
all coming in at some angle relative to the scene objects - and this 
alone helps the ray-&amp;gt;surface equations set up and the solvers.

(b) - I had too sovler tests for extremely small angle perspective 
cameras 1-2 degrees and these too often turn up equation set up / solver 
issues both because the camera rays are nearing orthogonal, but also due
the length.
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 12 Mar 2023 20:12:24 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C640e3228%241%40news.povray.org%3E/#%3C640e3228%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C640e3228%241%40news.povray.org%3E/#%3C640e3228%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: lemon {} revisited [1130 days 20 hours and 29 minutes ago]</title>
		<description>
&lt;pre&gt;William F Pokorny &amp;lt;ano###&amp;nbsp;[at]&amp;nbsp;anonymous&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;org&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; My (-z / looking toward +z) orthographic camera code is:&lt;/span&gt;

I also have a usage question with regard to orthographic:
I did not seem to be able to get this particular inclusion of the &amp;quot;angle&amp;quot;
keyword to work as described, but maybe I didn't try hard enough, or my camera
{} block was malformed.  It would make my life easier instead of having to
switch between 2 different cameras and define (guess at) a Zoom value, like I do
now.


https://wiki.povray.org/content/Reference:Camera#Orthographic_projection


If, in a perspective camera, you replace the perspective keyword by orthographic
and leave all other parameters the same, you will get an orthographic view with
the same image area, i.e. the size of the image is the same. The same can be
achieved by adding the angle keyword to an orthographic camera. A value for the
angle is optional. So this second mode is active if no up and right are within
the camera statement, or when the angle keyword is within the camera statement.

....

Note: The length of direction is irrelevant unless angle is used. The lengths of
up and right define the dimensions of the view. The angle keyword can be used,
as long as less than 180. It will override the length of the right and up
vectors (the aspect ratio between up and right will be kept nevertheless) with a
scope of a perspective camera having the same direction and angle.
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 12 Mar 2023 17:45:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.640e0ed11e421ea21f9dae3025979125%40news.povray.org%3E/#%3Cweb.640e0ed11e421ea21f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.640e0ed11e421ea21f9dae3025979125%40news.povray.org%3E/#%3Cweb.640e0ed11e421ea21f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[William F Pokorny] Re: lemon {} revisited [1130 days 22 hours and 19 minutes ago]</title>
		<description>
&lt;pre&gt;On 3/12/23 10:30, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; It's just the sign.  I was just wondering if the native implementation of the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; torus was &amp;quot;wrong&amp;quot;, since I recall the uv-mapping being off compared to most&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; other shapes.&lt;/span&gt;

You remember correctly. :-)

IIRC think we found the torus 'uv_mapping' reversed (handedness) 
compared to all other uv mapping in POV-Ray. It was for a short time 
corrected, but then restored to what it had been since v3.7 to maintain 
compatibility with old scenes. IIRC povr stuck with the corrected uv 
mapping - but that memory of mine might be wrong...

Aside: It's also true the new 'uv_mapping' added to additional shapes 
for v3.8/v4.0 was turned back off for other general 'uv_mapping' 
concerns. This is one place where our current v3.8 documentation does 
not align with the real state of v3.8 - the last I checked. In pulling 
back the newer 'uv_mapping' I 'think' povr  did too in the moment, 
thinking a fix would soon be adopted - but that never happened and I 
believe povr aligns with v3.8/v4.0.

Bill P.
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 12 Mar 2023 15:54:57 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C640df5d1%241%40news.povray.org%3E/#%3C640df5d1%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C640df5d1%241%40news.povray.org%3E/#%3C640df5d1%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[William F Pokorny] Re: lemon {} revisited [1130 days 22 hours and 32 minutes ago]</title>
		<description>
&lt;pre&gt;On 3/12/23 08:45, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; IIRC, it was the single-image photogrammetry where I had an issue with all my&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; stuff disappearing because it hadn't damned on me how LARGE the objects were,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; and therefore how far back they extended (past the camera plane).   So yeah,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; it's WAAAAAY back.   I'll try to keep those under-the-hood issues about the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; solver and the camera distance in mind.&lt;/span&gt;

With the orthographic camera, the distance doesn't matter with respect 
to the size of scene things. The size of the orthographic camera plane / 
rectangle does matter - and that the plane be back a small distance from 
all the objects and bounding in the scene.

The location of the camera's ray shooting plane can be very close to 
objects. The orthographic camera rays are more difficult for the 
solvers, as a rule we should position the orthographic cameras close to 
the objects in the scene.

My (-z / looking toward +z) orthographic camera code is:

//---
#declare VarOrthoMult =
5.0/max(image_width/image_height,image_height/image_width);
#declare Camera01z = camera {
     orthographic
     location &amp;lt;0,0,-2&amp;gt;
     direction z
     right VarOrthoMult*x*max(1,image_width/image_height)
     up VarOrthoMult*y*max(1,image_height/image_width)
}
//---

To see a larger part of the x/y plane in the scene, I change that 5.0 
multiplier to something larger.

---

The spindle modes of the regular torus were added to v3.8 and have now 
existed some years (4-5 give or take?), the f_torus modes came with the
addition of functions, the isosurface object and the function vm - which 
I think goes back to v3.5. Those working in v3.7 would have only the 
f_torus spindle options available. The lemon too isn't there in v3.7 
being new in v3.8.

Bill P.
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 12 Mar 2023 15:41:52 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C640df2c0%241%40news.povray.org%3E/#%3C640df2c0%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C640df2c0%241%40news.povray.org%3E/#%3C640df2c0%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: lemon {} revisited [1130 days 23 hours and 39 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Kenneth&amp;quot; &amp;lt;kdw###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; By changing the camera to 'perspective' and with location &amp;lt;0,0,-.7&amp;gt;, I see the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; nice lemon shape. Also, I don't see any difference re: sturm vs. no sturm.&lt;/span&gt;

I did the same but needed to remove the fudge factor to transition from the
sphere to the lemon.

My isosurface still need the fudge factor, else I still have the cylinder of
crud.

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; and the interior/exterior textures look correct now. A clue to something?&lt;/span&gt;

It's just the sign.  I was just wondering if the native implementation of the
torus was &amp;quot;wrong&amp;quot;, since I recall the uv-mapping being off compared to most
other shapes.
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 12 Mar 2023 14:35:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.640de2011e421ea21f9dae3025979125%40news.povray.org%3E/#%3Cweb.640de2011e421ea21f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.640de2011e421ea21f9dae3025979125%40news.povray.org%3E/#%3Cweb.640de2011e421ea21f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Kenneth] Re: lemon {} revisited [1131 days and 44 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; First, when I try to render the lemon {} object with the current parameters, I&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; only get a very faint speckling rather than a well-formed surface.&lt;/span&gt;

The speckling was even worse for me.

By changing the camera to 'perspective' and with location &amp;lt;0,0,-.7&amp;gt;, I see the
nice lemon shape. Also, I don't see any difference re: sturm vs. no sturm.
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; The other issue is that the isosurface seems to have the interior_texture&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; on the outside, and the texture on the inside.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;

As an experiment, I negated your spindle function...
      #declare Iso =
      isosurface {
       function {-Spindle (x, y, z)}...

and the interior/exterior textures look correct now. A clue to something?
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 12 Mar 2023 13:30:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.640dd2cd1e421ea29b4924336e066e29%40news.povray.org%3E/#%3Cweb.640dd2cd1e421ea29b4924336e066e29%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.640dd2cd1e421ea29b4924336e066e29%40news.povray.org%3E/#%3Cweb.640dd2cd1e421ea29b4924336e066e29%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: lemon {} revisited [1131 days 1 hour and 24 minutes ago]</title>
		<description>
&lt;pre&gt;William F Pokorny &amp;lt;ano###&amp;nbsp;[at]&amp;nbsp;anonymous&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;org&amp;gt; wrote:

Haha!  Your previous post jogged something in my memory that provides a truly
trivial solution.


&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Ah, and you are using an orthographic camera.&lt;/span&gt;

Yes.  Any time you see me doing graphs and drafting layout lines, there's a 99%
chance it's an orthographic camera.

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; This often the worst case&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ray set up for the solvers. Other shapes like the sphere_sweep have&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; similar issues with the orthographic camera.&lt;/span&gt;

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Right.  I hammer through so many exploratory idea and experiments that my default is
a copy-paste from one of the 20 &lt;/span&gt;
last-working-scene tabs that  I have open in the editor.

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Your' also positioning well away it looks too.&lt;/span&gt;

IIRC, it was the single-image photogrammetry where I had an issue with all my
stuff disappearing because it hadn't damned on me how LARGE the objects were,
and therefore how far back they extended (past the camera plane).   So yeah,
it's WAAAAAY back.   I'll try to keep those under-the-hood issues about the
solver and the camera distance in mind.

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; The ray length matters in that the longer it travels the more the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; accuracy of the ray-&amp;gt;surface equation degrades in accuracy. The equation&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; has to represent all those useless potential landing steps on the way to&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; the shapes surface and this burns up the floating point accuracy.&lt;/span&gt;

Perhaps an interesting thing to have available in povr would be a &amp;quot;global
bounding box&amp;quot; for the scene in the render statistics.  It could help clue scene
authors in to overlooked distance issues and maybe help track down spuriously
placed objects, as well as resolve other weird issues.

Still not sure what the crud on my isosurface is that gets removed with the
FudgeFactor.   I'll make a quick switch to the perspective camera and see if it
goes away.


On to the trivial solution.
Spindle torus, did you say?
&amp;quot;The merge and intersection spindle modes have long existed with the f_torus,
but via value arguments.&amp;quot;
Well, they've long existed for the regular torus primitive too.
Which I had discovered, and therefore &amp;quot;knew&amp;quot;, but forgot.

http://news.povray.org/povray.binaries.misc/message/%3C604613ed%241%40news.povray.org%3E/#%3C604613ed%241%40news.povray
.org%3E

https://wiki.povray.org/content/Reference:Torus

and so, adding
torus {R, r intersection texture {pigment {rgb z} finish {specular 0.4}}
translate x*2*r}

gives me just what I was looking for.

&amp;quot;Oh, POV-Ray developers, you understand everything!&amp;quot;  :)
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 12 Mar 2023 12:50:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.640dc9811e421ea21f9dae3025979125%40news.povray.org%3E/#%3Cweb.640dc9811e421ea21f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.640dc9811e421ea21f9dae3025979125%40news.povray.org%3E/#%3Cweb.640dc9811e421ea21f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[William F Pokorny] Re: lemon {} revisited [1131 days 8 hours and 56 minutes ago]</title>
		<description>
&lt;pre&gt;On 3/11/23 23:47, William F Pokorny wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; It's not the easiest shape for the solvers.&lt;/span&gt;

Ah, and you are using an orthographic camera. This often the worst case 
ray set up for the solvers. Other shapes like the sphere_sweep have 
similar issues with the orthographic camera. Your' also positioning well 
away it looks too.

If I step an ortho camera back just -2 in z and code as the lemon:

#declare r = 1;
#declare R = 0.6;
#declare Y = sqrt ( r*r - R*R );
lemon {
   &amp;lt;0, -Y, 0&amp;gt;, 0, &amp;lt;0, Y, 0&amp;gt;, 0, r
   texture {pigment {rgb &amp;lt;0.2, 0.2,0&amp;gt;} finish {specular 0.4}}
   sturm
   translate &amp;lt;-.1,0,-.1&amp;gt;
}

I get the attached image.

The ray length matters in that the longer it travels the more the 
accuracy of the ray-&amp;gt;surface equation degrades in accuracy. The equation 
has to represent all those useless potential landing steps on the way to 
the shapes surface and this burns up the floating point accuracy.

That bit was my painful discovery discussed in the previously referenced 
github issue. I have a solution for best possible floating point 
hardware accuracy, but the implementation is not trivial...

Bill P.
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 12 Mar 2023 05:17:55 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C640d6083%241%40news.povray.org%3E/#%3C640d6083%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C640d6083%241%40news.povray.org%3E/#%3C640d6083%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[William F Pokorny] Re: lemon {} revisited [1131 days 9 hours and 26 minutes ago]</title>
		<description>
&lt;pre&gt;On 3/11/23 16:01, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Anyone have any ideas?&lt;/span&gt;

I'm in the middle of another code tangle, but...

After the lemon was added and we started to bang on it, a few numerical 
issues turned up. I think most of this was discussed for a time on the 
developer mailing list. No idea what is fixed. What might github have...
Looks like https://github.com/POV-Ray/povray/pull/358 has a little on 
the lemon if you scroll down through the comments. Well, I suppose not 
would help you near term of that work in any case.

A reminder the f_torus inbuilt function implements a couple of the 
spindle modes though it is not directly documented anywhere that I know 
about. See post to povray.binaries.images

Subject: Some v38 torus vs f_torus() information.
Date: 30 Apr 2020 08:32:29

https://news.povray.org/povray.binaries.images/thread/%3C5eaac55d%241%40news.povray.org%3E/

Message: &amp;lt;&lt;a href=&quot;/&lt;5eaac55d$1@news.povray.org&gt;&quot;&gt;5eaac55d$1@news.povray.org&lt;/a&gt;&amp;gt;

Running your scene with my current development povr code, and without 
sturm(a), I get the attached a result.

Bill P.

(a) - With sturm on I get a tiny nub on the ends bringing the height to
to about where the left and right shapes are. Without it it 'looks' like
the shape is a little more rounded at the ends than your equivalents. 
Might be there is still some other numerical stuff going on... It's not 
the easiest shape for the solvers.
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 12 Mar 2023 04:47:49 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C640d5975%241%40news.povray.org%3E/#%3C640d5975%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C640d5975%241%40news.povray.org%3E/#%3C640d5975%241%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Least Squares fitting [1131 days 9 hours and 37 minutes ago]</title>
		<description>
&lt;pre&gt;On 11/03/2023 23:44, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;quot;yesbird&amp;quot; &amp;lt;nomail@nomail&amp;gt; wrote:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I'm not sure how you reach that conclusion, since the function takes all of the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; randomly generated points and calculates the center point and radius of a single&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; best-fitting sphere.   It fits a sphere to the data, not the other way around.&lt;/span&gt;
Yes, exactly, but I mean something like this:
https://www2.latech.edu/~jkanno/packing.pdf

Please find fixed Matlab function in attachment.
Btw, there is a free version of ML, which supports original syntax:
https://octave.org
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 12 Mar 2023 04:36:35 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cdff7ec21-4b6a-a3c5-10db-1da406397849%40gmail.com%3E/#%3Cdff7ec21-4b6a-a3c5-10db-1da406397849%40gmail.com%3E</guid>
		<link>//news.povray.org/*/message/%3Cdff7ec21-4b6a-a3c5-10db-1da406397849%40gmail.com%3E/#%3Cdff7ec21-4b6a-a3c5-10db-1da406397849%40gmail.com%3E</link>
	</item>
	<item>
		<title>[Kenneth] Re: Least Squares fitting [1131 days 12 hours and 29 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; https://math.stackexchange.com/questions/63238/why-do-we-use-a-least-squares-fit&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;

Those stackexchange links are proving to be fascinating and really informative;
thanks! Yes, I see now that 'squaring' has many purposes (and Pythagorean
antecedents) regarding the 'sum of squares' method. Lots to absorb!
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 12 Mar 2023 01:45:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.640d2e1589b6dca79b4924336e066e29%40news.povray.org%3E/#%3Cweb.640d2e1589b6dca79b4924336e066e29%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.640d2e1589b6dca79b4924336e066e29%40news.povray.org%3E/#%3Cweb.640d2e1589b6dca79b4924336e066e29%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Least Squares fitting [1131 days 12 hours and 59 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Kenneth&amp;quot; &amp;lt;kdw###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; So the (naive) question that I've always pondered is, would CUBING the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; appropriate values-- instead of squaring them-- produce an even tighter fit&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; between function and data points? (Assuming that I understand anything at all&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; about why even 'squaring' is the accepted method, ha.) Although, I imagine that&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; squaring is perhaps 'good enough', and that cubing would be an unnecessary and&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; more complex mathematical step.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; From reading at least various Wikipedia pages re: the discovery or invention of&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; 'sum of squares' etc, it kind of gives me the impression that Gauss et al came&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; up with the method in an empirical way(?) rather than from any theoretical&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; standpoint. And that it simply proved useful.&lt;/span&gt;

https://math.stackexchange.com/questions/63238/why-do-we-use-a-least-squares-fit
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 12 Mar 2023 01:15:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.640d267189b6dca71f9dae3025979125%40news.povray.org%3E/#%3Cweb.640d267189b6dca71f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.640d267189b6dca71f9dae3025979125%40news.povray.org%3E/#%3Cweb.640d267189b6dca71f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Kenneth] Re: Least Squares fitting [1131 days 13 hours and 29 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;quot;Kenneth&amp;quot; &amp;lt;kdw###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; That's a really nice result of fitting a set of data points to a function.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; It's the reverse.  I'm fitting the function describing a line, circle, and&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; sphere to the measured data.  It's &amp;quot;as close to all of the data points as&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; it can be _simultaneously_&amp;quot;.  And so the overall error is minimized.&lt;/span&gt;

Got it. Sorry for my reversed and lazy way of describing things.

&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; The general idea of finding the AVERAGE of a set of data points is&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; easy enough to understand...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; This is an acceptable method, and of course can be found in early&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; treatments of computing the errors in data sets.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; But why is 'squaring' then used? What does that actually&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; accomplish? I have not yet found a simple explanation.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;quot;it makes some of the math simpler&amp;quot; especially when doing multiple dimension&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; analyses.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; (the variance is equal to the expected value of the square of the distribution&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; minus the square of the mean of the distribution)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;

So the (naive) question that I've always pondered is, would CUBING the
appropriate values-- instead of squaring them-- produce an even tighter fit
between function and data points? (Assuming that I understand anything at all
about why even 'squaring' is the accepted method, ha.) Although, I imagine that
squaring is perhaps 'good enough', and that cubing would be an unnecessary and
more complex mathematical step.

From reading at least various Wikipedia pages re: the discovery or invention of
'sum of squares' etc, it kind of gives me the impression that Gauss et al came
up with the method in an empirical way(?) rather than from any theoretical
standpoint. And that it simply proved useful.
&lt;/pre&gt;
		</description>
		<pubDate>Sun, 12 Mar 2023 00:45:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.640d200189b6dca79b4924336e066e29%40news.povray.org%3E/#%3Cweb.640d200189b6dca79b4924336e066e29%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.640d200189b6dca79b4924336e066e29%40news.povray.org%3E/#%3Cweb.640d200189b6dca79b4924336e066e29%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Least Squares fitting [1131 days 14 hours and 44 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Kenneth&amp;quot; &amp;lt;kdw###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; That's a really nice result of fitting a set of data points to a function.&lt;/span&gt;

It's the reverse.  I'm fitting the function describing a line, circle, and
sphere to the measured data.  It's &amp;quot;as close to all of the data points as it can
be _simultaneously_&amp;quot;.  And so the overall error is minimized.

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; But&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I wish I understood what all of this was about-- starting with the fundamental&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; idea of the  'sum of least SQUARES' and why 'squaring' the residual data errors&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; is used in these techniques.&lt;/span&gt;

I never did much in those areas either.  And to be honest, it's &amp;quot;dangerous&amp;quot; to
be doing serious work with measured values and not understand the basics of the
statistics.  When I worked at American Cyanamid, they had a statistician come in
and give a presentation - in which he showed like 8 sets of data that all had
the same standard deviation, and all looked completely different.


&lt;span class=&quot;RC1&quot;&gt;&amp;gt; The general idea of finding the AVERAGE of a set of data points is easy enough&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; to understand, as is finding the deviations  or 'offsets' of those points from&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; the average.&lt;/span&gt;

This is an acceptable method, and of course can be found in early treatments of
computing the errors in data sets.

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; But why is 'squaring' then used? What does that actually&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; accomplish? I have not yet found a simple explanation.&lt;/span&gt;

&amp;quot;it makes some of the math simpler&amp;quot; especially when doing multiple dimension
analyses.

(the variance is equal to the expected value of the square of the distribution
minus the square of the mean of the distribution)

You're also doing a sort of Pythagorean/Euclidean distance calculation, and
that's done with squares rather than absolute values.

&amp;quot;Variances are additive for independent random variables&amp;quot;
&amp;quot;Say I toss a fair coin 900 times. What's the probability that the number of
heads I get is between 440 and 455 inclusive? Just find the expected number of
heads (450 ), and the variance of the number of heads (225=152
), then find the probability with a normal (or Gaussian) distribution with
expectation 450 and standard deviation 15 is between 439.5 and 455.5.&amp;quot;

&amp;quot;while the absolute value function (unsquared) is continuous everywhere, its
first derivative is not (at x=0). This makes analytical optimization more
difficult&amp;quot;



https://stats.stackexchange.com/questions/118/why-square-the-difference-instead-of-taking-the-absolute-value-in-standar
d-devia

https://stats.stackexchange.com/questions/46019/why-squared-residuals-instead-of-absolute-residuals-in-ols-estimation




&amp;quot;A lot of reasons.&amp;quot;
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 11 Mar 2023 23:30:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.640d0e8689b6dca71f9dae3025979125%40news.povray.org%3E/#%3Cweb.640d0e8689b6dca71f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.640d0e8689b6dca71f9dae3025979125%40news.povray.org%3E/#%3Cweb.640d0e8689b6dca71f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Kenneth] Re: Least Squares fitting [1131 days 16 hours and 39 minutes ago]</title>
		<description>
&lt;pre&gt;That's a really nice result of fitting a set of data points to a function.  But
I wish I understood what all of this was about-- starting with the fundamental
idea of the  'sum of least SQUARES' and why 'squaring' the residual data errors
is used in these techniques.  I don't remember ever being introduced to that
concept, in either high-school or college maths classes. (But, I never took a
course in statistics.) The various internet articles on the subject that I have
read over the years are woefully complex and do not explain the *why* of it.

From the Wikipedia article &amp;quot;Partition of sums of squares&amp;quot;:
&amp;quot;The distance from any point in a collection of data, to the mean of the data,
is the deviation. ...If all such deviations are squared, then summed, as in
[equation], this gives the &amp;quot;sum of squares&amp;quot; for these data.&amp;quot;

The general idea of finding the AVERAGE of a set of data points is easy enough
to understand, as is finding the deviations  or 'offsets' of those points from
the average. But why is 'squaring' then used? What does that actually
accomplish? I have not yet found a simple explanation.
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 11 Mar 2023 21:35:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.640cf37289b6dca79b4924336e066e29%40news.povray.org%3E/#%3Cweb.640cf37289b6dca79b4924336e066e29%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.640cf37289b6dca79b4924336e066e29%40news.povray.org%3E/#%3Cweb.640cf37289b6dca79b4924336e066e29%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: lemon {} revisited [1131 days 16 hours and 54 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; First, when I try to render the lemon {} object with the current parameters, I&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; only get a very faint speckling rather than a well-formed surface. (I have&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; rendered several successful test lemons in 3.8)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; You can just see it in the render.  This makes me sad, as I know Jerome Grimbert&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; did a lot of work on this shape.&lt;/span&gt;

And wouldn't you know it, subtracting that exact same FudgeFactor from the
radius in the lemon {} makes it show up, but as a sphere, not the shape that I'm
shooting for.

Puzzling.
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 11 Mar 2023 21:20:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.640cef821e421ea21f9dae3025979125%40news.povray.org%3E/#%3Cweb.640cef821e421ea21f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.640cef821e421ea21f9dae3025979125%40news.povray.org%3E/#%3Cweb.640cef821e421ea21f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] lemon {} revisited [1131 days 17 hours and 9 minutes ago]</title>
		<description>
&lt;pre&gt;I was interested in using a lemon, or the inner surface of a spindle torus, or
the surface of revolution of a vesica piscis - whichever terminology you prefer
- to compare to a surface.

There is precious little information that I can find describing the lemon, and I
wanted a parameterized object.

The documentation doesn't have a diagram of how the lemon {} available in
version 3.8 is constructed (like it does for the ovus {} ), and the explanation
took me longer than it should have to clearly understand.

https://wiki.povray.org/content/Reference:Lemon
https://wiki.povray.org/content/Reference:Ovus

Presently, I have two problems. And one other issue.

First, when I try to render the lemon {} object with the current parameters, I
only get a very faint speckling rather than a well-formed surface. (I have
rendered several successful test lemons in 3.8)

You can just see it in the render.  This makes me sad, as I know Jerome Grimbert
did a lot of work on this shape.

Second, after I finally worked out how to isolate the inner surface of a
standard torus using an isosurface, I found that I needed to add a Fudgefactor
to the minor radius in order to remove a lot of artefactual noise.  I found the
0.2 magnitude of the FudgeFactor to be disturbingly large.

(Maybe I would have better luck with a polynomial object.)

The other issue is that the isosurface seems to have the interior_texture on the
outside, and the texture on the inside.

Anyone have any ideas?

// -------------------------------------------------------------------------

#version 3.8;
global_settings {assumed_gamma 1}
#declare E = 0.00001;


#declare Zoom = 160;
camera {
 orthographic
 //angle
 location &amp;lt;0, 0,  -image_width*2&amp;gt;
 right x*image_width/Zoom
 up y*image_height/Zoom
 //sky y
 look_at &amp;lt;0, 0, 0&amp;gt;
 rotate y*0
}

light_source {&amp;lt;image_width/2, image_height/2, -image_width*4&amp;gt; rgb 1 shadowless}
sky_sphere {pigment {rgb 1}}


#declare R = 3;
#declare r = 0.25;

#declare Line = 0.01;


#macro LemonLayout (Radius, Distance, Points)
 #local Circle =
 union {
  sphere {0, Line*2}
  torus {Radius, Line rotate x*90}
  pigment {rgb x}
 }
 object {Circle translate  x*Distance}
 object {Circle translate -x*Distance}

 #if (Points)
 union {
  #for (Phi, 0, tau, 0.1)
   #for (Theta, 0, tau, 0.1)
    #local X = Radius * cos (Theta) * sin (Phi) - Distance;
    #if (X &amp;gt;= 0)
     #local Y = Radius * sin (Theta);
     #local Z = X * sin (Phi);
     sphere {&amp;lt;X, Y, Z&amp;gt;, Line*2}
    #end

   #end
  #end
  pigment {rgb z}
 }
 #end

#end


#declare MF = 0.6;
#declare Min_factor= min (MF, 1);
#declare Max_gradient = 250;
#declare P0 = Max_gradient * Min_factor;
#declare P1 = sqrt (Max_gradient/(Max_gradient * Min_factor));
#declare _P2 = 0.7;
#declare P2 = min (_P2, 1);

#declare r = 1;
#declare R = 0.6;

// intersection points of 2 circles
// (x+R)(x+R) + y*y = r*r
// (x-R)(x-R) + y*y = r*r

// x*x + 2*R*x + R*R + y*y = r*r
// x*x - 2*R*x + R*R + y*y = r*r

//       4*R*x = 0
//           x = 0

//  y = sqrt ( r*r - R*R )

#declare Y = sqrt ( r*r - R*R );

#declare FudgeFactor = 0.2;


#declare Torus = function {pow (x*x + y*y + z*z + R*R - r*r, 2) -
4*R*R*(x*x+z*z)}
#declare Spindle = function {select ((r-R)*(r-R) - (x*x+z*z) + FudgeFactor, 0,
pow (x*x + y*y + z*z + R*R - r*r, 2) - 4*R*R*(x*x+z*z))}

#declare Iso =
isosurface {
 function {Spindle (x, y, z)}

 contained_by { box {&amp;lt;-(R-r), -Y, -(R-r)&amp;gt;, &amp;lt;R-r, Y, R-r&amp;gt;} }  // container shape
 accuracy 0.001
 max_gradient 250
 //evaluate P0, P1, P2
 open
 texture {
  pigment {rgb z}
  finish {specular 0.4}
 } // end texture

  interior_texture
  {
  pigment {rgb x+y}
  finish {specular 0.4}
 } // end texture

} // end isosurface



union {
 LemonLayout (1, 0.6, no)
 object {Iso }
 translate -x*r
}

union {
 LemonLayout (1, 0.6, no)
 object {Iso}
 rotate y*90 translate x*r
}


lemon {
 &amp;lt;0, -Y, 0&amp;gt;, 0, &amp;lt;0, Y, 0&amp;gt;, 0, r
 texture {pigment {rgb &amp;lt;0.2, 0.2,0&amp;gt;} finish {specular 0.4}}
 sturm
}
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 11 Mar 2023 21:05:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.640cec30f93802011f9dae3025979125%40news.povray.org%3E/#%3Cweb.640cec30f93802011f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.640cec30f93802011f9dae3025979125%40news.povray.org%3E/#%3Cweb.640cec30f93802011f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Least Squares fitting [1131 days 17 hours and 29 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;yesbird&amp;quot; &amp;lt;nomail@nomail&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I'am afraid that this paper describes the opposite process: fitting something&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; _into_ sphere. I mean counctrusting arbitrary form _from_ spheres of different&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; radiuses to achieve best fit (most completed volume). Sorry for&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; misunderstanding.&lt;/span&gt;

I'm not sure how you reach that conclusion, since the function takes all of the
randomly generated points and calculates the center point and radius of a single
best-fitting sphere.   It fits a sphere to the data, not the other way around.

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Despite that, I forced this Matlab function to work, fixing a few typos.&lt;/span&gt;

Excellent.  Maybe Matlab can process mesh vertices / point clouds too?
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 11 Mar 2023 20:45:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.640ce83689b6dca71f9dae3025979125%40news.povray.org%3E/#%3Cweb.640ce83689b6dca71f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.640ce83689b6dca71f9dae3025979125%40news.povray.org%3E/#%3Cweb.640ce83689b6dca71f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Least Squares fitting [1131 days 19 hours and 29 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; https://arxiv.org/ftp/arxiv/papers/1506/1506.02776.pdf&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I have no idea where the crazy &amp;quot;sphere parametrization&amp;quot; equations come from, but&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I used _normal_ equations, and fixed a typo in the last line of code (needs&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; -'s), and got that to work.&lt;/span&gt;

I'am afraid that this paper describes the opposite process: fitting something
_into_ sphere. I mean counctrusting arbitrary form _from_ spheres of different
radiuses to achieve best fit (most completed volume). Sorry for
misunderstanding.

Despite that, I forced this Matlab function to work, fixing a few typos.

In any case this was an interesting investigation, I suppose, we can use this
method in future for something useful.
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 11 Mar 2023 18:45:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.640ccc1289b6dca7172b976a10800fb2%40news.povray.org%3E/#%3Cweb.640ccc1289b6dca7172b976a10800fb2%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.640ccc1289b6dca7172b976a10800fb2%40news.povray.org%3E/#%3Cweb.640ccc1289b6dca7172b976a10800fb2%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Least Squares fitting [1131 days 21 hours and 44 minutes ago]</title>
		<description>
&lt;pre&gt;&amp;quot;Bald Eagle&amp;quot; &amp;lt;cre###&amp;nbsp;[at]&amp;nbsp;netscape&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;net&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; yesbird &amp;lt;sya###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; I can imagine following application: we have volume, constrained by low-&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; poly mesh and want to fill it with spheres with radiuses from Rmin to&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt; &amp;gt; Rmax, achieving randomized, natural-like form.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Well, that of course suggests that there's an analogous spherical method.  I'll&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; have to look and see...&lt;/span&gt;

https://arxiv.org/ftp/arxiv/papers/1506/1506.02776.pdf

I have no idea where the crazy &amp;quot;sphere parametrization&amp;quot; equations come from, but
I used _normal_ equations, and fixed a typo in the last line of code (needs
-'s), and got that to work.

Render is the test data in the table of the paper.
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 11 Mar 2023 16:30:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.640cab8889b6dca71f9dae3025979125%40news.povray.org%3E/#%3Cweb.640cab8889b6dca71f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.640cab8889b6dca71f9dae3025979125%40news.povray.org%3E/#%3Cweb.640cab8889b6dca71f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Least Squares fitting [1132 days and 54 minutes ago]</title>
		<description>
&lt;pre&gt;It occurred to me that I never described what the render shows.

The yellow circle shows the algebraic result when then data is restricted to a
small arc.   (now WAY off) The red circle is the geometric result which gives a
much more accurate result, but requires an initial &amp;quot;guess&amp;quot; for the center and
radius - which the algebraic method provides.
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 11 Mar 2023 13:20:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.640c7ed289b6dca71f9dae3025979125%40news.povray.org%3E/#%3Cweb.640c7ed289b6dca71f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.640c7ed289b6dca71f9dae3025979125%40news.povray.org%3E/#%3Cweb.640c7ed289b6dca71f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Re: Least Squares fitting [1132 days 1 hour and 14 minutes ago]</title>
		<description>
&lt;pre&gt;yesbird &amp;lt;sya###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I can imagine following application: we have volume, constrained by low-&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; poly mesh and want to fill it with spheres with radiuses from Rmin to&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Rmax, achieving randomized, natural-like form.&lt;/span&gt;

Well, that of course suggests that there's an analogous spherical method.  I'll
have to look and see...
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 11 Mar 2023 13:00:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.640c7a9a89b6dca71f9dae3025979125%40news.povray.org%3E/#%3Cweb.640c7a9a89b6dca71f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.640c7a9a89b6dca71f9dae3025979125%40news.povray.org%3E/#%3Cweb.640c7a9a89b6dca71f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Least Squares fitting [1132 days 11 hours and 55 minutes ago]</title>
		<description>
&lt;pre&gt;On 11/03/2023 02:35, Bald Eagle wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Onwards we trudge....&lt;/span&gt;
Very interesting investigation !
I can imagine following application: we have volume, constrained by low-
poly mesh and want to fill it with spheres with radiuses from Rmin to
Rmax, achieving randomized, natural-like form. Using this method with
blobs can solve main blob-construction problem - low control and
accuracy.
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Sat, 11 Mar 2023 02:18:28 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C38022009-81e7-22bd-3038-62ab85c61db7%40gmail.com%3E/#%3C38022009-81e7-22bd-3038-62ab85c61db7%40gmail.com%3E</guid>
		<link>//news.povray.org/*/message/%3C38022009-81e7-22bd-3038-62ab85c61db7%40gmail.com%3E/#%3C38022009-81e7-22bd-3038-62ab85c61db7%40gmail.com%3E</link>
	</item>
	<item>
		<title>[Bald Eagle] Least Squares fitting [1132 days 14 hours and 34 minutes ago]</title>
		<description>
&lt;pre&gt;So, I've had a few ideas that I've wanted to pursue, and for those, I need a few
tools to perform the tasks more rigorously than &amp;quot;by eye&amp;quot;.

I looked at converting some Javascript code, but gave up on that,
https://jsxgraph.uni-bayreuth.de/wiki/index.php/Least-squares_circle_fitting
then found a semi-encouraging post,
https://www.codeproject.com/Questions/228108/Linear-least-squares-circle-fit-in-C-or-Cplusplus
and then found the original paper,
https://ir.canterbury.ac.nz/bitstream/handle/10092/11104/coope_report_no69_1992.pdf?sequence=1
which I thought I could puzzle out - the solution seemed tantalizingly close,
https://towardsdatascience.com/building-linear-regression-least-squares-with-linear-algebra-2adf071dd5dd
https://online.stat.psu.edu/stat462/node/132/
But good ole' Coope just used too many x's and changes of variables, and
sparsely described methods of getting from point A to point B.

Luckily, I found some &amp;quot;good&amp;quot; c++ code, and I was able to successfully convert
the Taubin algebraic solution before I left for work:
https://people.cas.uab.edu/~mosya/cl/CPPcircle.html
and then got back home and worked on the geometric Levenberg-Marquardt fit, only
to find that it's written with a host of ugly &amp;quot;goto&amp;quot; statements.  :O :(

I somehow navigated a path to simulate that in SDL, code the few dependencies,
and fake or ignore the rest.  Got stuck in an endless while loop somewhere when
I started whittling down the circle to an arc of pi*0.6, but fixed that, and...

Seems to be working well enough.   So now I have a regular linear least squares
regression macro, and at least one set of (seemingly) fully functional circle
fitting macros.


Onwards we trudge....
&lt;/pre&gt;
		</description>
		<pubDate>Fri, 10 Mar 2023 23:40:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.640bbedd42ffa061f9dae3025979125%40news.povray.org%3E/#%3Cweb.640bbedd42ffa061f9dae3025979125%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.640bbedd42ffa061f9dae3025979125%40news.povray.org%3E/#%3Cweb.640bbedd42ffa061f9dae3025979125%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Applying noise to geometry [1142 days 19 hours and 57 minutes ago]</title>
		<description>
&lt;pre&gt;On 27/02/2023 21:32, yesbird wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Hi,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; while working on Yes-project, I am trying to find the way of making&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; the objects less 'geometrical', giving them more natural and 'noisy'&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; shapes (like in this attachment, for example). The only way I found in&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; manual is to play with normals, but I'd like to have an influence on&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; geometry, to apply more relief.&lt;/span&gt;

Thanks to all your comments, advice and links, a solution was finally
found. Script is working by making a path of spheres along a spline and
applying relief elements to each sphere. It's left only to make some
randomization and push code to the parameterized macro.

Thanks a lot to everyone !
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 28 Feb 2023 18:16:53 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C63fe4515%40news.povray.org%3E/#%3C63fe4515%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C63fe4515%40news.povray.org%3E/#%3C63fe4515%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Applying noise to geometry [1142 days 23 hours and 54 minutes ago]</title>
		<description>
&lt;pre&gt;Thomas de Groot &amp;lt;tho###&amp;nbsp;[at]&amp;nbsp;degroot&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;org&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; See attachment.&lt;/span&gt;
Thanks :)
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 28 Feb 2023 14:20:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.63fe0cd42d7275898ec57efd10800fb2%40news.povray.org%3E/#%3Cweb.63fe0cd42d7275898ec57efd10800fb2%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.63fe0cd42d7275898ec57efd10800fb2%40news.povray.org%3E/#%3Cweb.63fe0cd42d7275898ec57efd10800fb2%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[Thomas de Groot] Re: Applying noise to geometry [1143 days and 59 minutes ago]</title>
		<description>
&lt;pre&gt;Op 28-2-2023 om 07:58 schreef ingo:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; yesbird &amp;lt;sya###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; thanks for ideas and examples. Although fist method works fine, second&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; looks more attractive, as, I suppose, will allow 'decorate' imported&lt;/span&gt;
&lt;span class=&quot;RC2&quot;&gt;&amp;gt;&amp;gt; mesh, which gives me more control on the object's shape.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I.i.r.c. Poseray https://sites.google.com/site/poseray/ can do mesh displacement&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; based on uv vectors and images. Never tried it myself.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; ingo&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &lt;/span&gt;
See attachment.
-- 
Thomas
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 28 Feb 2023 13:14:53 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C63fdfe4d%40news.povray.org%3E/#%3C63fdfe4d%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C63fdfe4d%40news.povray.org%3E/#%3C63fdfe4d%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Applying noise to geometry [1143 days 5 hours and 2 minutes ago]</title>
		<description>
&lt;pre&gt;On 28/02/2023 11:29, ingo wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; A long time ago I wrote an unfinished tool to convert mesh2 to obj files.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Something like that could be made to write a bunch of pov-ray arrays to a file.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Then you have full control over the mesh and can transform it by using uv&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; information and functions.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Or, ask FlyerX to add such an option to Poseray, if they are still working on&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; it.&lt;/span&gt;
Thanks for another idea, but I would like to stay 'inside' POV as long 
as possible, avoiding external tools. Now, after a few experiments, I 
see, that adding some arbitrary 'extensions' to geometry (as in the 
attached image, for ex.) is not too complicated.

Maybe I will try to shift the mesh's vertices according to some noise 
function too.
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 28 Feb 2023 09:11:45 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C187e6d9f-5718-273a-e80e-62604d14708c%40gmail.com%3E/#%3C187e6d9f-5718-273a-e80e-62604d14708c%40gmail.com%3E</guid>
		<link>//news.povray.org/*/message/%3C187e6d9f-5718-273a-e80e-62604d14708c%40gmail.com%3E/#%3C187e6d9f-5718-273a-e80e-62604d14708c%40gmail.com%3E</link>
	</item>
	<item>
		<title>[ingo] Re: Applying noise to geometry [1143 days 5 hours and 44 minutes ago]</title>
		<description>
&lt;pre&gt;yesbird &amp;lt;sya###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; On 28/02/2023 09:58, ingo wrote:&lt;/span&gt;

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Mmm, Poseray ...&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I have one, but it's almost the same as importing mesh from ZBrush.&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Your first advice about using 'meshmaker' seems more attractive to me...&lt;/span&gt;


A long time ago I wrote an unfinished tool to convert mesh2 to obj files.
Something like that could be made to write a bunch of pov-ray arrays to a file.
Then you have full control over the mesh and can transform it by using uv
information and functions.
Or, ask FlyerX to add such an option to Poseray, if they are still working on
it.

https://news.povray.org/povray.binaries.utilities/thread/%3CXns94F5A773245Aseed7%40news.povray.org%3E

ingo
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 28 Feb 2023 08:30:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.63fdbb802d72758917bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.63fdbb802d72758917bac71e8ffb8ce3%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.63fdbb802d72758917bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.63fdbb802d72758917bac71e8ffb8ce3%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Applying noise to geometry [1143 days 6 hours and 27 minutes ago]</title>
		<description>
&lt;pre&gt;On 28/02/2023 09:58, ingo wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; I.i.r.c. Poseray https://sites.google.com/site/poseray/ can do mesh displacement&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; based on uv vectors and images. Never tried it myself.&lt;/span&gt;
Mmm, Poseray ...
I have one, but it's almost the same as importing mesh from ZBrush.
Your first advice about using 'meshmaker' seems more attractive to me...
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 28 Feb 2023 07:47:04 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cff679b9e-7a8f-d0e1-8acb-022204f0c765%40gmail.com%3E/#%3Cff679b9e-7a8f-d0e1-8acb-022204f0c765%40gmail.com%3E</guid>
		<link>//news.povray.org/*/message/%3Cff679b9e-7a8f-d0e1-8acb-022204f0c765%40gmail.com%3E/#%3Cff679b9e-7a8f-d0e1-8acb-022204f0c765%40gmail.com%3E</link>
	</item>
	<item>
		<title>[ingo] Re: Applying noise to geometry [1143 days 7 hours and 14 minutes ago]</title>
		<description>
&lt;pre&gt;yesbird &amp;lt;sya###&amp;nbsp;[at]&amp;nbsp;gmail&lt;img src=&quot;/i/dt6x2.gif&quot; width=&quot;6&quot; height=&quot;2&quot; border=&quot;0&quot;&gt;com&amp;gt; wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; thanks for ideas and examples. Although fist method works fine, second&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; looks more attractive, as, I suppose, will allow 'decorate' imported&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; mesh, which gives me more control on the object's shape.&lt;/span&gt;

I.i.r.c. Poseray https://sites.google.com/site/poseray/ can do mesh displacement
based on uv vectors and images. Never tried it myself.

ingo
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 28 Feb 2023 07:00:00 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cweb.63fda6072d72758917bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.63fda6072d72758917bac71e8ffb8ce3%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3Cweb.63fda6072d72758917bac71e8ffb8ce3%40news.povray.org%3E/#%3Cweb.63fda6072d72758917bac71e8ffb8ce3%40news.povray.org%3E</link>
	</item>
	<item>
		<title>[yesbird] Re: Dynamic sphere sweep [1143 days 8 hours and 6 minutes ago]</title>
		<description>
&lt;pre&gt;On 28/02/2023 08:57, Cousin Ricky wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; You specify 4 as the number of points, but you are counting by 0.1,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; which gives 40 points.&lt;/span&gt;
Oh, really, thanks a lot !

&lt;span class=&quot;RC1&quot;&gt;&amp;gt; One of the more annoying features of POV-Ray IMO is having to count the&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; points beforehand, but it is what it is.&lt;/span&gt;
Indeed, I've already fallen into this pitfall, and now did it again...
--
YB
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 28 Feb 2023 06:07:48 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3Cf75cff74-fa1c-5e75-cef1-991dfe1310dd%40gmail.com%3E/#%3Cf75cff74-fa1c-5e75-cef1-991dfe1310dd%40gmail.com%3E</guid>
		<link>//news.povray.org/*/message/%3Cf75cff74-fa1c-5e75-cef1-991dfe1310dd%40gmail.com%3E/#%3Cf75cff74-fa1c-5e75-cef1-991dfe1310dd%40gmail.com%3E</link>
	</item>
	<item>
		<title>[Cousin Ricky] Re: Dynamic sphere sweep [1143 days 8 hours and 16 minutes ago]</title>
		<description>
&lt;pre&gt;On 2023-02-28 01:34 (-4), yesbird wrote:
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; Hi,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; can't figure out why this construction don't work:&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; -------------------------------------------------&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; #declare X = 0;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; sphere_sweep {&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;#194;&amp;#160; linear_spline&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;#194;&amp;#160; 4,&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;#194;&amp;#160; #while (X &amp;lt; 4)&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160; &amp;lt;X,0,0&amp;gt;, 0.1&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;#194;&amp;#160;&amp;#194;&amp;#160;&amp;#194;&amp;#160; #declare X = X + 0.1;&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; &amp;#194;&amp;#160; #end&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; }&lt;/span&gt;
&lt;span class=&quot;RC1&quot;&gt;&amp;gt; -------------------------------------------------&lt;/span&gt;

You specify 4 as the number of points, but you are counting by 0.1,
which gives 40 points.

One of the more annoying features of POV-Ray IMO is having to count the
points beforehand, but it is what it is.
&lt;/pre&gt;
		</description>
		<pubDate>Tue, 28 Feb 2023 05:57:46 GMT</pubDate>
		<guid isPermaLink="true">//news.povray.org/*/message/%3C63fd97da%241%40news.povray.org%3E/#%3C63fd97da%241%40news.povray.org%3E</guid>
		<link>//news.povray.org/*/message/%3C63fd97da%241%40news.povray.org%3E/#%3C63fd97da%241%40news.povray.org%3E</link>
	</item>
</channel>
</rss>
