POV-Ray : Newsgroups : povray.binaries.images : Crummy isosurface evaluation. : Re: Crummy isosurface evaluation. Server Time
8 May 2024 01:05:06 EDT (-0400)
  Re: Crummy isosurface evaluation.  
From: Subclick
Date: 17 Feb 2020 21:54:53
Message: <s6uzhdgehad.fsf@sp.am>
If I understand its purpose correctly, the I_Phi function should be
#declare I_Phi = function {atan2(z, x)}

F_Wave should probably converge to a constant (the amplitude of the wave
vanishing) as (x, 0, z) approaches the origin, rather than continue to
oscillate with a fixed amplitude along an ever tinier circumference,
which produces an unbounded gradient.  For example,
#declare F_Wave = function
  {0.8*sqrt(pow(x,2)+pow(z,2))*sin(3*I_Phi(x, 0, z))}
You’ll probably want more than three ridges, however.

Note your I function has an infinite gradient on the y = F_Wave(x, y, z)
surface.  You could instead do something like
#declare F_Cap = function
  {pow(x,2)+pow(max(y,0),2)+pow(z,2) - pow(ISphereR,2)}
#declare S_Wave = function {F_Cap(x, y - F_Wave(x, y, z), z)}
The 0.8 factor in F_Wave may need tweaking.

Now you need to cut off with an intersection or differencethe part of
the isosurface below the y = 0 plane, adjust the “contained_by” object
and put the result in a union or merge with half a sphere object, which
I think will be faster to render than retaining the lower hemisphere as
part of the isosurface.


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.