POV-Ray : Newsgroups : povray.advanced-users : Calculating curvature of a surface? : Re: Calculating curvature of a surface? Server Time
30 Jul 2024 08:19:06 EDT (-0400)
  Re: Calculating curvature of a surface?  
From: Kevin Wampler
Date: 3 Dec 1999 18:30:19
Message: <387131EF.7D11CAB9@tapestry.tucson.az.us>
I think that for the curvature pattern it might be best to allow the user
to specify the way in which the curvature is evaluated, probably by a
choose from maximum, minimum and average.  For example, you might want the
corners of a rounded cube to return a different curvature than the edges,
in which case returning the maximum  curvature wouldn't work.  On the other
hand, there are times in which you would want to have it return the maximum
curvature.

It might also be useful to have an "accessibility" or "exposed" surface
texture function.  How I would see this working is that at an evaluation
point, several rays would be shot at the object (very much like the
proximity pattern).  A value would then be returned based on what
proportion of them hit the object (with possibly the distance until they
did so factored in as well).  So, the more exposed a part of the object is,
the more of the sampling rays will hit it, and a different value will be
returned.

I also wonder, that if it looks like there might be enough surface based
patterns being added to Pov, if a surface{...} statement might be a good
thing to add, since these patterns are really different from texture and
interior in that they are not defined except at the surface of the object.
But then again, they function in pretty much the same was as texture, so it
might be unnecessary.  Just a thought.

Ron Parker wrote:

> Given what you're trying to do, you only need the maximum curvature at
> that point.  Depending on direction of evaluation, the radius of
> curvature of the surface can vary from zero (a ridge) to infinity (a
> flat surface.)  A cube, for example, will have infinite radius of
> curvature everywhere on its faces, and the edges will have either
> zero or infinite radius of curvature depending on where your sample
> point falls.  The vertices will have zero radius of curvature in all
> directions, ideally (though precision errors will give you infinite
> radii for them, too.)
>
> For the sake of determining accessibility, the smallest radius of
> curvature is the indicator: it doesn't matter that the surface is
> perfectly flat in the X direction if it's so sharply curved in the
> Y direction that you can't get your cleaning implements into the
> groove.
>
> Another consideration is that accessibility depends on which side
> of the surface you're looking at.  You can't clean the outside
> surface of that groove, because it's too narrow to fit your cleaning
> tools, but you could clean the inside surface of the groove (i.e.
> the other side of the sheet of metal) with any size tools, because
> it bulges out from the surrounding surface.  This would generally
> be handled by the texture map that's applied to the surface, but
> your code may have to consider the possibility that surface normals
> might be inverted (i.e. pointing into the surface) which would cause
> some texturing wierdness.


Post a reply to this message

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