本文主要是介绍pov-ray软件绘图--室内一角,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、 运行结果
二、设计思路
本次图片设计采用Pov-Ray软件完成,内容为室内一角,具体包括桌凳,柜子,壁画,水杯等物品以及光影效果的实现。
三、设计过程
1. 相机
相机位置放在屏幕外,镜头朝向屏幕内侧,模拟现实中从门外看房间的视角,方便后续物品定位。
2. 光源
图片物品颜色多为暖色调,故全局光源采用了米色光,使图片更加柔和,位置放在天花板的中心位置。
3. 墙壁
用box函数定义四个边界相接的长方体,构成屋内空间,旋转摄像机镜头,使视角从侧面看入,地板颜色利用image_map函数进行图片贴图构成木质地板效果,侧墙和天花板采用图片贴图实现渐变色墙纸效果。
侧墙和天花板同理,详见附录代码。
4. 屋内陈设
(1)桌子
利用cone函数定义两个相叠的物体作为桌子的上下底座,改变半径和高度使之匹配;再利用cylinder函数定义一个高度与底面圆半径比较小的圆柱体作为桌面,调整坐标使桌面底和上底座上表面相接,组合构成桌子。
(2)凳子
利用cylinder函数定义圆柱体,内置wood纹理函数改变表面图案,改变高度半径使之与桌子大小匹配,构成凳子。
另一个凳子同理,详见附录代码。
(3)吊灯
吊灯形状为圆柱形和球型,分别用cylinder和sphere函数实现,用open函数打开,内置米色光源,实现吊灯局部照亮效果。再利用cylinder函数定义两个半径极小的圆柱体作为吊灯绳,组合构成吊灯。
另一个圆柱形吊灯同理,详见附录代码。
(4)柜子和置物架
利用box函数建立和墙壁表面坐标相同(即两物体相连)的长方体,在柜子表面再次利用box函数建立若干个与柜子表面坐标相同的长方体,调小z轴距离使物体变薄,实现柜子表面柜门效果。在柜门靠近边缘中央部分,用sphere函数定义两个球体,得到柜门把手。最后利用内置wood纹理函数改变表面花色,组合构成柜子和置物架。
其他部分同理,详见附录代码。
(5)壁画和画框
利用box函数定义紧贴墙面的薄板,采用image_map函数表面贴图,再在长方体边缘(或四角)定义长条形长方体,构成画框,组合构成挂画和摆画。
其他部分同理,详见附录代码。
(6)球形摆件
利用sphere函数定义三个半径不同的球体,对应置物架坐标放在置物架上,内置textures函数调成中空旋转花型。
其他不同半径效果同理,详见附录代码。
(7)水杯
利用cylinder函数定义一个圆柱体,对应坐标放在桌面上,内置glass函数使杯子呈现玻璃状,open处理后,再次定义一个半径略小的圆柱体,放在杯子内部,利用glass函数为圆柱体着色,形成杯子内有饮品的效果。构成杯子。
(8)书本
利用box函数定义长方体,上下堆叠,调整坐标实现参差不齐的书本摞起效果。
(9)盆栽
利用cylinder函数定义一个圆柱体,open处理后调整坐标作为花盆;再利用sphere函数定义一个球体放在圆柱体上,内置texture函数实现绣球花的效果。构成盆栽。
四、附录
#include "colors.inc" // 定义基本颜色
#include "shapes.inc" // 定义基本形状物体
#include "textures.inc" // 定义一些物体属性
#include "woods.inc"//定义纹理
#include "glass.inc"
#include "stones.inc"
#include "metals.inc" //屏幕向左为x正半轴,向上为y正半轴,向内为z正半轴camera {location<-4.2,-4,17> look_at<.8,-3.3,-1>
} light_source {<0,0,10>color rgb<247,238,214>/255
}sky_sphere { pigment { rgb<247,238,214>/255 }
}//吊灯光源左
light_source {<7.2,.15,-3> White
}//吊灯光源右
light_source {<6,5,-5> White
}//窗户光源
light_source {<19,0,-10>color rgb<247,238,214>/255
} //地板
box {<-20,-14,3>,<20,-12,-17>pigment { image_map {jpeg "C:\Users\sun\Desktop\carpet.jpg" }}
} //地板 //后墙
box {<-20,-14,-25>,<20,15,-17>pigment { image_map {jpeg "C:\Users\sun\Desktop\wallpaper.jpg"map_type 1 }}
}//后墙 //侧墙
box {<20,-14,3>,<20,15,-30>pigment { image_map {jpeg "C:\Users\sun\Desktop\wallpaper.jpg"map_type 1 }}
}//侧墙 //天花板
box {<-20,10,-30>,<20,10,-3>pigment { image_map {jpeg "C:\Users\sun\Desktop\wallpaper.jpg" map_type 1 } }
}//天花板 //窗户
box {<20,-5,-13>,<19.99,5,-5>pigment { image_map {jpeg "C:\Users\sun\Desktop\sunrise.jpg"map_type 1 }}finish { ambient .5 }
}//窗户//左窗框
box {<21,-5.3,-4.5>,<19.99,5.3,-5>texture{ T_Wood22 normal { wood 0.5 scale 0.05 turbulence 0.1 rotate<0,0,0> }finish { diffuse 1.9 phong 1 } rotate<0,0,0> scale 0.5 translate<0,0,0>} // end of texture
}//左窗框//下窗框
box { <19.99,-5,-5>,<19.99,-5.3,-13>texture{ T_Wood22 normal { wood 0.5 scale 0.05 turbulence 0.1 rotate<0,0,0> }finish { diffuse 1.9 phong 1 } rotate<0,0,0> scale 0.5 translate<0,0,0>} // end of texture
}//下窗框 //上窗框
box {<19.99,5,-5>,<19.99,5.3,-13>texture{ T_Wood22 normal { wood 0.5 scale 0.05 turbulence 0.1 rotate<0,0,0> }finish { diffuse 1.9 phong 1 } rotate<0,0,0> scale 0.5 translate<0,0,0>} // end of texture
}//上窗框//右窗框
box {<19.99,-5.3,-13.3>,<19.99,5.3,-13>texture{ T_Wood22 normal { wood 0.5 scale 0.05 turbulence 0.1 rotate<0,0,0> }finish { diffuse 1.9 phong 1 } rotate<0,0,0> scale 0.5 translate<0,0,0>} // end of texture
}//右窗框//桌子下底座
cone {<6,-12,-3>,3<6,-9,-3>,1.2 finish { ambient .4} texture{ DMFDarkOaknormal { wood 0.5 scale 0.3 turbulence 0.1}finish { phong 1 } rotate<60,0,45>scale 0.25}//end of texture
}//桌子下底座//桌子上底座
cone {<6,-7.5,-3>,2.4<6,-9,-3>,1.2 finish { ambient .4} texture{ DMFDarkOaknormal { wood 0.5 scale 0.3 turbulence 0.1}finish { phong 1 } rotate<60,0,45>scale 0.25} // end of texture
}//桌子上底座//桌面
cylinder{<6,-7.2,-3><6,-7,-3>4.5 texture{ T_Wood13 normal { wood 0.5 scale 0.05 turbulence 0.0 rotate<0,0,0> }finish { phong 1 } rotate<0,0,0> scale 0.5 translate<0,0,0>} // end of texture
}//桌面//凳子右
cylinder{<.5,-9,-5><.5,-12,-5>1.5finish { ambient .4} texture{ DMFDarkOaknormal { wood 0.5 scale 0.3 turbulence 0.1}finish { phong 1 } rotate<60,0,45>scale 0.25} // end of texture
}//凳子右 //凳子左
cylinder{<4.5,-9,-9><4.5,-12,-9>1.5finish { ambient .4} texture{ DMFDarkOaknormal { wood 0.5 scale 0.3 turbulence 0.1}finish { phong 1 } rotate<60,0,45>scale 0.25} // end of texture
}//凳子左//吊灯左
//吊灯绳
cylinder {<7.2,10,-3><7.2,2,-3>.05pigment { Black }
}sphere {<7.2,1,-3>,1texture{ // layer 1 pigment{ wood turbulence 0.02 octaves 4 lambda 3scale 0.175 rotate <2, 2, 0> color_map {[0.0 color rgb <1.30, 0.99, 0.64>][0.5 color rgb <0.75, 0.39, 0.17>][0.7 color rgb <0.75, 0.39, 0.17>][1.0 color rgb <1.30, 0.99, 0.64>]}// end of color_map} // end of pigmentfinish { phong 1 } rotate <0,0, 0> scale 1 translate <0,0,0>} // end of texture ------------------------------texture{ // layer 2 pigment{ wood turbulence 0.02 octaves 4 lambda 2.8scale 0.2 rotate <2, 2, 0> translate <0.0175, 0.0175, 0.0175>color_map {[0.00 color rgbt <1.00, 0.97, 0.95, 1.30>][0.55 color rgbt <0.85, 0.85, 0.40, 0.70>][0.65 color rgbt <0.85, 0.85, 0.40, 0.70>][1.00 color rgbt <1.00,0.975, 0.95, 1.30>]}// end of color_map} // end of pigmentfinish { phong 1 } rotate <0,0, 0> scale 1 translate <0,0,0>} // end of texture ------------------------------
}//吊灯左//吊灯右
//吊灯绳
cylinder {<6,10,-5><6,5,-5>.05pigment { Black }
}cone {<6,3,-5>,1.2<6,5,-5>,1.2open texture{ // layer 1 pigment{ wood turbulence 0.02 octaves 4 lambda 3scale 0.175 rotate <2, 2, 0> color_map {[0.0 color rgb <1.30, 0.99, 0.64>][0.5 color rgb <0.75, 0.39, 0.17>][0.7 color rgb <0.75, 0.39, 0.17>][1.0 color rgb <1.30, 0.99, 0.64>]}// end of color_map} // end of pigmentfinish { phong 1 } rotate <0,0, 0> scale 1 translate <0,0,0>} // end of texture ------------------------------texture{ // layer 2 pigment{ wood turbulence 0.02 octaves 4 lambda 2.8scale 0.2 rotate <2, 2, 0> translate <0.0175, 0.0175, 0.0175>color_map {[0.00 color rgbt <1.00, 0.97, 0.95, 1.30>][0.55 color rgbt <0.85, 0.85, 0.40, 0.70>][0.65 color rgbt <0.85, 0.85, 0.40, 0.70>][1.00 color rgbt <1.00,0.975, 0.95, 1.30>]}// end of color_map} // end of pigmentfinish { phong 1 } rotate <0,0, 0> scale 1 translate <0,0,0>} // end of texture ------------------------------
}//吊灯右//地柜
box { <-15,-14,-17>,<-5,-8,-12>texture{ T_Wood10 normal { wood 0.5 scale 0.05 turbulence 0.0 rotate<0,0,0> }finish { phong 1 } rotate<0,0,0> scale 0.5 translate<0,0,0>} // end of texture
}//地柜//置物架上
box { <10,-1,-17>,<0,-.5,-15>texture{ T_Wood10 normal { wood 0.5 scale 0.05 turbulence 0.0 rotate<0,0,0> }finish { phong 1 } rotate<0,0,0> scale 0.5 translate<0,0,0>} // end of texture
}//置物架上//置物架下
box { <2.5,-3.5,-17>,<-2.5,-4,-15>texture{ T_Wood10 normal { wood 0.5 scale 0.05 turbulence 0.0 rotate<0,0,0> }finish { phong 1 } rotate<0,0,0> scale 0.5 translate<0,0,0>} // end of texture
}//置物架下//壁柜
box { <-15,4,-17>,<-5,0,-12>texture{ T_Wood10 normal { wood 0.5 scale 0.05 turbulence 0.0 rotate<0,0,0> }finish { phong 1 } rotate<0,0,0> scale 0.5 translate<0,0,0>} // end of texture
}//壁柜//球型摆件大
sphere {<8,.7,-16>,1.4texture { spiral1 5 scale 0.5 texture_map{ [0.25 pigment{ color rgbf <1,0.65,0.2,0>}normal { bumps 0.5 scale 0.25}finish { phong 0.2 reflection 0.30}][0.25 pigment{ color rgbf <1,1,1,1>} ][0.75 pigment{ color rgbf <1,1,1,1>} ][0.75 pigment{ color rgbf <1,0.65,0.2,0>}normal { bumps 0.5 scale 0.25}finish { phong 0.2 reflection 0.30}]} // end of texture_maprotate<90,0,0>} // end of texture -------------------------------------
}//球形摆件大 //球形摆件中
sphere {<3.2,.4,-16>,.9texture { spiral1 5 scale 0.5 //---------------- texture_map{ [0.25 pigment{ color rgbf <1,0.65,0.2,0>}normal { bumps 0.5 scale 0.25}finish { phong 0.2 reflection 0.30}][0.25 pigment{ color rgbf <1,1,1,1>} ][0.75 pigment{ color rgbf <1,1,1,1>} ][0.75 pigment{ color rgbf <1,0.65,0.2,0>}normal { bumps 0.5 scale 0.25}finish { phong 0.2 reflection 0.30}]} // end of texture_maprotate<90,0,0>} // end of texture -------------------------------------
}//球型摆件中//球型摆件小
sphere {<1.5,.2,-16>,0.6texture { spiral1 5 scale 0.5 //---------------- texture_map{ [0.25 pigment{ color rgbf <1,0.65,0.2,0>}normal { bumps 0.5 scale 0.25}finish { phong 0.2 reflection 0.30}][0.25 pigment{ color rgbf <1,1,1,1>} ][0.75 pigment{ color rgbf <1,1,1,1>} ][0.75 pigment{ color rgbf <1,0.65,0.2,0>}normal { bumps 0.5 scale 0.25}finish { phong 0.2 reflection 0.30}]} // end of texture_maprotate<90,0,0>} // end of texture -------------------------------------
}//球型摆件小//地柜画横
box {<-12.8,-7.8,-17>,<-18,-4.5,-16> pigment { image_map {jpeg "C:\Users\sun\Desktop\sunset.jpg"map_type 5} }finish { ambient .4}
}//地柜画横//地柜画框横左
box {<-12.6,-8.1,-17>,<-12.8,-4.4,-16.8>texture{ DMFWood3 normal { wood 0.5 scale 0.05 rotate<0,0,0> }finish { phong 1 } rotate<0,0,0> scale 1 translate<0,0,0>} // end of texture
}//地柜画框横左//地柜画框横下
box {<-12.6,-8,-17>,<-18,-7.8,-16>texture{ DMFWood3 normal { wood 0.5 scale 0.05 rotate<0,0,0> }finish { phong 1 } rotate<0,0,0> scale 1 translate<0,0,0>} // end of texture
}//地柜画框横下//地柜画框横上
box {<-12.6,-4.5,-17>,<-18,-4.3,-16>texture{ DMFWood3 normal { wood 0.5 scale 0.05 rotate<0,0,0> }finish { phong 1 } rotate<0,0,0> scale 1 translate<0,0,0>} // end of texture
}//地柜画框横上//地柜画竖
box {<-11.5,-8,-17>,<-6.5,-2,-16> pigment { image_map {jpeg "C:\Users\sun\Desktop\sunrise.jpg"map_type 1} }finish { ambient .4}
}//地柜画竖//地柜画框竖左
box {<-6.6,-8,-17>,<-6.4,-6.8,-16>
}//地柜画竖左//地柜画框竖下
box {<-6.5,-8,-17>,<-7.6,-7.7,-16>
}//地柜画竖下//地柜画框竖右
box {<-11.4,-8.1,-17>,<-11.6,-6.7,-16>
}//地柜画框竖右//地柜画框竖下
box {<-10.5,-8,-17>,<-11.6,-7.7,-16>
}//地柜画框竖下//地柜柜门
//左扇
box {<-5.5,-11.5,-11.75>,<-10,-8.3,-12>texture{ T_Wood10 normal { wood 0.5 scale 0.05 turbulence 0.0 rotate<0,0,0> }finish { phong 1 } rotate<0,0,0> scale 0.5 translate<0,0,0>} // end of texture
} //右扇
box {<-10.8,-11.5,-11.75>,<-14.5,-8.3,-12>texture{ T_Wood10 normal { wood 0.5 scale 0.05 turbulence 0.0 rotate<0,0,0> }finish { phong 1 } rotate<0,0,0> scale 0.5 translate<0,0,0>} // end of texture
}//地柜柜门//地柜柜门把手
//左扇
sphere {<-9.7,-10,-11.75>,.15
} //左扇
sphere {<-11.1,-10,-11.75>,.15
}//右扇//壁柜柜门
box { <-15,3.7,-11.5>,<-5.4,.3,-12>texture{ T_Wood10 normal { wood 0.5 scale 0.05 turbulence 0.0 rotate<0,0,0> }finish { phong 1 } rotate<0,0,0> scale 0.5 translate<0,0,0>} // end of texture
}//壁柜柜门//壁柜柜门把手
sphere { <-10.2,.7,-11.5>,.15
}//壁柜柜门把手//书
//下层
box {<4,-6.3,-5><6.5,-7,-3>pigment { White }
}//下层//上层
box {<4.5,-6,-3.5><7,-6.3,-5>pigment { White }
}//上层
//书//水杯
cone {<3.5,-5.5,-1>,.5<3.5,-7,-1>,.5material{ texture { NBglass } // end of texture interior{ I_Glass } // end of interior} // end of material -------------------finish { phong 1 }normal { bumps 1 }
}//水杯//水
cone {<3.5,-6,-1>,.4<3.5,-7,-1>,.4material{ texture { Orange_Glass } // end of texture interior{ I_Glass } // end of interior} // end of material -------------------}//水//盆栽
//圆柱形花盆
cylinder{ <7.5,-7,-1>,<7.5,-6.2,-1>, .65opentexture { T_Silver_1A//normal { bumps 0.5 scale 0.15} finish { phong 1}} // end of texture } //圆柱形花盆//绿植
sphere { <7.5,-6.9,-1>, .65texture { pigment{ color rgb<0.35,0.55,0>*0.9} normal { bumps 1.75 scale 0.05} finish { phong 0.5 reflection{ 0 metallic 0} } } scale<1,1,1> rotate<0,0,0> translate<0,1,0>
} //绿植
//盆栽
大二的课设,基本都用的内置函数,很简单。
这篇关于pov-ray软件绘图--室内一角的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!