梁某人

发展才是硬道理

导航

SunFlow场景文件的Light代码块

概述:

     使用 sRGB nonlinear 关键字去标识我们常用的颜色空间;图像光源(IBL)和阳光(SunSky)不发出光子,所以不会看到光线,其他所有光线都会发射光子;

 采样:

     采样的大小决定了图像的质量,设置时应该从小开始不断试验,直到合适为止;

  • 可衰减光源:

     光强随着距离增加而减弱的光源,可以通过把power/radiance参数设置为负数从场景中移除光源;

  1. 点光源:
    light {
    type point
    color { "sRGB nonlinear" 1.000 1.000 1.000 } /* 颜色 */
    power 100.0 /* 光强,以瓦特计算 */
    p 1.0 3.0 6.0 /* 位置 */
    }
  2. 网格光源/片光源
    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
    }
  • 非衰减光源:
    1. 球光源:
      light {
      type spherical /* 球面光 */
      color { "sRGB nonlinear" 1.000 1.000 1.000 } /* 颜色 */
      radiance 100.0 /* 光强 */
      center 5 -1.5 6 /* 球心 */
      radius 30 /* 半径 */
      samples 16 /* 采样 */
      }
    2. 直射光:
      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 /* 光强 */
      }
  • 无限远光源:
    1. 图像光源
    2. 阳光
      light {
      type sunsky
      up 0 0 1 /* 控制高度(z平面) */
      east 0 1 0 /* 控制方位 */
      sundir 0.5 0.2 0.8 /* 方向? */
      turbidity 6.0 /* 混乱度?*/
      samples 128
      }
    其他略过

posted on 2009-02-11 16:24  涛仔28  阅读(268)  评论(0编辑  收藏  举报