此为 Mathematica 4 文档,内容基于更早版本的 Wolfram 语言
查看最新文档(版本11.1)

2.9.12 亮度和曲面特性

用默认设置 Lighting->True 时, Mathematica 用模拟亮度模型给三维图形的多边形着色.
Mathematica 允许给一个对象的亮度指定两个分量. 第一个是环境光线, 它产生对象的统一阴影. 第二个是一些每个都具有位置和颜色的点光源光线. Mathematica 将这些光源的光线加在一起决定一个多边形的亮度.

模拟亮度选项

Mathematica 使用的默认光有 3 个点光源,但没有环境分量. 光源的颜色分别为红, 绿, 蓝,位于对象右侧  处.

这是用默认模拟亮度的曲面

这是增加了环境光但去掉点光源后的结果

这里在图像的左侧增加了一个点光源

Mathematica 中光源的位置用显示坐标系中给出.  ,坐标在平面外. 使用这种坐标 系可以保证即使在视点和对象的相对位置变化时光源相对于 观察者也是固定的.
书中图形长廊的后面给出了不同光源位置的例子.

即使视点改变,光源总是在图像的左侧

所看到多边形的颜色不仅依赖于照射该多边形的光线,也依赖于该多边形如何 反光. 用颜色指令 SurfaceColor 来指定多边形的反光情况.
当不明确使用 SurfaceColor 指令时,Mathematica 认为所有多边形有不光滑的白色 表面,多边形反射所有射来的光线,而且向各个方向的反射相同. 这个模型对白纸等材料是合适的.
SurfaceColor 可以设计更复杂的模型,其基本思想是要区分漫反射和 镜面反射这两种不同的反射类型.
在漫反射中,射到一个表面的光线被均匀向各个方向反射,这类反射发生时, 曲面显得有些粗糙和单调.漫反射服从Lambert 反射定律:反射光的强度是入射 光强度的   时无反射光.
在镜面反射中,曲面像镜子一样反射光线,此时曲面有明亮的外表. 对理想的镜面,光线的入射角和反射角相等. 大部分材料有一定程序的散射,使反射光线分布在一定范围的角度内. Mathematica 通过指定一个镜面元素反射指数给出反射光线分布的范围,该反射指数按 Phong 光学模型确定. 当 n 确定后,从反射角偏离  角度处光线的强度为  . 当 n 趋于无穷时,曲面就完全像镜子一样. 当 n 减少时,曲面的光泽就减小,当 n= 0 时, 曲面就完全变成了漫反射面. n 的变化范围一般是从一到几百.
大部分材料的反射是漫反射和镜面反射混合的,而且它们且有一定的固有颜色. 当入射光是白色时,反射光就是该曲面材料的颜色. 当入射光不是白色时, 反射光的颜色就是入射光颜色和材料内在颜色的组合.
Mathematica 中,可以用与漫反射相关的内在颜色和一个与镜面反射有关的量来 反映反射特性. 无反射时必须定义对应的内在颜色为黑色,或 GrayLevel[0]. 对相当白的材料,可以指定内在颜色为 GrayLevel[a] 是这个曲面的反射能力或反射率.
在图形长廊的后面给出了一些由各种反射参数所得结果的例子.

设置多边形的表面光照特性

调入一个包含各种图形对象的程序包

Sphere 产生一个表示球面的图形对象

在默认暗淡白色的情况下显示该球面

此处令该球面有较低的漫反射较高的镜面反射. 于是,该球面在靠近光源的地方的 "镜面高亮度",其它地方较暗淡

在设置了光源和表面颜色后,要确认从一个多边形反射的光线总强度不超过 1. 否则就会产生奇怪的效果.