POV-Ray : Newsgroups : povray.programming : Inquiring about features Server Time
17 Apr 2024 21:50:52 EDT (-0400)
  Inquiring about features (Message 1 to 5 of 5)  
From: Bald Eagle
Subject: Inquiring about features
Date: 6 Mar 2016 18:55:00
Message: <web.56dcc2dad24009435e7df57c0@news.povray.org>
Curious, and planting the seeds for some ideas.

Can an object be defined in a scene as part of let's say for demonstration
purposes, a difference, be rendered, but NOT take part in CSG?
I'm not sure how useful it would be, although I can imagine having an object
somewhere that fades out in an animation and doesn't leave a hole.
maybe a tag like no_csg

A split, or multi-image feature.
Let's say I want to render a LARGE image, and want it split up in a 3x3 grid
into 9 images of equal size.
Related to this, I was thinking that the partial render feature would be nice if
there were a way to select a region, and have it get saved to a secondary file
aside from the main render.

a "colorblind" Trace() that can ignore all colors except the specified one.
or ignore a specified one, and only returns regions of objects NOT that color.
I guess it would be sorta like a combo between eval_pigment and trace().
I can envision using a transparent background png as a pigment, and then tracing
around it - with this new trace().   One could find outlines, make rough mesh
models, etc.   Potentially useful in CSG once objects were created that
originated from transparent background images.


Post a reply to this message

From: clipka
Subject: Re: Inquiring about features
Date: 7 Mar 2016 05:16:58
Message: <56dd551a$1@news.povray.org>
Am 07.03.2016 um 00:52 schrieb Bald Eagle:
> 
> Curious, and planting the seeds for some ideas.
> 
> Can an object be defined in a scene as part of let's say for demonstration
> purposes, a difference, be rendered, but NOT take part in CSG?
> I'm not sure how useful it would be, although I can imagine having an object
> somewhere that fades out in an animation and doesn't leave a hole.
> maybe a tag like no_csg

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?

When you're talking about fading stuff out, I think of the "blink"
feature I've implemented in UberPOV; maybe that's what you're thinking
about? (UberPOV's features are documented in its "changes.txt" file; in
a nutshell, it allows to make an object semi-transparent /as a whole/,
without exposing its interior like a semi-transparent material would.)

> A split, or multi-image feature.
> Let's say I want to render a LARGE image, and want it split up in a 3x3 grid
> into 9 images of equal size.
> Related to this, I was thinking that the partial render feature would be nice if
> there were a way to select a region, and have it get saved to a secondary file
> aside from the main render.

Have /what/ get saved -- the partial render parameters? The image? And
what do you mean by "aside from the main render?"

Are you thinking along the lines of a kind of "auto-crop" feature,
effectively trimming down your output image to contain only the portion
actually rendered?

> a "colorblind" Trace() that can ignore all colors except the specified one.
> or ignore a specified one, and only returns regions of objects NOT that color.
> I guess it would be sorta like a combo between eval_pigment and trace().
> I can envision using a transparent background png as a pigment, and then tracing
> around it - with this new trace().   One could find outlines, make rough mesh
> models, etc.   Potentially useful in CSG once objects were created that
> originated from transparent background images.

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.


Post a reply to this message

From: Bald Eagle
Subject: Re: Inquiring about features
Date: 8 Mar 2016 00:50:00
Message: <web.56de67a440f7965d5e7df57c0@news.povray.org>
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)

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.
Not sure if it's possible with the way the rendering engine is coded, but it
seemed like something I'd post here for consideration.


> > A split, or multi-image feature.
> > Let's say I want to render a LARGE image, and want it split up in a 3x3 grid
> > into 9 images of equal size.
> > Related to this, I was thinking that the partial render feature would be nice if
> > there were a way to select a region, and have it get saved to a secondary file
> > aside from the main render.
>
> Have /what/ get saved -- the partial render parameters? The image? And
> what do you mean by "aside from the main render?"

Yes.
Have the selected region be saved as a small image, independent of the larger
main render window.  If I select an 80x80 pixel region to render, and my
resolution is set at 640x480, then POV-Ray normally saves the 640x480 as
filename.png.  I just thought it might be useful to ALSO save the selected 80x80
region as a seperate file - with a suffixed filename like filename(1).png or
filename_selection.png.


> Are you thinking along the lines of a kind of "auto-crop" feature,
> effectively trimming down your output image to contain only the portion
> actually rendered?

Yes, but the auto-cropped, trimmed-down output image gets saved in addition to
the usual output.


> 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.


Post a reply to this message

From: scott
Subject: Re: Inquiring about features
Date: 8 Mar 2016 02:46:10
Message: <56de8342$1@news.povray.org>
>> Can an object be defined in a scene as part of let's say for demonstration
>> purposes, a difference, be rendered, but NOT take part in CSG?
>> I'm not sure how useful it would be, although I can imagine having an object
>> somewhere that fades out in an animation and doesn't leave a hole.
>> maybe a tag like no_csg
>
> 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?

I think he means that this:

difference
{
  objectA
  objectB no_csg
  objectC
}

would then render equivalently to this:

objectB
difference
{
  objectA
  objectC
}

But it would get confusing if you have multiple nested levels of csg, 
what should happen then? Maybe an integer parameter after the "no_csg" 
keyword to say how many levels "up" the object should go (0=scene root)


Post a reply to this message

From: clipka
Subject: Re: Inquiring about features
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-2023 Persistence of Vision Raytracer Pty. Ltd.