POV-Ray : Newsgroups : povray.programming : Inquiring about features : Re: Inquiring about features Server Time
19 Sep 2021 17:17:48 EDT (-0400)
  Re: Inquiring about features  
From: clipka
Date: 8 Mar 2016 04:13:39
Message: <56de97c3$1@news.povray.org>
Am 08.03.2016 um 06:48 schrieb Bald Eagle:
> clipka <ano### [at] anonymousorg> wrote:
> 
>> An object that is part of a CSG but doesn't take part in CSG?
>> That makes absolutely NO sense to me at all. Care to try a different
>> approach at explaining it to me?
> 
> It doesn't make any less sense than having an object in between a light source
> and another object, yet not cast a shadow.  (no_shadow)
> or not be reflected (no_reflection)
> or not even "be there" at all (no_image)

Note that I wrote "[it] makes [...] no sense TO ME [...]" (emphasis
changed). It still doesn't, because...

> I guess the idea is that if you're stuck defining an object in a scene, and for
> "reasons", it needs to be defined within some sort of CSG operation, then it
> might be useful to "opt it out" of the CSG.

... I have no idea what such "reasons" could be. At present, the only
reason I can think of for putting something into a CSG is to have it
participate in that particular CSG.

But given that you're suggesting it, I presume you do have a use case?

>> I see nothing that stands in the way of implementing such stuff as
>> macros, except maybe for the fact that trace() does not currently return
>> UV coordinates.
> 
> Doesn't trace() return the coordinates of the object's surface, regardless of
> color/texture?
> If I have an object patterned by onion or wood, trace() would only return the
> coordinates of the outermost surface.
> I'm suggesting a trace() that would go THROUGH any color other than the one
> specified.  Just a light ray goes through a pigment with a transmit value of 1
> even though the object is still there.

That doesn't stand in the way of developing a macro: Once you have found
the first intersection point, use eval_pigment() to determine the colour
(including transparency). If the pigment is transparent, trace() again
from the intersection point you just found. Rinse and repeat.

One reason (and actually a quite severe one) why such a thing is not
supported out of the box is that POV-Ray objects have textures, not
pigments -- and textures can get arbitrarily complex, with compositing
rules that go way beyond the domain of pigments. So there are cases when
there is no such thing as "/the/ pigment" of an object.


Post a reply to this message

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