POV-RAY基础教程 - 基本SDL(2)

本片介绍POV-RAY基本元素,同时编写基本的SDL文件并运行,由于POV-RAY是基于POV场景描述文进行图形渲染的,所以,首先需要了解和掌握POV文件的编写。

点击这里回到上一篇 POV-RAY教程系列 - 介绍(1)

第一副图像
了解POV-Ray的坐标系

首先,我们必须告诉POV-Ray我们的相机的位置以及它的方向。为此,我们使用3D坐标。POV-Ray的常用坐标系统是正y轴朝上,正x轴指向右边,正z轴指向屏幕,这种坐标系称为左手坐标系。

添加标准包含文件

可以使用我们个人喜欢的文本编辑器,我们创建一个名为demo.pov文件。某些版本的POV-Ray带有自己的内置文本编辑器,可能更容易使用。然后我们输入以下文字。输入区分大小写,大小写敏感。

#include“colors.inc”//包含文件包含
#include“stones.inc”//预定义的场景元素

第一个include语句读入各种有用颜色的定义。第二个包含语句读入石头纹理的集合。POV-Ray附带许多标准包含文件。其他感兴趣的是:

  #include“textures.inc”//预定义的场景元素
  #include“shapes.inc”
  #include“glass.inc”
  #include“metals.inc”
  #include“woods.inc”

他们读取预定义的纹理,形状,玻璃,金属和木材贴图。可以通过这些文件查看一下可用的形状和纹理。
我们应该只包括我们场景中需要的头文件。POV-Ray附带的一些包含文件非常大,如果我们不需要它们,我们应该考虑更好地节省解析时间和内存。在以下示例中,我们将仅使用colors.incstones.inc 包含文件。
我们可能在一个场景文件中包含众多数量的头文件。包含文件本身可能还包含其他的头文件,但最大嵌套包含层级不能超过十层
头文件搜索顺序,首先在当前目录中搜索include语句中指定的文件名。如果在当前目录中未找到您的.Inc文件,POV-Ray将搜索您指定的任何库路径。库路径是由+L 命令行开关或Library_Path选项设置的。有关库路径的更多信息,请参阅设置POV-Ray选项一章。
因为将包含文件保存在单独的目录中更方便使用,所以POV-Ray的标准安装会将这些文件放在c:\povray3\include目录中(c:\povray3将替换为您安装POV-Ray的实际目录)。

添加相机

camera声明定义相机位置以及它的方向。由x,y和z坐标定义摄像机的位置以及它的指向。我们使用向量描述坐标。通过在一对尖括号之间放置三个数值并用逗号分隔值来指定向量。我们将以下相机声明添加到场景中。

camera {
  location <0, 2, -3>
  look_at  <0, 1,  2>
}

简言之,location <0,2,-3>将摄像机放置在距离光线跟踪系统中心<0,0,0>的上面两个单位,远离屏幕三个单位处。默认情况下,+z进入屏幕,-z远离屏幕。同时look_at <0,1,2>旋转摄像机指向坐标<0,1,2>,这使得它在相机前面5个单元,比相机低1个单位。这look_at点应该是我们场景关注的焦点。

描述物体

现在摄像机已设置好记录场景,让我们在场景中放置一个黄色球体。我们将以下内容添加到场景文件中:

sphere {
  <0, 1, 2>, 2
  texture {
    pigment { color Yellow }
  }
}

第一个向量指定球体的中心。在此示例中,x坐标为零,因此它左右居中。y = 1在原点上一个单位。z坐标为2,即摄像机前面的五个单位。在中心向量之后是逗号,后跟半径,在这种情况下是半径。由于半径是球体宽度的一半,因此球体宽度为四个单位。

向物体添加纹理

在我们定义了球体的位置和大小之后,我们需要描述表面的外观。该texture语句指定了这些参数。纹理块描述对象的颜色,凹凸和完成属性。在此示例中,我们仅指定颜色。这是我们必须做的最低限度。除颜色外的所有其他纹理选项将使用默认值。
我们定义的颜色是我们希望物体在完全照明时看起来的样子。如果我们正在绘制一个球体的图片,我们将使用深色调的颜色来指示阴影侧和明亮的阴影在照明侧。然而,光线追踪为您解决了这个问题。我们只需要选择物体中固有的基本颜色,POV-Ray会根据场景中的光线使其变亮或变暗。因为我们定义了对象实际具有的基本颜色而不是它看起来如何,调用参数pigment
许多类型的颜色图案可用于颜料声明。关键字color指定整个对象是一种纯色而不是某种颜色模式。我们可以使用之前在标准包含文件中定义的颜色标识符之一 colors.inc
如果我们的需求没有可用的标准颜色,我们可以使用color关键字后跟依次定义我们自己的颜色redgreenblue指定要混合的红色,绿色和蓝色值。例如,可以通过以下方式指定漂亮的粉红色:

color red 1.0 green 0.8 blue 0.8

注意:国际而非美国形式的“颜色”也是可以接受的,并且可以在任何可以使用“颜色”的地方使用。
每个关键字后面的值应该在0.0到1.0之间。未指定的三个组件中的任何一个都将默认为0.也可以使用快捷方式表示法。以下产生相同的粉红色:

color rgb <1.0, 0.8, 0.8>

在许多情况下,color关键字是多余的,因此指定粉红色的最短方式是

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

科技与文明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值