POV-Ray : Newsgroups : povray.programming : Coincidence issue.. : Re: Coincidence issue.. Server Time
30 Jun 2024 12:12:56 EDT (-0400)
  Re: Coincidence issue..  
From: JWV
Date: 19 Aug 2004 11:21:34
Message: <4124c57e$1@news.povray.org>
Hi,

Just as Patrick, i don't know all the details of the way povray works, but
i'll try to explain a way to get the effect Patrick means.

- When making the scene one should be able to make some objects "master"
objects, like this:

box{0,1 master}

during the render, when a ray hits an object, the program should check
wether there is an other object nearby (say within a radius of 0.0001).
When there is one, and it's a master object, the ray should pretend to be
hitting the master object. This way one could easely avoid coincident
surfaces.

The drawback will be -as usual- speed, especialy the checking for nearby
objects.

No idea wether it is possible, usefull etc. But this is what i came up with
while reading Patricks post.

Greetings

JWV


"Patrick Elliott" <sha### [at] hotmailcom> wrote in message
news:MPG.1b8c2722aa0cd162989b13@news.povray.org...
> I had a thought. And yes, this may slow the engine, but for some
> applications it may be a lot more accurate. Things we know, or should
> know:
>
> 1. Direction of the ray.
> 2. The 'object' that a point the ray hits belongs to.
> 3. Where in 3D space that 'should' place the surfaces in relation to each
> other.
>
> What is needed is to identify which object when hit is 'behind' the ray
> at the point of intersection. If you know that you are leaving object X,
> but the point you hit, due to precision issues, is on Y, then obviously
> those calculations need to be delayed in cases where you will also hit X
> at roughly the same exact point. It would seem to me that the odds of two
> objects being so close together that they don't coincide, but numerical
> precision makes them seem to, is much less often than intentional direct
> contact between surfaces. If you know that they should occupy the same
> apparent space and that one must mathematically appear prior to the
> other, there should be some way to figure out which is which and act
> accordingly, right? Even if this double checking could only be turned on
> manually in certain CSG where you 'know' such a check is needed it would
> help.
>
> Then again, I don't have a clue about the internal mechanics, so maybe I
> am missing something obvious.. It is definitely not something I could
> code and test for myself.. :( And yeah, I know how you get around it, I
> just think a better way has to be possible.
>
> -- 
> void main () {

>     call functional_code()
>   else
>     call crash_windows();
> }


Post a reply to this message

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