|
![](/i/fill.gif) |
Hello,
I have just started using POV-Ray and I want to use it for visualising
architectural indoor scenes. Currently, I am defining geometries of rooms,
and the idea is to use the PRISM solid object to define the basic room
geometry.
Therefor I create prisms with two polygons (the outer and inner surfaces of
the walls), where one polygon contains the other one (I have a sample scene
with the effect attached at the bottom of the message):
#declare lv_room_walls = prism {
linear_sweep
linear_spline
0, // sweep the following shape from here ...
2.2, // height of room is 2.2m
20, // num of inner an outer points
<-0.5, 0.2>, <2.9, 0.2>, <3, -8.7>, <-2.92, -8.7>, <-2.92, -4.6>, <-4.5,
-4.6>, <-4.5, -4.5>, <-0.5, -4.4>, <-0.5, -0.5> // outer wall
<0,0>,<2.7,0>, <2.7,-4.25>, <2.43,-4.25>, <2.18,-8.45>, <-2.62, -8.45>,
<-2.62, -4.8>, <-0.3, -4.7>, <-0.25, -0.3>, <0,-0.25>,<0,0> // inner wall
}
This works fine. However, cutting out windows or doors using the CSG
difference operations with a box does not result in a solid object. The
locations of the door- and window-frames show the two sufaces<of the prism,
and an empty space between them.
Is this the expected behaviour? Is there a possibility, to make the
resulting CSG appear as a solid object?
Any help and any best practices for defining indoor architectural scenes
are highly welcome.
Thank in advance for your suggestions&help.
Best regards,
Jan.
--------
#include "textures.inc"
#include "sunpos.inc"
global_settings {
radiosity {
pretrace_start 0.08
pretrace_end 0.01
count 80
nearest_count 5
error_bound 0.7
recursion_limit 3
low_error_factor 0.8
gray_threshold 0
minimum_reuse 0.015
brightness 1.5
adc_bailout 0.01/2
}
}
// sky sphere
sphere {
0, 1000
pigment { color <0.7, 0.7, .9>
} // end of pigment
finish {
ambient 1
diffuse 0
}
}
camera {
location <2.4, 1.8, -3.1>
look_at <-2, 1.5, -8.45>
angle 63
}
#declare global_diffuse= .8;
light_source {
//SunPos(2000, 6, 21, 11, 30, 0, 51.4667, 0.00)
<1.6, 1.2, -14>
rgb <1,1,.9>
}
#declare lv_room_walls = prism {
linear_sweep
linear_spline
0, // sweep the following shape from here ...
2.2, // height of room is 2.2m
20, // num of inner an outer points
<-0.5, 0.2>, <2.9, 0.2>, <3, -8.7>, <-2.92, -8.7>, <-2.92, -4.6>, <-4.5,
-4.6>, <-4.5, -4.5>, <-0.5, -4.4>, <-0.5, -0.5> // outer wall
<0,0>,<2.7,0>, <2.7,-4.25>, <2.43,-4.25>, <2.18,-8.45>, <-2.62, -8.45>,
<-2.62, -4.8>, <-0.3, -4.7>, <-0.25, -0.3>, <0,-0.25>,<0,0> // inner wall
}
difference {
object {lv_room_walls
pigment {color rgb 1}
finish {
ambient 0
diffuse global_diffuse
}
}
/* window */
box {
<-2.619, 0.7, -7.65>
<-2.921, 2, -6.15>
}
/* rear door */
box {
<1.38, 0.001, -8.449>
<-0.62, 2.05, -8.701>
}
}
Post a reply to this message
|
![](/i/fill.gif) |