|
|
High!
Reactor schrieb:
> I could not tell the differences between the images you posted,
See attachment... when the camera is positioned between main room and
bathroom door, the walls of both rooms are considerably brighter than if
the camera was placed right in front of the bathroom door!
but there are
> some radiosity artifacts I can see. The strange lightness in the
interior
> corners is from the ambient light.
This is obviously not true as I (see my reply to Zeger) set the global
ambient_light as well as the default texture ambient to 0 - but the
brightened corners still persist!
Can you post the related code?
Here it is:
// My Place in the World
// A sub-sub-subsection of the PoVEarth project
// E-mail: yaz### [at] gmxde
// RADIOSITY
#declare radio=1; // flag for radiosity
#declare balanced=1; // flag for balanced lighting levels, as suggested
by Reactor
#if (balanced=1)
#declare radbri=3;
#declare outerDiff = 0.48;
#declare innerDiff = 1;
#else
#declare radbri=1;
#declare outerDiff = 1;
#declare innerDiff = 1;
#end
global_settings
{
#if (!radio)
ambient_light 0.15
#else
ambient_light 0
radiosity
{
brightness radbri
adc_bailout 0.01
gray_threshold 0.8
recursion_limit 3
count 35
error_bound 1.8
}
#end
}
#default
{
finish { ambient 0 }
}
// TIME VARIABLES
// PIGMENTS
#declare P_Concrete =
pigment
{
color rgb 0.9
}
// FINISHES
#declare F_Standard_Outer =
finish
{
diffuse outerDiff
brilliance 0.15
}
#declare F_Standard_Inner =
finish
{
diffuse innerDiff
brilliance 0.15
}
// NORMALS
// TEXTURES
#declare T_Concrete_Outer =
texture
{
pigment { P_Concrete }
finish { F_Standard_Outer }
}
#declare T_Concrete_Inner =
texture
{
pigment { P_Concrete }
finish { F_Standard_Outer }
}
// 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_Front_Doorstep_Depth = 0.115;
#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>
}
#declare GWG_FrKarl_Block238to252_MiddleApartment_InnerWall =
box
{
0, <0.37, 7.892, 7.925>
}
#declare GWG_FrKarl_Block238to252_SouthernApartment_Bathroom_Wall =
box
{
0, <3.515, 7.892, 0.1>
}
#declare GWG_FrKarl_Block238to252_SouthernApartment_InnerChimney =
box
{
0, <0.5, 7.892, 0.3>
}
#declare GWG_FrKarl_Block238to252_SouthernApartment_BathroomDrainageBlock =
box
{
0, <0.265, 7.892, 0.12>
}
#declare GWG_FrKarl_Block238to252_SouthernApartment_HallWall =
difference
{
box
{
0, <0.11, 7.892, 2.37>
}
#declare a=0;
#while (a<3)
box
{
0, <0.12, 2.0751, 0.86>
translate <-0.005, a * 2.688 - 0.1481, 1.47>
}
box
{
0, <0.12, 2.0751, 0.96>
translate <-0.005, a * 2.688 - 0.1481, 0.035>
}
#declare a=a+1;
#end
}
#declare GWG_FrKarl_Block238to252_SouthernApartment_KitchenRow_SideWall =
box
{
0, <1.33, 7.892, 0.11>
}
#declare GWG_FrKarl_Block238to252_SouthernApartment_StorageRoom_SideWall =
box
{
0, <0.31, 7.892, 0.115>
}
#declare GWG_FrKarl_Block238to252_SouthernApartment_StorageRoom_FrontWall =
difference
{
box
{
0, <0.087, 7.892, 0.765>
}
#declare a=0;
#while (a<3)
box
{
0, <0.089, 2.0501, 0.52>
translate <-0.001, a * 2.688 - 0.1481, 0.05>
}
#declare a=a+1;
#end
}
#declare GWG_FrKarl_Block238to252_SouthernApartment_StorageRoom_Cutout =
box
{
0, <0.124, 2.5399, 0.7649>
}
#declare GWG_FrKarl_Block238to252_SouthernApartment_BathroomWindow_Cutout =
box
{
0, <0.38, 0.75, 0.72>
}
#declare GWG_FrKarl_Block238to252_ApartmentDoor_Cutout =
box
{
0, <1.005, 2.106, 0.267>
}
#declare GWG_FrKarl_Block238to252_StairsHall_SideWall =
difference
{
box
{
0, <4.98, 7.892, 0.265>
}
#declare a=0;
#while (a<3)
object
{
GWG_FrKarl_Block238to252_ApartmentDoor_Cutout
translate <6.636, a * 2.688 - 0.149, -0.001>
}
#declare a=a+1;
#end
}
// CAMERA SETTINGS
// using microlocal coordinates
#declare view=0;
#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+clock;
#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
#case (6) // oblique view from 30 metres above ground, looking west
#declare dir = 270;
#declare azi = -25;
#declare camPos = <40, 30, 10>;
#declare camLook = camPos + < sin(radians(dir))*cos(radians(azi)),
sin(radians(azi)), cos(radians(dir))*cos(radians(azi))>;
#declare camAng = 50;
#break
#case (7) // oblique (cutup) view from 18 metres above ground, my
apartment only, looking west
#declare dir = 270;
#declare azi = -25;
#declare camPos = <15, 18, 3>;
#declare camLook = camPos + < sin(radians(dir))*cos(radians(azi)),
sin(radians(azi)), cos(radians(dir))*cos(radians(azi))>;
#declare camAng = 50;
#break
#case (8) // oblique (cutup) view from 18 metres above ground, my
apartment only, looking north
#declare dir = 0;
#declare azi = -25;
#declare camPos = <5, 18, -10>;
#declare camLook = camPos + < sin(radians(dir))*cos(radians(azi)),
sin(radians(azi)), cos(radians(dir))*cos(radians(azi))>;
#declare camAng = 50;
#break
#case (9) // oblique (cutup) view from 18 metres above ground, my
apartment only, looking north-east
#declare dir = 45;
#declare azi = -25;
#declare camPos = <-5, 18, -5>;
#declare camLook = camPos + < sin(radians(dir))*cos(radians(azi)),
sin(radians(azi)), cos(radians(dir))*cos(radians(azi))>;
#declare camAng = 50;
#break
#case (10) // view inside my main apartment room through hall door
#declare dir = 70;
#declare azi = -15;
#declare camPos = <2.5,
GWG_FrKarl_Block238to252_Front_Doorstep_Depth + 40 * 0.168 + 1.7, 3>;
#declare camAng = 65;
#declare camLook = camPos + < sin(radians(dir))*cos(radians(azi)),
sin(radians(azi)), cos(radians(dir))*cos(radians(azi))>;
#break
#case (11) // view from my hall into staircase and northern apartment
#declare dir = 0;
#declare azi = -5;
#declare camPos = <6.95,
GWG_FrKarl_Block238to252_Front_Doorstep_Depth + 40 * 0.168 + 1.7, 4.2>;
#declare camAng = 65;
#declare camLook = camPos + < sin(radians(dir))*cos(radians(azi)),
sin(radians(azi)), cos(radians(dir))*cos(radians(azi))>;
#break
#case (12) // inside my hall
#declare dir = 330;
#declare azi = -5;
#declare camPos = <4.75,
GWG_FrKarl_Block238to252_Front_Doorstep_Depth + 40 * 0.168 + 1.7, 3.5>;
#declare camAng = 65;
#declare camLook = camPos + < sin(radians(dir))*cos(radians(azi)),
sin(radians(azi)), cos(radians(dir))*cos(radians(azi))>;
#break
#case (13) // view from my hall towards main room and balcony
#declare dir = 260;
#declare azi = -5;
#declare camPos = <4.75,
GWG_FrKarl_Block238to252_Front_Doorstep_Depth + 40 * 0.168 + 1.7, 3.5>;
#declare camAng = 65;
#declare camLook = camPos + < sin(radians(dir))*cos(radians(azi)),
sin(radians(azi)), cos(radians(dir))*cos(radians(azi))>;
#break
#case (14) // view from my hall into bathroom
#declare dir = 270;
#declare azi = -5;
#declare camPos = <4.75,
GWG_FrKarl_Block238to252_Front_Doorstep_Depth + 40 * 0.168 + 1.7, 4.6>;
#declare camAng = 65;
#declare camLook = camPos + < sin(radians(dir))*cos(radians(azi)),
sin(radians(azi)), cos(radians(dir))*cos(radians(azi))>;
#break
#end
// ACTUAL SCENE
#declare detail=0;
#declare cutup=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_Outer }
}
}
#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
#if (cutup)
difference
{
#end
union
{
#250 and #252
{
union
{
object
{
GWG_FrKarl_Block238to252_Raw
texture { T_Concrete_Outer }
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
texture { T_Concrete_Outer }
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
texture { T_Concrete_Inner }
scale 1/f
translate <0.37, GWG_FrKarl_Block238to252_Floor_yOffset + a
* GWG_FrKarl_Block238to252_Floor_Height, 0.37>/f
}
#declare a = a + 1;
#end
#declare a=0;
#while (a<3)
#declare b=0;
#while (b<2)
object
{
GWG_FrKarl_Block238to252_Balcony_Door_Cutout
texture { T_Concrete_Inner }
scale 1/f
translate <-0.005,
GWG_FrKarl_Block238to252_Floor_yOffset + 0.00001 + a *
GWG_FrKarl_Block238to252_Floor_Height,
1.84 + b *
GWG_FrKarl_Block238to252_Balcony_Spacing>/f
}
object
{
GWG_FrKarl_Block238to252_SouthernApartment_BathroomWindow_Cutout
texture { T_Concrete_Inner }
scale 1/f
translate <-0.005,
GWG_FrKarl_Block238to252_Floor_yOffset + a *
GWG_FrKarl_Block238to252_Floor_Height + 1.555,
4.585 + b*3.05>/f
}
#declare b = b + 1;
#end
#declare a = a + 1;
#end
}
object
{
GWG_FrKarl_Block238to252_StairsHall_SideWall
texture { T_Concrete_Inner }
scale 1/f
translate <0.37, 1.459, 5.555>/f
}
object
{
GWG_FrKarl_Block238to252_StairsHall_SideWall
texture { T_Concrete_Inner }
scale 1/f
translate <0.37, 1.459, 8.03>/f
}
difference
{
object
{
GWG_FrKarl_Block238to252_MiddleApartment_InnerWall
texture { T_Concrete_Inner }
scale 1/f
translate <5.215, 1.459, 0.37>/f
}
object
{
GWG_FrKarl_Block238to252_SouthernApartment_StorageRoom_Cutout
texture { T_Concrete_Inner }
scale 1/f
translate <5.214, 1.459 + 32*0.168 - 0.1481, 3.18505>
}
}
object
{
GWG_FrKarl_Block238to252_SouthernApartment_Bathroom_Wall
texture { T_Concrete_Inner }
scale 1/f
translate <0.37, 1.459, 4.245>/f
}
object
{
GWG_FrKarl_Block238to252_SouthernApartment_InnerChimney
texture { T_Concrete_Inner }
scale 1/f
translate <3.385, 1.459, 4.345>/f
}
object
{
GWG_FrKarl_Block238to252_SouthernApartment_BathroomDrainageBlock
texture { T_Concrete_Inner }
scale 1/f
translate <1.19, 1.459, 4.305>/f
}
object
{
GWG_FrKarl_Block238to252_SouthernApartment_HallWall
texture { T_Concrete_Inner }
scale 1/f
translate <3.885, 1.459, 3.185>/f
}
object
{
GWG_FrKarl_Block238to252_SouthernApartment_KitchenRow_SideWall
texture { T_Concrete_Inner }
scale 1/f
translate <3.885, 1.459, 3.075>/f
}
object
{
GWG_FrKarl_Block238to252_SouthernApartment_StorageRoom_SideWall
texture { T_Concrete_Inner }
scale 1/f
translate <4.905, 1.459, 3.95>/f
}
object
{
GWG_FrKarl_Block238to252_SouthernApartment_StorageRoom_FrontWall
texture { T_Concrete_Inner }
scale 1/f
translate <4.905, 1.459, 3.185>/f
}
#if (!cutup)
translate trans/f
#end
}
#if (cutup)
box { <-0.001, 9.1, -0.001>, <11.081, 9.524, 53.491> texture {
T_Concrete_Outer } }
translate trans/f
}
#end
#if (!balanced)
light_source // shadowless fill light for apartment 2nd floor
south in house #246
{
<3, 0.115 + 40 * 0.168 + 1.27>
color rgb 0.3
shadowless
}
#end
#242 and #244
{
union
{
object
{
GWG_FrKarl_Block238to252_Raw
texture { T_Concrete_Outer }
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
texture { T_Concrete_Outer }
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
texture { T_Concrete_Inner }
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
texture { T_Concrete_Inner }
scale 1/f
translate <10.705,
GWG_FrKarl_Block238to252_Floor_yOffset + 0.00001 + a *
GWG_FrKarl_Block238to252_Floor_Height,
1.84 + b *
GWG_FrKarl_Block238to252_Balcony_Spacing>/f
}
#declare b = b + 1;
#end
#declare a = a + 1;
#end
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_Outer }
}
}
light_source
{
<1000, 2000, -4000>
color rgb 1
}
object
{
GWG_FrKarl_Block238to252238to252_Balcony_Raw
texture { T_Concrete_Outer }
}
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 '.jpg' (16 KB)
Preview of image '.jpg'
|
|