POV-Ray : Newsgroups : povray.pov4.discussion.general : Brainstorming: portals Server Time22 Jun 2024 14:22:17 EDT (-0400)
 Brainstorming: portals (Message 1 to 2 of 2)
 From: Simon Copar Subject: Brainstorming: portals Date: 27 Mar 2013 14:05:01 Message:
Just an idea to think about: what if there was a pigment, that instead of giving
off color, it would transport and rotate the incoming ray? This would have
multiple uses:
1) move and rotate the ray somewhere else and re-sample it. This would allow to
define surfaces that act as portals/windows into another part of the scene.
2) keep the origin, but perturb the direction. This way, a user could reproduce
any effect involving irregular reflections (normal perturbation) and
refractions, but with more control (such as using the input ray information as a
parameter for generating the external ray)
3) the portal idea can be used to simulate stuff like pictures and TV screens
(and crystal balls) that render another part of the scene. Possibly, you could
have a warp, that would transform rays, falling on the TV screen into rays that
exit a camera, creating the "TV is showing picture of itself" effect.
4) Strange universe boundary conditions (make such a universe, that a ray that
hits a sphere at a large distnace comes back at you from behind). Very useful
for mathematical abstract art.

So, we have a single feature that allows a lot of different imaginative and
artistic effects that are not possible otherwise. Infinite recursion is
prevented by max_trace_depth.

In essence, you have a user-defined function that takes input ray in the form
(location,direction) and returns another (location,direction).
 From: Trevor G Quayle Subject: Re: Brainstorming: portals Date: 27 Mar 2013 17:05:01 Message:
"Simon Copar" <inf### [at] gmailcom> wrote:
> Just an idea to think about: what if there was a pigment, that instead of giving
> off color, it would transport and rotate the incoming ray? This would have
> multiple uses:
> 1) move and rotate the ray somewhere else and re-sample it. This would allow to
> define surfaces that act as portals/windows into another part of the scene.
> 2) keep the origin, but perturb the direction. This way, a user could reproduce
> any effect involving irregular reflections (normal perturbation) and
> refractions, but with more control (such as using the input ray information as a
> parameter for generating the external ray)
> 3) the portal idea can be used to simulate stuff like pictures and TV screens
> (and crystal balls) that render another part of the scene. Possibly, you could
> have a warp, that would transform rays, falling on the TV screen into rays that
> exit a camera, creating the "TV is showing picture of itself" effect.
> 4) Strange universe boundary conditions (make such a universe, that a ray that
> hits a sphere at a large distnace comes back at you from behind). Very useful
> for mathematical abstract art.
>
> So, we have a single feature that allows a lot of different imaginative and
> artistic effects that are not possible otherwise. Infinite recursion is
> prevented by max_trace_depth.
>
> In essence, you have a user-defined function that takes input ray in the form
> (location,direction) and returns another (location,direction).

megapov had the camera_view pigment type which could do a lot of this
(http://megapov.inetart.net/manual-1.2.1/megapov0121.html#camera_view)
It never got carried over into the official POVRay.
I had used in the past for various things such as creating one-pass stereograph
images.

-tgq