POV-Ray : Newsgroups : povray.binaries.images : Merry Christmas to JRG [4x 21kbu] Server Time
16 Aug 2024 18:23:58 EDT (-0400)
  Merry Christmas to JRG [4x 21kbu] (Message 1 to 7 of 7)  
From: L'Harmonieux Forgeron
Subject: Merry Christmas to JRG [4x 21kbu]
Date: 25 Dec 2001 14:51:08
Message: <3C28DA57.2D6C34AD@free.fr>
See discussion in p.u.p
JRG's problem was to view through an object (wall) but still having the object 
interact with the scene, especially for radiosity (so no_image was not really ok).
JRG's proposed solution was to have a visibility level... 
I did not like that solution, (and still don't),
and here are some illustrations of another possible solution.

There is 4 reflective planes, and a container around a sphere.
there is also a box and a cone to help to localize in space and reflections.

The container is: a sphere, a box, a rotated box and a cone.
My solution is a new object(*) which has intersections only
with rays whose direction is same as the normal of the surface.

(*): syntaxe is kind of CSG-like restricted to one child. I called it "nexus".
Syntax is : nexus { OBJECT [OBJECT_MODIFIERS...] }

Any interest ?

P.S: Due to the removed intersections, it is not wise to use the nexus in CSG!!!
-- 
Non Sine Numine
http://grimbert.cjb.net/


Post a reply to this message


Attachments:
Download 'nexus0.jpg' (19 KB) Download 'nexus1.jpg' (20 KB) Download 'nexus2.jpg' (21 KB) Download 'nexus3.jpg' (21 KB)

Preview of image 'nexus0.jpg'
nexus0.jpg

Preview of image 'nexus1.jpg'
nexus1.jpg

Preview of image 'nexus2.jpg'
nexus2.jpg

Preview of image 'nexus3.jpg'
nexus3.jpg


 

From: Simon Adameit
Subject: Re: Merry Christmas to JRG [4x 21kbu]
Date: 25 Dec 2001 16:44:58
Message: <3c28f35a@news.povray.org>
> See discussion in p.u.p
> JRG's problem was to view through an object (wall) but still having the
object
> interact with the scene, especially for radiosity (so no_image was not
really ok).
> JRG's proposed solution was to have a visibility level...
> I did not like that solution, (and still don't),
> and here are some illustrations of another possible solution.
>
> There is 4 reflective planes, and a container around a sphere.
> there is also a box and a cone to help to localize in space and
reflections.
>
> The container is: a sphere, a box, a rotated box and a cone.
> My solution is a new object(*) which has intersections only
> with rays whose direction is same as the normal of the surface.
>
> (*): syntaxe is kind of CSG-like restricted to one child. I called it
"nexus".
> Syntax is : nexus { OBJECT [OBJECT_MODIFIERS...] }
>
> Any interest ?

From what I understand this would only be usefull
for planes and such things.
But couldn't you do this with interior texture and slope?

You could also do this with a function which gives you the normal of the
surface.
(Objects where I see a possibility to find normal:
box,sphere,plane,cylinder,cone,prism,torus,bicubic_patch,parametric
you could write macros that give you the function for this objects)
Then use the select() or another function to decide if the point should be
visible on
the surface and then use the resulting function as a pattern.
You could even make the whole think dependent on the angle between the
camera
and the normal vector.

But I also thing that you should be able to switch radiosity on and off for
ojects.


Post a reply to this message

From: JRG
Subject: Re: Merry Christmas to JRG [4x 21kbu]
Date: 25 Dec 2001 16:58:46
Message: <3c28f696@news.povray.org>
L'Harmonieux Forgeron wrote:
> The container is: a sphere, a box, a rotated box and a cone.
> My solution is a new object(*) which has intersections only
> with rays whose direction is same as the normal of the surface.

You lost me here. By *direction* you don't mean the exact direction of the
normals, do you? You mean something like: if (vdot (ray_vector,normal) > 0)
then intersection occurs? From your examples it looks so. Simplifying, a
nexus would be an object of which you can only see the _interior_.

> Any interest ?

Truly, I don't really know. At a first glance it doesn't look that
intuitive, so I can't judge. Of course it would allow to see through a box,
but... I don't really know. Not always a container has no depth. With CSG
containers with some depth (for example the difference of two boxes) a nexus
would be of no help.
NTL it could be useful in other situations, but I can't think about anyone
at the moment (probably it's just my end, since I'm quite tired).

--
Jonathan.


Post a reply to this message

From: L'Harmonieux Forgeron
Subject: Re: Merry Christmas to JRG [4x 21kbu]
Date: 26 Dec 2001 10:35:18
Message: <3C29E3A8.18426C05@free.fr>
JRG wrote:
> 
> L'Harmonieux Forgeron wrote:
> > The container is: a sphere, a box, a rotated box and a cone.
> > My solution is a new object(*) which has intersections only
> > with rays whose direction is same as the normal of the surface.
> 
> You lost me here. 

Please excuse the bad explanation.

>By *direction* you don't mean the exact direction of the
> normals, do you? You mean something like: if (vdot (ray_vector,normal) > 0)
> then intersection occurs?

Yes, Exactly.

> From your examples it looks so. Simplifying, a
> nexus would be an object of which you can only see the _interior_.

Well, the inversed nexus just appears like the normal object.
It's just a very strange experimental object.
Applied to a  plane, the plane exist when going one way but not the other!
It also have a side effect on light source, because, unless using no_shadow,
the light_source outside the nexus do not get access to inside the nexus, and
vice-versa!


> 
> > Any interest ?
> 
> Truly, I don't really know. At a first glance it doesn't look that
> intuitive, so I can't judge. Of course it would allow to see through a box,
> but... I don't really know. 

> Not always a container has no depth. 

You lost me here.  

> With CSG
> containers with some depth (for example the difference of two boxes) a nexus
> would be of no help.

I was just thinking about your example: making a box out of 6 planes, whose
only one of them would be a nexus and the other 5 still be normal planes.
Or even stranger, drilling a hole with CSG difference in the container and 
adding a nexus just like a magic windows to close the container again.


-- 
Non Sine Numine
http://grimbert.cjb.net/


Post a reply to this message

From: L'Harmonieux Forgeron
Subject: Re: Merry Christmas to JRG [40kbu PNG]
Date: 26 Dec 2001 10:35:40
Message: <3C29F097.46CCA499@free.fr>
Simon Adameit wrote:
> 
> From what I understand this would only be usefull
> for planes and such things.

Probably. At least as long as you want a realistic picture. It might be fun for
animation around a nexus{box} : if the box is the outside of a house, you get
automatic
wall removal, will still keeping the lighting that comes only through the windows
(or from inside the house).
But I believe it's nearly the only pathological useful case!

> But couldn't you do this with interior texture and slope?

interior_texture is new in 3.5, but also do it.
it is even a simpler solution than the nexus. See 3.5 code in PS.

slope is fine only for planar object. emulating anything like a fish-eye camera
in a nexus{sphere } is not possible with slope.


> 
> You could also do this with a function which gives you the normal of the
> surface.
> (Objects where I see a possibility to find normal:
> box,sphere,plane,cylinder,cone,prism,torus,bicubic_patch,parametric
> you could write macros that give you the function for this objects)
> Then use the select() or another function to decide if the point should be
> visible on
> the surface and then use the resulting function as a pattern.
> You could even make the whole think dependent on the angle between the
> camera
> and the normal vector.

Very complicated, restricted to only a few objects and...
You are missing the problem: when reflection occurs on other objects in the scene.


P.S:
#include "finish.inc"
camera { location <1,4,4>
direction -z
right -4/3*x
up y
look_at 0
}
         
plane { z,-2 texture { pigment { color rgb <0.4,0.5,0.8> } finish { Glossy reflection
0.5
} } }
plane { x,-2 texture { pigment { color rgb <0.8,0.5,0.5> } finish { Glossy reflection
0.5
} } }
plane { y,-2 texture { pigment { color rgb <0.4,0.8,0.3> } finish { Glossy reflection
0.5
} } }
light_source { 30, 1 }
light_source { 1, 1 }

sphere { 0,0.2 texture { pigment { color rgb <0.1,0.8,0.3> } finish { Shiny } } }
box { -1.2,1.2 texture { pigment { color rgbf 1 } } interior_texture { pigment { color
rgb
<0.8,0.4,0.6> } } }
-- 
Non Sine Numine
http://grimbert.cjb.net/


Post a reply to this message


Attachments:
Download 'essaiint.png' (39 KB)

Preview of image 'essaiint.png'
essaiint.png


 

From: JRG
Subject: Re: Merry Christmas to JRG [40kbu PNG]
Date: 26 Dec 2001 11:44:09
Message: <3c29fe59@news.povray.org>
L'Harmonieux Forgeron wrote:
> > But couldn't you do this with interior texture and slope?
>
> interior_texture is new in 3.5, but also do it.
> it is even a simpler solution than the nexus. See 3.5 code in PS.

Clever solution. This trick would make the nexus object redundant, wouldn't
it?
BTW here's how the cornell box scene looks with that trick (I have used the
worst possible settings, because I didn't want to wait too many hours).

--
Jonathan.


Post a reply to this message


Attachments:
Download 'ctrick.jpg' (17 KB)

Preview of image 'ctrick.jpg'
ctrick.jpg


 

From: J  Grimbert
Subject: Re: Merry Christmas to JRG [40kbu PNG]
Date: 27 Dec 2001 03:21:32
Message: <3C2ADA51.C1D26E2D@atosorigin.com>
JRG wrote:
> 
> L'Harmonieux Forgeron wrote:
> > > But couldn't you do this with interior texture and slope?
> >
> > interior_texture is new in 3.5, but also do it.
> > it is even a simpler solution than the nexus. See 3.5 code in PS.
> 
> Clever solution. This trick would make the nexus object redundant, wouldn't
> it?

Yes, it does. No need for the nexus then!

-- 
Non Sine Numine
http://grimbert.cjb.net/


Post a reply to this message

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