构建世界


预计完成时间:2 分钟

4.10   光照

最后,就像那句经典的话一样:“要有光!” 这是设计一个 world 时最后一个重要元素。

light 标签用于指定世界中的光源类型。

请把下面这段光源定义复制到 world 标签内部。

复制并粘贴

In [ ]:
<light type="directional" name="sun">
    <pose>0 0 10 0 0 0</pose>
    <cast_shadows>true</cast_shadows>
    <intensity>1</intensity>
    <diffuse>0.8 0.8 0.8 1</diffuse>
    <specular>0.2 0.2 0.2 1</specular>
    <attenuation>
        <range>1000</range>
        <constant>0.9</constant>
        <linear>0.01</linear>
        <quadratic>0.001</quadratic>
    </attenuation>
    <direction>-0.5 0.1 -0.9</direction>
</light>

光源的 <type> 可以是 pointdirectionalspot

<pose> 表示光源元素的位置(x、y、z)和姿态(roll、pitch、yaw),其参考系由 relative_to 属性指定;在本例中(忽略 relative_to),它相对于 world。

<cast_shadows> 为 true 时,光源会投射阴影。<diffuse><specular> 分别表示光照颜色的漫反射和镜面反射属性。

<attenuation> 用于指定光照衰减属性,包括:

  • <range> 表示光照作用范围。
  • <constant> 是常数衰减因子,1 表示不衰减,0 表示完全衰减。
  • <linear> 是线性衰减因子,1 表示随距离均匀衰减。
  • <quadratic> 是二次衰减因子,它会让衰减曲线带有弯曲效果。
  • <direction> 表示光照方向,只适用于 spot 和 directional 类型的光源。