SunFlow场景文件的Light代码块
概述:
使用 sRGB nonlinear 关键字去标识我们常用的颜色空间;图像光源(IBL)和阳光(SunSky)不发出光子,所以不会看到光线,其他所有光线都会发射光子;
采样:
采样的大小决定了图像的质量,设置时应该从小开始不断试验,直到合适为止;
- 可衰减光源:
光强随着距离增加而减弱的光源,可以通过把power/radiance参数设置为负数从场景中移除光源;
- 点光源:
light {
type point
color { "sRGB nonlinear" 1.000 1.000 1.000 } /* 颜色 */
power 100.0 /* 光强,以瓦特计算 */
p 1.0 3.0 6.0 /* 位置 */
} -
网格光源/片光源
light {
type meshlight /* 网格光源 */
name meshLamp /* 光源的名字 */
emit { "sRGB nonlinear" 1.000 1.000 1.000 } /* 光线的颜色 */
radiance 100.0 /* 辐射强度,瓦特 */
samples 16 /* 采样,如果是大片的光源,应设置为0,从而使用全局和漫反射 */
points 4 /* 涉及的点,四个,下面是坐标 */
0.6 0.1 6.0
0.3 1.0 6.0
1.0 1.0 5.5
1.0 0.3 5.5
triangles 2 /* 负责发光的三角形,使用顶点索引的方式定义,每个三角形都会发光,消耗系统资源,以两面为宜 */
0 1 2
0 2 3
}
- 非衰减光源:
- 球光源:
light {
type spherical /* 球面光 */
color { "sRGB nonlinear" 1.000 1.000 1.000 } /* 颜色 */
radiance 100.0 /* 光强 */
center 5 -1.5 6 /* 球心 */
radius 30 /* 半径 */
samples 16 /* 采样 */
} - 直射光:
light {
type directional /* 直射光 */
source 4 1 6 /* 源位置 */
target 3.5 0.8 5 /* 射向的目标位置 */
radius 23 /* 光在目标散开的半径 */
emit { "sRGB nonlinear" 1.000 1.000 1.000 } /* 光色 */
intensity 100 /* 光强 */
}
- 球光源:
- 无限远光源:
- 图像光源
- 阳光
light {
type sunsky
up 0 0 1 /* 控制高度(z平面) */
east 0 1 0 /* 控制方位 */
sundir 0.5 0.2 0.8 /* 方向? */
turbidity 6.0 /* 混乱度?*/
samples 128
}