|
|
On 12/11/24 09:49, Bald Eagle wrote:
> William F Pokorny <ano### [at] anonymousorg> wrote:
>
> I'm not sure what this "offset" value is, but I'm wondering if there could be
> some sort of z-axis control that allows one to make things analogous to the
> prism's conic sweep.
Once we have a potential{} pattern in hand, we have access to all the
usual value and spatial modifiers - plus functions based on the
potential pattern (you can scale in z). How well it all works in
practice, I'm not sure. The door to this functionality has just opened
for me too.
> And for that matter, I'm wondering if the prism can be worked into this whole
> thing.
The thought occurred to me too :-). I don't know, maybe some potential
support eventually there too. It would be hard to handle the prism as
I'm handling the polygon's potential pattern.
In yuqk, shapes with a well defined inside (already 3D) can use the
soft_object{} and hard_object{} patterns to turn things into some sort
of value field pattern.
>
>> The upper right two images show the 'ip_type 0' potential pattern
>> support which is a sort of infinite in z inside / outside test. The
>> inside values being (1.0*('ip_offset value')). By wrapping these
>> potential{} patterns in function{}s, this 'ip_type 0' is essentially a
>> drawn drawn polygon-tiles and calk method. A numerically noise proof,
>> and infinitely flexible alternative to the 'pavement' and 'tiling' value
>> patterns, for example.
>
> Not sure what I'm seeing there - is there a rotational offset?
Yes. The upper right image adds a 'rotate z*45' to one of the two 50%
grey images exactly overlapping for the white areas in the image just to
the left.
> Could the rotational offset be defined as rotation per unit, to get a spiraling
> effect?
Yes. Any sort of normal spatial modifier is available.
> Maybe scratch whatever the "offset" currently is and incorporate a matrix
> transform for greater flexibility?
The offset (as positive values) is usually subtracted from the distance
formulas being used internally (roughly specifying a radius or
thickness), but it's sometimes used as a simple value multiplier too -
as in the case of the 'ip_type 0'.
>
> That's definitely pretty cool - more explanation on what that's about, and show
> the other two?
Currently there are two bounding box frameworks available (ip_type 3 is
the one shown) and a center of bounding box distance. In other words,
there are potential patterns for the polygon based upon the shapes
bounding box rather than the shape itself. I'm unsure how useful this
capability is...
>
> I see that the center point of the outer polygon is included in that diagram -
> what if instead of drawing the even division of the AABB to give that "+", the
> center point was "connected" to the vertices with rays, with the potential
> varying in between the rays (to give an "X")
> (or a star, like the macro I used here:
> https://news.povray.org/web.54414d9ccbb3d8155e7df57c0%40news.povray.org)
>
...
> One thing which could be cool, would be to re-order the connection points so
> that they now skip every other point. With odd-number polygons, one would get a
> star.
>
> Is there a way to easily achieve what is essentially a convex-hull effect -
> where none of the inner sub-polygon points "count"?
> Using the potential feature, one could then (potentially <--- Ha!) easily make
> isosurfaces...
>
As to the rest of your suggestions, what I have in mind is to implement
a new keyword called 'laxparse on|off' or 'lax_parsing on|off' for the
polygon object which would free the polygon's parsing so we can specify
sets of four connection values:
<2D vector of first pt> <2D vector second pt> <offset> <taper on 't'>
The code here has similarities to the previously implemented f_path()
inbuilt function in yuqk. In f_path() one specifies a collection of
points in space; followed by a limited number of 'connection
specifications' between those points.
I don't think I've posted examples, but f_path() can change the base
radius (offset to distance), the direction of every connection it makes
- and taper the offset value up or down as each connection is made.
This includes tapers which stop or start short; only pointing toward the
closing or starting point. These f_path(), per connection, hooks are
sitting in the polygon object's potential code - currently unused.
---
It might be a push in this direction leads eventually to a new 3D point
set shape which would be a collection of 3D spheres by default, behind
which would be potential{} pattern support allowing arbitrary point to
point 'connections' in 3D rather than 2D.
The performance with the distance based methods degrade as the number of
total measures needed for the overall value field go up. Without max
value clamping on each component measure the value field's gradient
values get pretty choppy away from any resultant surface too. In short,
there is much I don't know about the practical use / limits here.
Bill P.
Aside: One of the things I noticed while playing with a polygon made up
of a bunch of small triangle loops is that we can get voronoi like
results due the distances to other than just points in space. Maybe this
an obvious result I guess... :-)
Post a reply to this message
|
|