POV-Ray : Newsgroups : povray.general : Request for Syntax Suggestions : Request for Syntax Suggestions Server Time
7 May 2024 23:05:20 EDT (-0400)
  Request for Syntax Suggestions  
From: clipka
Date: 22 Apr 2016 20:02:15
Message: <571abb87$1@news.povray.org>
Folks, I need your help.

I'm planning on a feature, but can't think of a good syntax to go with
it. Here's the deal:

Some of you may be aware that isosurfaces can be used as a replacement
for blobs, to get some added flexibility, such as adding toroids or
boxes to the set of elements, or tweaking the way the elements fuse with
each other. Unfortunately this comes at a huge performance penalty.

Part of this difference in performance is because POV-Ray's blob
implementation makes use of the fact that the individual components have
a limited range of influence, employing a bounding hierarchy to bypass
computation of components that are too far away to make any difference.
Isosurfaces do not provide such a mechanism.

I want to change this.

My idea is to provide a special flavour of function, which would not be
based on an arbitrary mathematical expression, but effectively have the
fixed form

    f(x,y,z) = f1(x,y,z) + f2(x,y,z) + ... fN(x,y,z)

and where each individual component function would have an associated
bounding box or bounding sphere, outside of which that particular
component would be presumed to be zero.

(As an extension, a similar mechanism could be introduced for the
product of multiple functions, with each function presumed to evaluate
to 1 outside the bounding shape.)

Obviuously, there would need to be /some/ syntax to associate the
bounding information to the component functions.

There are a few constraints on that syntax:

- Using the existing function mechanism to define the compound function,
and associating the bounding boxes to the individual component
functions, would certainly make for an elegant syntax, but may not be a
viable option for technical reasons. Instead, the "boosted compound
functions" may need to be of a different flavour than regular functions,
and thus would need to be easily recognizable for the parser without
having to analyze the function expression.

- Merely extending the isosurface syntax is something I would want to
avoid, as I would prefer to make these "boosted compound functions"
generally available, not just in isosurfaces.


Any suggestions?


Post a reply to this message

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