![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
nemesis <nam### [at] gmail com> wrote:
> that's all fine and dandy. What I'm asking for is how povray renders
> reflections in the absence of traceable light rays.
You should perhaps acquaint yourself with the basics of raytracing.
There's an intro for example here: http://en.wikipedia.org/wiki/Ray_tracing
Backwards raytracing works by sending rays from the camera towards the
scene. When a ray hits a surface, its color is calculated (from various
parameters, such as the pigment, light sources, etc). If the surface is
reflective, a new ray is spawned from that point, which can hit other
surfaces.
A surface doesn't need a light source in order to contribute color to
the ray.
--
- Warp
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
> Nicolas Alvarez <nic### [at] gmail is the best com> wrote:
>>> How is povray rendering those reflections?
>>>
>> If an object has a non-zero ambient, it doesn't need a lightsource to be
>> visible.
>
> that's all fine and dandy. What I'm asking for is how povray renders
> reflections in the absence of traceable light rays.
>
POV-Ray traces rays from the camera to the objects. Then from the
intersection point on the object to the lightsources (if any!), to see
if there is any object on the way (for shadows), and with some
calculation based on the light angle, you get the basic object color. If
the object has ambient, it would have a non-black color even without lights.
If the object is reflective, more rays are traced from the intersection
point on the object to the other objects. That's why if one of those
rays hits an object that has ambient, it would show on the reflection
even without any light.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Nicolas Alvarez <nic### [at] gmail is the best com> wrote:
> POV-Ray traces rays from the camera to the objects.
I should get some sleep... :P
I know raytracing works backwards, I don't know what I was thinking... sorry!
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
From: "Jérôme M. Berger"
Subject: Re: radiosity vs. double_illuminate
Date: 12 Nov 2007 13:38:29
Message: <47389da5@news.povray.org>
|
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
nemesis wrote:
> =?ISO-8859-1?Q?=22J=E9r=F4me_M=2E_Berger=22?= <jeb### [at] free fr> wrote:
>> I'd be really interested to see such a scene if you could make one,
>> but you can't (unless you use the "no_reflection" keyword of
>> course).
>
> ...
> I can't see a thing. Reflections or otherwise.
>
You've just proved my point (if you go back to what I said but you
didn't quote). If you have neither light sources nor ambient then
you don't get an image, only pure black. This has nothing to do with
reflections. The bare minimum to get an image is to have some
ambient light, and then you will get reflections too.
Jerome
- --
+------------------------- Jerome M. BERGER ---------------------+
| mailto:jeb### [at] free fr | ICQ: 238062172 |
| http://jeberger.free.fr/ | Jabber: jeb### [at] jabber fr |
+---------------------------------+------------------------------+
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (GNU/Linux)
iD8DBQFHOJ2kd0kWM4JG3k8RAr2wAKC3UqHt8dOjab/T5mHmqpdJ4lAuWwCfYll/
XhuG2xbTs4afqKWHZMVxDiM=
=J/Mb
-----END PGP SIGNATURE-----
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
nemesis nous apporta ses lumieres en ce 2007/11/11 16:25:
> =?ISO-8859-1?Q?=22J=E9r=F4me_M=2E_Berger=22?= <jeb### [at] free fr> wrote:
>> I'd be really interested to see such a scene if you could make one,
>> but you can't (unless you use the "no_reflection" keyword of
>> course).
>
> global_settings {
>
> ambient_light 0
> radiosity { brightness 1.2 }
>
> }
>
>
>
> union {
>
> plane { y, -1 pigment { rgb 1 } finish { ambient 6 } }
>
> sphere { -x, 1 pigment { rgb x } }
>
> sphere { x, 1 pigment { rgb y } finish { reflection 1 }}
>
>
>
> translate z*5
>
> }
>
>
> I can't see a thing. Reflections or otherwise.
>
>> I have made some test scenes with pure ambient lighting
>> (neither light sources nor radiosity) and reflective materials and
>> the reflections showed just fine.
>
> yes, but you know ambient light is by itself faking a constant ambient lighting,
> don't you? That's the hidden light by which povray is tracing the scene. No
> lights, no reflection, nor image. nothing...
>
> Let there be light! :)
>
>
>
It's obvious why you don't see anything: you set "ambient_light 0" in your
global_settings, whitch effectively negate your high ambient object.
The ambient_light should ONLY be used if you want to alter the coloration of the
ambient components for the whole scene.
ambient_light is multiplied with the ambient part of every finish. Anything
multiplied by zero equals zero.
Realy, in any radiosity scene lighted by ambient object, you MUST NEVER set
ambient_light to 0.
Rerun your sample scene as follow:
#default{finish{ambient 0 diffuse 1}}
global_settings{radiosity{}}
union {
plane { y, -1 pigment { rgb 1 } finish { ambient 1 } }
sphere { -x, 1 pigment { rgb x } }
sphere { x, 1 pigment { rgb y } finish { reflection 1 }}
translate z*5
}
Now, you can see everything. I've reduced your ambient 6 to 1 to prevent
oversaturation.
--
Alain
-------------------------------------------------
Real Time, adj.:
Here and now, as opposed to fake time, which only occurs there
and then.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Jan Dvorak nous apporta ses lumieres en ce 2007/11/11 05:48:
> Hello,
> When I use double_illuminate in a radiosity scene it does nothing (it
> does get double_illuminated by light_sources).
> Here's a scene to illustrate:
>
> default{finish{ambient 0}}
> camera{location <3,4,5> look_at 0}
> polygon{5,x,y,-x,-y,x pigment{rgb 1}double_illuminate translate z}
> polygon{5,x,y,-x,-y,x pigment{rgb 1}double_illuminate translate -z}
> background{rgb z}
> global_settings{radiosity{}}
> sphere{-y/2,0.5 texture{pigment{rgb y}finish{ambient 10 diffuse 0}}}
> light_source{y/2,rgb x}
>
> Is it a bug or it is intentional?
Working as expected.
The polygons are double_illuminate be the light_source (red), whitch contribute
on both faces.
They are lighted in blue from the background, giving that magenta tint.
The faces near the high ambient grees sphere are illuminated in green. They are
also affected by the other polygon, lighted in red, and, weekly, the blue
background.
--
Alain
-------------------------------------------------
You know you've been raytracing too long when you have ever brought your
computer to its knees by mistakenly launching 64 simultaneous frames to be
traced, while trying to maximizing the benefits of parallelizing them.
Carsten Whimster
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Alain <ele### [at] netscape net> wrote:
> It's obvious why you don't see anything: you set "ambient_light 0" in your
> global_settings
and you realize it was intentional, don't you? The point was to prove that
without any ray sources at all, there's no *raytraced* images.
Anyways, I forgot raytracing works backwards, by shooting rays into the scene
and then, possibly, to light sources. Indeed, it can still work without light
rays, by just tracing rays to objects with high ambient values.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
=?ISO-8859-1?Q?=22J=E9r=F4me_M=2E_Berger=22?= <jeb### [at] free fr> wrote:
> If you have neither light sources nor ambient then
> you don't get an image, only pure black. This has nothing to do with
> reflections. The bare minimum to get an image is to have some
> ambient light, and then you will get reflections too.
I forgot raytracing works backwards and was assuming the rays needed to trace
the reflections were rays coming from light sources. From there on, I assumed
when ambient lighting was present, povray automatically created a no_shadow
light_source to trace the scene. silly me...
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Alain napsal(a):
> Jan Dvorak nous apporta ses lumieres en ce 2007/11/11 05:48:
>> Hello,
>> When I use double_illuminate in a radiosity scene it does nothing (it
>> does get double_illuminated by light_sources).
>> Here's a scene to illustrate:
>>
>> default{finish{ambient 0}}
>> camera{location <3,4,5> look_at 0}
>> polygon{5,x,y,-x,-y,x pigment{rgb 1}double_illuminate translate z}
>> polygon{5,x,y,-x,-y,x pigment{rgb 1}double_illuminate translate -z}
>> background{rgb z}
>> global_settings{radiosity{}}
>> sphere{-y/2,0.5 texture{pigment{rgb y}finish{ambient 10 diffuse 0}}}
>> light_source{y/2,rgb x}
>>
>> Is it a bug or it is intentional?
> Working as expected.
> The polygons are double_illuminate be the light_source (red), whitch
> contribute on both faces.
> They are lighted in blue from the background, giving that magenta tint.
> The faces near the high ambient grees sphere are illuminated in green.
> They are also affected by the other polygon, lighted in red, and,
> weekly, the blue background.
>
As for MegaPOV 1.2.1 @ WinXP the front square doesn't get doubly
illuminated by the green sphere. Can you post your configuration, please?
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Jan Dvorak nous apporta ses lumieres en ce 2007/11/13 00:25:
> Alain napsal(a):
>> Jan Dvorak nous apporta ses lumieres en ce 2007/11/11 05:48:
>>> Hello,
>>> When I use double_illuminate in a radiosity scene it does nothing
>>> (it does get double_illuminated by light_sources).
>>> Here's a scene to illustrate:
>>>
>>> default{finish{ambient 0}}
>>> camera{location <3,4,5> look_at 0}
>>> polygon{5,x,y,-x,-y,x pigment{rgb 1}double_illuminate translate z}
>>> polygon{5,x,y,-x,-y,x pigment{rgb 1}double_illuminate translate -z}
>>> background{rgb z}
>>> global_settings{radiosity{}}
>>> sphere{-y/2,0.5 texture{pigment{rgb y}finish{ambient 10 diffuse 0}}}
>>> light_source{y/2,rgb x}
>>>
>>> Is it a bug or it is intentional?
>> Working as expected.
>> The polygons are double_illuminate be the light_source (red), whitch
>> contribute on both faces.
>> They are lighted in blue from the background, giving that magenta tint.
>> The faces near the high ambient grees sphere are illuminated in green.
>> They are also affected by the other polygon, lighted in red, and,
>> weekly, the blue background.
>>
>
> As for MegaPOV 1.2.1 @ WinXP the front square doesn't get doubly
> illuminated by the green sphere. Can you post your configuration, please?
It's not double_illuminated by radiosity, and sould'nt be.
--
Alain
-------------------------------------------------
You know you've been raytracing too long when you've convinced your boss that
raytracing is really an integral part of your job title (and you really don't
work in a position that requires it).
Quietly Watching
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |