POV-Ray : Newsgroups : povray.pov4.discussion.general : POV-Ray is "PIEware" : Re: POV-Ray is "PIEware" Server Time
23 Jun 2024 23:29:21 EDT (-0400)
  Re: POV-Ray is "PIEware"  
From: Bald Eagle
Date: 18 Apr 2024 13:35:00
Message: <web.662158a818d5960295196c9d25979125@news.povray.org>
"ingo" <nomail@nomail> wrote:

> Go, go, go ;) Maybe also get al the bounding boxes (min- max_extent) of the
> object so one does not have to test every ray against every object. But, before
> you know you are writing a ray-tracer within a ray-tracer, within a ray-tracer
> ....

:D  I've already started writing the raytracer within a raytracer to figure out
the inverse transform sampling that clipka wanted for lighting.

> POV-Ray has so many usable internal data that are not available to the user.
> I've manipulated the radiosity proces by rendering an image with the radiosity
> data from an other image. What if we knew the data file format and can
> manipulate it? Or photon data? Normals, intersection points, mirror things, all
> stuff that's available in OpenGL for shaders.

That's a good point.  We have the source, and Bill Pokorny, Jerome Grimbert, and
others have experience in following the internal workings.  We need to find some
more programmers to help the rest of us get up to speed on how it all works and
how to make edits to the code without breaking too much / everything.

> > Also, I've wanted a custom version of trace () that would return ALL of the

> That is difficult as shapes can have all kind of holes and protrusions.

Correct.  Which is why I think your approach might not work, as it seems to be
(unless I'm missing something) just a variation on my many failed past attempts.

What I'm thinking is that you:
1. shoot a ray with trace () from the camera to the World Coordinates that are
back calculated from the screen pixel position.
2. in the event that you get a Hit, you increment the position farther along the
ray by Epsilon, and initiate a subsequent trace () call.
3. repeat until you get <0, 0, 0> for the normal vector.

That seems like a guaranteed method for getting ALL of the surfaces, down to
pixel-level granularity.

And of course, you could go finer if you wanted / needed to.

The bounding box array is a good idea for partitioning / limiting the number of
trace ()- tests for any given ray.

- BE

Post a reply to this message

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