POV-Ray : Newsgroups : povray.binaries.images : Nov 29 2020 povr doodle Server Time
19 Apr 2024 11:24:14 EDT (-0400)
  Nov 29 2020 povr doodle (Message 11 to 17 of 17)  
<<< Previous 10 Messages Goto Initial 10 Messages
From: Bald Eagle
Subject: Re: Nov 29 2020 povr doodle
Date: 1 Dec 2020 13:25:00
Message: <web.5fc6898482247dc21f9dae300@news.povray.org>
William F Pokorny <ano### [at] anonymousorg> wrote:
> On 11/30/20 6:12 PM, Cousin Ricky wrote:
> > On 2020-11-30 11:42 AM (-4), Mr wrote:
> ...
> >
> > If it exists or can be conceived by the human imagination, Bill can make
> > an isosurface of it.
>
> :-) Your elliptical torus has me stumped!

As difficult as it was for me, I held my tongue.  ;)


Post a reply to this message

From: Mr
Subject: Re: Nov 29 2020 povr doodle
Date: 1 Dec 2020 16:55:00
Message: <web.5fc6bb4f82247dc26adeaecb0@news.povray.org>
William F Pokorny <ano### [at] anonymousorg> wrote:
> On 11/30/20 10:42 AM, Mr wrote:
> > William F Pokorny <ano### [at] anonymousorg> wrote:
> ...
> >
> > ... It's definitely one of the most powerful and
> > versatile POV feature... is it not?
> >
> Yes, I'd put it near the top of the list in terms of shape/surface
> formation. It's ability to represent very complex shapes in great detail
> - very concisely - is, I believe, unmatched.
>
> However, it's not the easiest to use and it's difficult to diversely
> texture. There is no easy way to "paint" what surface materials you want
> in a uv map sort of way(1).
>
> The more complex a shape gets in terms of major forms; the slower it is
> to render and the harder it is to assemble the functions. Meaning, there
> are practical specification and compute limits on what it can do in theory.
>
> (1) - I'm playing with functionality in the povr branch which helps.
>
> Bill P.

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?


Post a reply to this message

From: Bald Eagle
Subject: Re: Nov 29 2020 povr doodle
Date: 1 Dec 2020 18:35:00
Message: <web.5fc6d2ce82247dc21f9dae300@news.povray.org>
"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


Post a reply to this message

From: William F Pokorny
Subject: Re: Nov 29 2020 povr doodle
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

From: Mr
Subject: Re: Nov 29 2020 povr doodle
Date: 2 Dec 2020 11:55:00
Message: <web.5fc7c6a682247dc26adeaecb0@news.povray.org>
William F Pokorny <ano### [at] anonymousorg> wrote:
> 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.

Interesting... Does that mean than any shape rendered as a parametric could find
an equivalent isosurface? ...But not the other way around...?


Post a reply to this message

From: William F Pokorny
Subject: Re: Nov 29 2020 povr doodle
Date: 3 Dec 2020 07:30:07
Message: <5fc8da4f$1@news.povray.org>
On 12/2/20 11:53 AM, Mr wrote:
> William F Pokorny <ano### [at] anonymousorg> wrote:
...
> 
> Interesting... Does that mean than any shape rendered as a parametric could find
> an equivalent isosurface? ...But not the other way around...?
> 

:-) Unsure how your mind walked to that question from anything we wrote 
- but it's a good question.

 From everything I've read, the parametric to implicit conversion 
("called implicitization") is always possible, but perhaps not always 
tractable/managable(1).

The implicit to parametric conversion ("called parameterization") in 
practice I think mostly can work.

As to whether it's always possible... I've seen statements out and about 
that the answer is yes; Bald Eagle's draft bicubic patch paper makes 
this statement.

I've also see statements parameterization is sometimes impossible. In 
Jules Bloomenthal's introduction to the book "Introduction to Implicit 
Surfaces" he writes:

"Parameterization is not always possible, however; for example, implicit 
surfaces that are defined by certain polynomials of fourth or higher 
degree cannot be parameterized by rational functions [Salmon 1914]."

(1) - Always possible is not the same thing as saying the converted 
parametric -> "implicit equation" is usable in an isosurface object.

Bill P.


Post a reply to this message

From: Bald Eagle
Subject: Re: Nov 29 2020 povr doodle
Date: 3 Dec 2020 13:50:00
Message: <web.5fc932de82247dc21f9dae300@news.povray.org>
William F Pokorny <ano### [at] anonymousorg> wrote:
> On 12/2/20 11:53 AM, Mr wrote:
> > Interesting... Does that mean than any shape rendered as a parametric could find
> > an equivalent isosurface? ...But not the other way around...?
> >
>
> :-) Unsure how your mind walked to that question from anything we wrote
> - but it's a good question.

I think I might have implied it in my response.

>  From everything I've read, the parametric to implicit conversion
> ("called implicitization") is always possible, but perhaps not always
> tractable/managable(1).

> As to whether it's always possible... I've seen statements out and about
> that the answer is yes; Bald Eagle's draft bicubic patch paper makes
> this statement.

That bit that I included (mostly as a prompt to explore further reading) was
based upon a number of different search results that I came up with, and largely
paraphrased from

Algebraic Methods for Computer Aided Geometric Design (2002)
[* vide infra]

So, perhaps if you're inclined to get some more details, you could contact the
primary author and see if he has something that you can work with.

Thomas W. Sederberg
tom### [at] csbyuedu


I know that another source explained things in a bit more detail, pointing out
that although it's _possible_, for some conversions, you could run into
equations with zillions of terms and pow(x, 138) + .... etc.
This, in my mind, is somewhat reminiscent of Tupper's Self-Referential Formula.
https://www.popularmechanics.com/science/math/a16593584/tuppers-self-referential-equation-produces-a-graph-of-itself/

So although it's possible, in theory, in practice, it's likely to be anything
but efficient.


*
"Implicitization, Parametrization and Intersection
 For any parametric curve, an implicit polynomial equation exists that describes
exactly the same curve. Likewise, for any parametric surface, there exists an
implicit equation that describes exactly the same surface. The process of
finding the implicit equation of a parametric curve or surface is called
implicitization.
 An inversion formula for a parametric curve can be derived using polynomials.
If the parametrization of a curve is a general one-to-one map between parameter
values and points on the curve, the inversion formula returns the parameter
value t corresponding to a point (x, y) that lies on the curve.
 Algebraic methods also can facilitate the design of algorithms for computing
intersections between curves and surfaces."


Post a reply to this message

<<< Previous 10 Messages Goto Initial 10 Messages

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