![](/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) |
scott skrev:
>> But obviously PoV-Ray does not take this into account when rendering
>> such indoor scenes... or is there a way to calibrate PoV-Ray's lighting
>> system to match the human perception more closely?
>
> You don't want to do that, because when your eye looks at the
> monitor/print out obviously it will do it's logarithmic processing
> again, so you'll get it twice and it will look weird. Try taking a
> photo of the view you want with the exposure you want, and getting your
> POV generated image to match.
No, there is a difference between looking at a scene like that in real
life, where the outdoor brightness is very high, and looking at a photo
of the same scene. The brightness of the brightest parts of the photo
depend on the light source illuminating the photo, in the same way that
looking at a photo of the sun is not as dangerous as looking into the sun.
/martin
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) |
>> You don't want to do that, because when your eye looks at the
>> monitor/print out obviously it will do it's logarithmic processing
>> again, so you'll get it twice and it will look weird. Try taking a
>> photo of the view you want with the exposure you want, and getting your
>> POV generated image to match.
>
> No, there is a difference between looking at a scene like that in real
> life, where the outdoor brightness is very high, and looking at a photo
> of the same scene. The brightness of the brightest parts of the photo
> depend on the light source illuminating the photo, in the same way that
> looking at a photo of the sun is not as dangerous as looking into the sun.
Well of course a photo is limited to reflecting 100% of the incident light,
and a monitor to its maximum brightness, but that wasn't my point. My point
was that you shouldn't take into account the eyes processing in your image,
because then it's not going to look realistic. You should aim to create an
image where the relative brightnesses match what is in real life. You don't
need to worry about how your eye works, just match real life and it will
look realistic.
Comparing your rendering with a digital photo is a good way to do this, as
most people don't have access to expensive brightness measurement equipment.
It also means you don't have to worry about gamma of your display device,
just match your output pixel values to the values in the photo.
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) |
>
> Well of course a photo is limited to reflecting 100% of the incident light,
> and a monitor to its maximum brightness, but that wasn't my point. My point
> was that you shouldn't take into account the eyes processing in your image,
> because then it's not going to look realistic. You should aim to create an
> image where the relative brightnesses match what is in real life. You don't
> need to worry about how your eye works, just match real life and it will
> look realistic.
>
You've confused realistic with photo-realistic. If you match a photo it will
look like a photo --- and photos have all the same problems he's listing. Take
a picture of a window on a sunny day, and the window sill, the wall around it,
and anything else will be very dark --- or else everything outside the window
will be over exposed. Real life doesn't have those problems because our eyes
are amazing.
A rendering with logartithmic light recording wouldn't look like a normal photo
--- it would look like a tone-mapped HDR image:
http://en.wikipedia.org/wiki/Tone_mapping . And for preserving detail the way a
memory does, it will be more effective.
The fast solution would be to use megapov to render to HDR and then use 3rd
party tone-mapping software.
-S
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
From: Jörg 'Yadgar' Bleimann
Subject: Re: PoVEarth, day #6 - first obstacle!
Date: 26 Jul 2008 12:56:06
Message: <488b5726$1@news.povray.org>
|
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
High!
(sorry for the three-day delay, but meanwhile, my primary master
harddisk crashed and I still have a pretty hard time to get the system
working again... this posting is sent to you using a provisional
installation running from a Sidux livedisk - Linux rules!)
scott schrieb:
> You don't want to do that, because when your eye looks at the
> monitor/print out obviously it will do it's logarithmic processing
> again, so you'll get it twice and it will look weird. Try taking a
> photo of the view you want with the exposure you want, and getting your
> POV generated image to match.
Unfortunately, I don't (yet) own such a sophisticated camera... sounds
strange from such an avid PoVghan, doesn't it? You know you've been
raytracing for too long... when you never own less then five digital and
chemical cameras just to get real-world lighting and radiosity levels right!
> IME the most important thing is to get the ratio between sun brightness
> and sky brightness correct.
Then probably my sun is too bright (and after dimming it down, the whole
image has to be post-processed)...
See you in Khyberspace!
Yadgar
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) |
> A rendering with logartithmic light recording wouldn't look like a normal
> photo
> --- it would look like a tone-mapped HDR image:
> http://en.wikipedia.org/wiki/Tone_mapping . And for preserving detail the
> way a
> memory does, it will be more effective.
Maybe so, but to me those tone-mapped images look far less like real life
than a normal photo does.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
From: Jörg 'Yadgar' Bleimann
Subject: Re: PoVEarth, day #6 - first obstacle!
Date: 31 Jul 2008 14:19:27
Message: <4892022f@news.povray.org>
|
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
High!
Blue Herring schrieb:
> It depends on what settings you are already using, but have you tried
> increasing the recursion_limit so the light will bounce around in the
> rooms more and light up th walls?
Yes, meanwhile (after re-programming the whole scene, which was also
lost in the harddisk crash last week) I increased recursion_limit up to
20, but that won't either do the trick - see attached image!
See you in Khyberspace!
Yadgar
Post a reply to this message
Attachments:
Download '2008-07-31 inside my apartment, take 1 (yadgar).jpg' (15 KB)
Preview of image '2008-07-31 inside my apartment, take 1 (yadgar).jpg'
![2008-07-31 inside my apartment, take 1 (yadgar).jpg](/povray.binaries.images/attachment/%3C4892022f%40news.povray.org%3E/2008-07-31%20inside%20my%20apartment%2C%20take%201%20%28yadgar%29.jpg?preview=1)
|
![](/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-15?Q?J=F6rg_=27Yadgar=27_Bleimann?= <yaz### [at] gmx de> wrote:
> High!
>
> Blue Herring schrieb:
>
> > It depends on what settings you are already using, but have you tried
> > increasing the recursion_limit so the light will bounce around in the
> > rooms more and light up th walls?
>
> Yes, meanwhile (after re-programming the whole scene, which was also
> lost in the harddisk crash last week) I increased recursion_limit up to
> 20, but that won't either do the trick - see attached image!
>
> See you in Khyberspace!
>
> Yadgar
I can see some artifacts that may be from your radiosity settings. Can you post
your code? If not, I recommend lowering your error bound to about 1/3 to 1/4 of
what it is. Since a lot of the light is to be reflected from the bright, fully
lit corner, changing the error bound may increase the brightness in this case.
There are some other settings changes that I think you should consider also.
-Reactor
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
From: Jörg 'Yadgar' Bleimann
Subject: Re: PoVEarth, day #6 - first obstacle!
Date: 31 Jul 2008 17:40:52
Message: <48923164@news.povray.org>
|
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
High!
Reactor schrieb:
> I can see some artifacts that may be from your radiosity settings. Can you post
> your code? If not, I recommend lowering your error bound to about 1/3 to 1/4 of
> what it is. Since a lot of the light is to be reflected from the bright, fully
> lit corner, changing the error bound may increase the brightness in this case.
> There are some other settings changes that I think you should consider also.
I increased count to 200 and lowered error_bound to 0.45... but the
result (see attachment) did not improve significantly!
Perhaps it's because the rear walls are not close enough as I did not
yet add the interior walls separating the apartments and rooms...
The code:
// My Place in the World
// A sub-sub-subsection of the PoVEarth project
// E-mail: yaz### [at] gmx de
// RADIOSITY
#declare radio=1;
global_settings
{
#if (!radio)
ambient_light 0.15
#else
ambient_light 0
radiosity
{
brightness 1
adc_bailout 0.01
gray_threshold 0.8
recursion_limit 20
count 200
error_bound 0.45
}
#end
}
// TIME VARIABLES
// PIGMENTS
#declare P_Concrete =
pigment
{
color rgb 0.9
}
// FINISHES
#declare F_Standard =
finish
{
diffuse 1
brilliance 0.15
}
// NORMALS
// TEXTURES
#declare T_Concrete =
texture
{
pigment { P_Concrete }
finish { F_Standard }
}
// LENGTH VARIABLES
#declare FrKarl_SideStreet_Width = 6.09;
#declare FrKarl_SideStreet_Pavement_Width = 1.32;
#declare GWG_FrKarl_Block238to252_Front_Way_Length = 4.09;
#declare GWG_FrKarl_Block238to252_Front_Doorstep_Depth = 0.427;
#declare GWG_FrKarl_Block238to252_Stair_Height = 0.168;
#declare GWG_FrKarl_Block238to252_Floor_Height = 16 *
GWG_FrKarl_Block238to252_Stair_Height;
#declare GWG_FrKarl_Block238to252_Floor_yOffset = 8 *
GWG_FrKarl_Block238to252_Stair_Height;
#declare GWG_FrKarl_Block238to252_Ceiling_Thickness = 0.148;
#declare GWG_FrKarl_Block238to252_Balcony_Spacing=9.19;
// OBJECT DEFINITIONS
#declare GWG_FrKarl_Block238to252_Raw=
box
{
0, <11.08, 9.523, 53.49>
}
#declare GWG_FrKarl_Block238to252_Balcony_Raw=
difference
{
box
{
0, <1.155, 0.948, 3.24>
}
box
{
<0.165, 0.148, 0.155>, <1.65, 0.95, 3.085>
}
}
#declare GWG_FrKarl_Block238to252_Floor_Cutout =
box
{
0, <10.34, 2.54, 52.75>
}
#declare GWG_FrKarl_Block238to252_Balcony_Door_Cutout =
box
{
0, <0.38, 2.14, 1.14>
}
// CAMERA SETTINGS
// using microlocal coordinates
#declare view=5;
#switch(view)
#case (0) // pedestrian view on side street, up building #246
#declare camPos = <-8, 1.7, 10>;
#declare camLook = <1, 7.2, 3>;
#declare camAng = 40;
#break
southward along side street
#declare camPos = <-(FrKarl_SideStreet_Width / 2 +
FrKarl_SideStreet_Pavement_Width +
GWG_FrKarl_Block238to252_Front_Way_Length +
GWG_FrKarl_Block238to252_Front_Doorstep_Depth),
1.7, 70>;
#declare camLook =<-(FrKarl_SideStreet_Width / 2 +
FrKarl_SideStreet_Pavement_Width +
GWG_FrKarl_Block238to252_Front_Way_Length +
GWG_FrKarl_Block238to252_Front_Doorstep_Depth),
1.7, 0>;
#declare camAng = 60;
#break
#case (2) // pedestrian view on side street, up building #244
#declare camPos = <-8, 1.7, 10>;
#declare camLook = <-30, 7.2, 0>;
#declare camAng = 40;
#break
#case (3) // inside 1st floor of building #244, looking east
#declare camPos = <-25.5, 5.9, 2.5>;
#declare camLook =<-16, 4.6, 2.5>;
#declare camAng = 40;
#break
#case (4) // inside 1st floor of building #244, balcony door
threshold close-up
#declare camPos = <-17.9, 5.5, 2.5>;
#declare camLook = <-17.76, 3.5, 2.5>;
#declare camAng = 40;
#break
#case (5) // inside my apartment, looking west
#declare dir = 270;
#declare azi = -10;
#declare camPos = <4.2, 40 * 0.168 + 1.7, 2.5>;
#declare camLook = camPos + < sin(radians(dir))*cos(radians(azi)),
sin(radians(azi)), cos(radians(dir))*cos(radians(azi))>;
#declare camAng = 50;
#break
#end
// ACTUAL SCENE
#declare detail=0;
#if (!detail) // full scene views
// SCALE MODELS
#declare models = array[5] { 0, 0, 0, 1, 0 }
// models[0]: cosmic scale - whole Solar System, heliocentric
// models[1]: global scale - Earth, geocentric, spherical terrain relief
// models[2]: regional scale - 40 x 40 kms area around Cologne,
heightfield
// models[3]: local scale - 500 x 500 metres around my apartment, plane
// models[4]: microlocal - my apartment only, outside world only as
HDRI bitmaps
#declare a=0;
#declare i=0;
#while (a<5)
#if (models[a])
#declare i=i+1;
#end
#declare a=a+1;
#end
#if (!i | i>1)
#warning "Missing or ambiguous scale setting" // terminating POV script
#else
#if (models[0])
#declare f=1000000 // 1 unit = 1000 kms
#end
#if (models[1])
#declare f=1000; // 1 unit = 1 km
#end
#if (models[2] | models[3] | models[4])
#declare f=1; // 1 unit = 1 metre
#end
#if (models[3])
#declare trans=<251.565, 0, 250.325>;
#end
// #declare f=1;
#if (models[3])
light_source
{
<0, 500, -1000>
color rgb 1
}
#end
#if (models[2] | models[3])
plane
{
y, 0
texture // bare sandy soil
{
pigment { color rgb <0.5, 0.35, 0.2> }
finish { F_Standard }
}
}
#end
#if (models[3])
sky_sphere
{
pigment
{
gradient y
color_map
{
[0 rgb <0.7, 1, 1>]
[0.25 rgb <0, 0.5, 1>]
[1 rgb <0, 0.5, 1>]
}
}
}
#end
#250 and #252
{
union
{
object
{
GWG_FrKarl_Block238to252_Raw
scale 1/f
}
#declare a=0;
#while (a<3) // 3 floors with balconies
#declare b=0;
#while (b<2) // 2 balconies per floor
object
{
GWG_FrKarl_Block238to252_Balcony_Raw
scale 1/f
translate <-1.155 +b * 0.515,
GWG_FrKarl_Block238to252_Floor_yOffset + a *
GWG_FrKarl_Block238to252_Floor_Height - 0.148, 1.045 + b *
GWG_FrKarl_Block238to252_Balcony_Spacing>/f
}
#declare b = b + 1;
#end
#declare a = a + 1;
#end
}
#declare a=0;
#while (a<3)
object
{
GWG_FrKarl_Block238to252_Floor_Cutout
scale 1/f
translate <0.37, GWG_FrKarl_Block238to252_Floor_yOffset + a *
GWG_FrKarl_Block238to252_Floor_Height, 0.37>
}
#declare a = a + 1;
#end
#declare a=0;
#while (a<3)
#declare b=0;
#while (b<2)
object
{
GWG_FrKarl_Block238to252_Balcony_Door_Cutout
scale 1/f
translate <-0.005,
GWG_FrKarl_Block238to252_Floor_yOffset + 0.00001 + a *
GWG_FrKarl_Block238to252_Floor_Height,
1.86 + b *
GWG_FrKarl_Block238to252_Balcony_Spacing + 0.4>/f
}
#declare b = b + 1;
#end
#declare a = a + 1;
#end
translate trans/f
texture { T_Concrete }
}
#242 and #244
{
union
{
object
{
GWG_FrKarl_Block238to252_Raw
scale 1/f
}
#declare a=0;
#while (a<3) // 3 floors with balconies
#declare b=0;
#while (b<2) // 2 balconies per floor
object
{
GWG_FrKarl_Block238to252_Balcony_Raw
rotate y*180
scale 1/f
translate <11.08 + 1.155 - b * 0.515,
GWG_FrKarl_Block238to252_Floor_yOffset + a *
GWG_FrKarl_Block238to252_Floor_Height - 0.148,
1.045 + 3.24 + b * GWG_FrKarl_Block238to252_Balcony_Spacing>/f
}
#declare b = b + 1;
#end
#declare a = a + 1;
#end
}
#declare a=0;
#while (a<3)
object
{
GWG_FrKarl_Block238to252_Floor_Cutout
scale 1/f
translate <0.37, GWG_FrKarl_Block238to252_Floor_yOffset + a *
GWG_FrKarl_Block238to252_Floor_Height, 0.37>
}
#declare a = a + 1;
#end
#declare a=0;
#while (a<3)
#declare b=0;
#while (b<2)
object
{
GWG_FrKarl_Block238to252_Balcony_Door_Cutout
scale 1/f
translate <10.705,
GWG_FrKarl_Block238to252_Floor_yOffset + 0.00001 + a *
GWG_FrKarl_Block238to252_Floor_Height,
1.86 + b *
GWG_FrKarl_Block238to252_Balcony_Spacing + 0.4>/f
}
#declare b = b + 1;
#end
#declare a = a + 1;
#end
texture { T_Concrete }
translate (< -((FrKarl_SideStreet_Pavement_Width +
GWG_FrKarl_Block238to252_Front_Way_Length +
GWG_FrKarl_Block238to252_Front_Doorstep_Depth)*2 +
FrKarl_SideStreet_Width)-11.08,
0,
0 > + trans)/f
}
camera
{
location camPos/f +trans
look_at camLook/f +trans
angle camAng
}
#end
#else // single detail views
sky_sphere
{
pigment { color rgb 1 }
}
plane
{
y, 0
texture
{
pigment { color rgb 1 }
finish { F_Standard }
}
}
light_source
{
<1000, 2000, -4000>
color rgb 1
}
object
{
GWG_FrKarl_Block238to252238to252_Balcony_Raw
texture { T_Concrete }
}
camera
{
location <8, 1.5, 1.6>
look_at <0, 0.5, 1.6>
angle 40
}
#end
Post a reply to this message
Attachments:
Download '2008-07-31 inside my apartment, take 2 (yadgar).jpg' (15 KB)
Preview of image '2008-07-31 inside my apartment, take 2 (yadgar).jpg'
![2008-07-31 inside my apartment, take 2 (yadgar).jpg](/povray.binaries.images/attachment/%3C48923164%40news.povray.org%3E/2008-07-31%20inside%20my%20apartment%2C%20take%202%20%28yadgar%29.jpg?preview=1)
|
![](/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?J=F6rg_=27Yadgar=27_Bleimann?= <yaz### [at] gmx de> wrote:
> High!
>
> Reactor schrieb:
>
> > I can see some artifacts that may be from your radiosity settings. Can you post
> > your code? If not, I recommend lowering your error bound to about 1/3 to 1/4 of
> > what it is. Since a lot of the light is to be reflected from the bright, fully
> > lit corner, changing the error bound may increase the brightness in this case.
> > There are some other settings changes that I think you should consider also.
>
> I increased count to 200 and lowered error_bound to 0.45... but the
> result (see attachment) did not improve significantly!
>
> Perhaps it's because the rear walls are not close enough as I did not
> yet add the interior walls separating the apartments and rooms...
>
> The code:
Unfortunately, I wasn't able to get the indoors much brighter without
brightening the outdoors. I was playing with 'exposure' under MegaPov 1.21.
The only thing I can recommend is using a different diffuse value for indoors
(like 1.00) and outdoors (like 0.50), and boosting the brightness in the
radiosity block.
HTH
-Reactor
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) |
Reactor wrote:
> Unfortunately, I wasn't able to get the indoors much brighter without
> brightening the outdoors.
Just as an aside:
"""
density of light that falls on a surface. This is what light
meters measure. For example, average indoor lighting
ranges from 100 to 1,000 lux, and average outdoor
sunlight is about 50,000 lux.
"""
"""
expressed as candelas per square meter of light emitting
surface. [...] For
example, the luminance of a heavily overcast sky is about
1,000 candelas per square meter, and the luminance of
a typical frosted light bulb is about 100,000 candelas
per square meter.
"""
http://www.energybooks.com/pdf/D1150.pdf
There might be a good reason getting this to work takes some extreme
values. :-) Eyeballs are pretty amazing devices.
--
Darren New / San Diego, CA, USA (PST)
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) |