您的位置:首页 > 其它

POV-Ray简单上手教程——第一幅图像和基础图形

2016-05-10 16:00 841 查看

第一幅图像和基础图形

     在本篇中,我们将会用POV-Ray渲染出我们的第一幅图像,以及一些其他简单的图形物体(球,平面,正方体)。

1.坐标系


左手系坐标。Z轴指向屏幕里面(了解POV-Ray坐标系,有利于我们渲染图像,比如一些位置信息)。

2.添加INCLUDE文件

创建一个.pov类型的文件后,用POV-Ray打开,进行编辑(当然,你也可以用其他的文本编辑器进行编辑)。首先,我们就需要include一些基本文件,来构建我们的场景(这一点和一些语言的编程是很相像的)。

#include "colors.inc"    // The include files contain
#include "stones.inc"    // pre-defined scene elements


第一个文件,是加入颜色,第二个是加入石头的Texture的头文件(他们都是以.inc结尾的)。另外,我们还可以加入一些其他的文件,以后会继续用到。这里,只是为了得到一幅简单的图像,这两个头文件足够。

3.添加摄像机

camera {
location <0, 2, -3>
look_at  <0, 1,  2>
}
location是摄像机所在位置,look_at是摄像机指向方向。后面<x,y,z>是他在坐标系中的位置信息。

4.描述物体

sphere {
<0, 1, 2>, 2
texture {
pigment { color Yellow }
}
}
这里是创建一个球体(sphere)<0,1,2>是球心所在位置;2是半径。texture{}设置纹理。pigment是一个关键字。color Yellow设置为黄色(注意颜色首字母大写)
关于颜色,可以有几种使用方式:
color red 1.0 green 0.8 blue 0.8

color rgb <1.0, 0.8, 0.8>

rgb <1.0, 0.8, 0.8>

5.定义光源

light_s
4000
ource { <2, 4, -3> color White}
light_source{}是关键字,其他就不做过多解释了,很直接明了

最后是全部代码:
#include "colors.inc"
background { color Cyan }
camera {
location <0, 2, -3>
look_at  <0, 1,  2>
}
sphere {
<0, 1, 2>, 2
texture {
pigment { color Yellow }
}
}
light_source { <2, 4, -3> color White}
加入的background是设置背景的,这里设置背景颜色为:Cyan
渲染效果如图:



其他基础图形

1.box 

box
{
<-1,0,-1>,
<1,0.5,3>
texture
{
T_Stone25  //设置纹理效果
scale 4    //设置比例
}
rotate y*20
}


(摄像机位置没有调整好,但是我们可以看到一块就有大理石材质的长方体)

2.cone(圆锥)

cone
{
<0,1,0>, 0.3
<1,2,3>, 1.0    //两个圆的坐标及半径
open    //设置是否开口
texture
{
T_Stone25
scale 4
}
}

3.cylinder

cylinder
{
<0,2,0>,
<-2,2,3>,
0.5
open
texture{T_Stone25 scale 4}
}




4.plane

plane
{
<0,1,0>,-1
pigment
{
checker color Red, color Blue  //红蓝相间
}

}



5.Torus(环形)

基础图形:
#include "colors.inc"

camera
{
location <0,1,-25>
look_at 0
angle 30
}

background { color Gray50}
light_source{<300,300,-1000> White}

torus
{
4,1
rotate -90*x
pigment {Green}

}




高级变形(1):
#include "colors.inc"

camera
{
location <0,1,-25>
look_at 0
angle 30
}

background { color Gray50}
light_source{<300,300,-1000> White}

#declare Half_Torus=difference      //difference:A与B两个物体。效果为:在A中去除AB相交的部分
{
torus
{
4,1
rotate -90*x

}
box{<-5,-5,-1>,<5,0,1>}
pigment {Green}

}

#declare Flip_It_Over=180*x;          //declare声明,便于后面调用
#declare Torus_Translate=8;
union
{
object{Half_Torus}

object
{
Half_Torus
rotate Flip_It_Over
translate Torus_Translate*x
}

object
{

Half_Torus

translate Torus_Translate*x*2
}

object
{
Half_Torus

rotate  Flip_It_Over

translate Torus_Translate*x*3

}

object
{
Half_Torus

rotate  Flip_It_Over
translate -x*Torus_Translate
}

object
{
Half_Torus

translate -x*Torus_Translate*2

}

object
{
Half_Torus
rotate  Flip_It_Over
translate -x*Torus_Translate*3
}

object
{
Half_Torus
translate -x*Torus_Translate*4
}

rotate y*45

translate z*90

}
蛇形图案



高级变形(2):
#include "colors.inc"

camera
{
location <0,1,-25>
look_at 0
angle 30
}

background { color Gray50}
light_source{<300,300,-1000> White}

#declare Half_Torus=difference
{
torus
{
4,1
rotate -90*x

}
box{<-5,-5,-1>,<5,0,1>}

}

#declare Flip_It_Over=180*x;
#declare Torus_Translate=8;

#declare Chain_Segment=cylinder
{
<0,4,0>,<0,-4,0>,1

}

#declare Chain_Gold=texture
{
pigment{BrightGold}
finish
{
ambient .1
diffuse .4
reflection .25
specular 1
metallic
}
}

#declare Link=union
{
object
{
Half_Torus
translate y*Torus_Translate/2

}
object
{
Half_Torus
rotate Flip_It_Over
translate -y*Torus_Translate/2
}
object
{
Chain_Segment
translate x*Torus_Translate/2
}
object
{
Chain_Segment
translate -x*Torus_Translate/2
}

texture{Chain_Gold}
}

#declare Link_Translate=Torus_Translate*2-2*y;

#declare Link_Pair=union
{
object{Link}
object
{
Link
translate   y*Link_Translate
rotate y*90
}

}

#declare Chain=union
{
object {Link_Pair}
object
{
Link_Pair
translate y*Link_Translate*2
}
object
{
Link_Pair
translate y*Link_Translate*4
}
object
{
Link_Pair
translate y*Link_Translate*6
}
object
{
Link_Pair
translate -y*Link_Translate*2
}
object
{
Link_Pair
translate -y*Link_Translate*4
}
object
{
Link_Pair
translate -y*Link_Translate*6
}
}

object {Chain scale .1 rotate <0,45,-45>}


链条:



(好吧,关于Torus这部分,我偷懒了,其中有一些东西没有解释,但大家应该能够了解,如果有问题,大家可以留言,或者翻阅官方文档)

本篇结束!!!


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  POV-Ray