POV-Ray : Newsgroups : povray.binaries.images : Nov 29 2020 povr doodle : Re: Nov 29 2020 povr doodle Server Time
2 May 2024 16:23:29 EDT (-0400)
  Re: Nov 29 2020 povr doodle  
From: William F Pokorny
Date: 2 Dec 2020 03:32:40
Message: <5fc75128$1@news.povray.org>
On 12/1/20 6:33 PM, Bald Eagle wrote:
> "Mr" <nomail@nomail> wrote:
>> Sorry for what may sound like a very basic question : Apart from their names I'm
>> not sure to fully grasp the distinction between an isosurface and a
>> parametric... Could you clarify the difference? the paradigms for when to best
>> use one over the other? is it that one is a surface and the other a volume?
> 
> I would say that primarily, from an implementation perspective, the difference
> is that an isosurface evaluates an implicit function - an ordinary function with
> terms in x, y, and z - and it's a surface where that equation equals the
> threshold value.
> 
> A parametric evaluates the x, y, and z coordinates as functions of the
> parameters u and v, and is a surface as well.
> 
> They are both slow, or can be, depending on the settings, and the complexity of
> the equations.
> 
> So generally, it's a matter of how you conceive of the math(s) involved, and/or
> whether or not it's even possible to (efficiently) express the desired shape in
> either implicit or parametric form.
> 
> A good exercise would be to make a sphere object, using small sphere{}
> primitives to "plot" the points on its surface.
> Do it "the isosurface way" using r=sqrt(pow(x,2)+pow(y,2)+pow(z,2)),
> 
> and "the parametric way" using
> x = cos (u) * sin (v)
> y = sin (u) * sin (v)
> z = cos (v)
> 
> Where u goes from 0 to tau, and v goes from 0 to pi
> 

I'll add:

@Mr, you are correct that parametrics don't support an inside, a volume, 
while isosurfaces do.

To get acceptable performance with parametrics, you almost always need 
to use the precompute option and this takes quite a bit of storage; On 
the order of a fine mesh for the same surface(1) where the surfaces are 
relatively simple. With the isosurface, both the SDL and internal 
representations are compact.

The parametric as implemented today returns only one surface 
intersection per ray (probably to keep performance reasonable). This is 
sometimes an issue for shadows, csg and ???. IIRC Jerome has a github 
issue or two open on this.

(1) Jerome - not too long ago - added to hgpovray38 an ability to create 
meshes on the fly from parametrics. This is what most other tooling does 
with parametric implementations and the feature should make the renders 
quite fast. However, there will be parametrics where a mesh would be 
prohibitive due size. For example, if using a pattern for very detailed 
surface displacement via the parametric functions, the mesh would need 
to be large to get the representation close to the actual surface. It's 
on my list to play with this new hgpovray38 option, but it has yet to 
bubble to the top.

Bill P.


Post a reply to this message

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