-
PT100换算表对应定位光与定向光
资源介绍
6.3 定位光与定向光
6.3 定位光与定向光
上一节中介绍的光照效果都是基于定位光光源的,定位光光源类似于现实生活中的白炽灯泡,
其在某个固定的位置,发出的光向四周发散。定位光照射的一个明显特点就是,在给定光源位置
的情况下,对不同位置的物体产生的光照效果不同。
现实世界中并不都是定位光,例如,照射到地面上的阳光,光线之间是平行的,这种光称为
定向光。定向光照射的明显特点是,在给定光线方向的情况下,场景中不同位置的物体反映出的
光照效果完全一致。图 6-16 中对定位光与定向光的照射特点进行了比较。
▲图 6-16 定位光和定向光
了解了定位光与定向光的区别后,接下来将通过一个案例 Sample6_6 介绍定向光效果的开发,
其运行效果如图 6-17 所示。
▲图 6-17 案例 Sample6_6 的运行效果图
说明
图 6-17 中左侧的图表示定向光方向从左向右照射的情况,右侧的图表示定向光
方向从右向左照射的情况。从左右两幅效果图的对比中可以看出,在定向光方向确
定的情况下,其对场景中任何位置的物体都产生相同的光照效果。
了解了定向光的基本原理及案例的运行效果后,就可以进行案例的开发了。由于实际上本案
例仅是将案例 Sample6_5 复制了一份并进行了修改,因此,这里仅给出修改的主要步骤,具体如
下所列。
(1)由于使用定向光需要将光线的方向由 Java 程序传入渲染管线,为了方便开发,首先需要
对 MatrixState 类进一步升级,在其中增加设置定向光方向并存入缓冲的相关代码,具体情况如下。
代码位置:见随书中源代码/第 6 章/Sample6_6/src/com/bn/Sample6_6 目录下的 MatrixState.java。
1 public static float[] lightDirection = new float[] { 0, 0, 1 };//定向光方向向量数组
2 public static FloatBuffer lightDirectionFB; //定向光方向向量数据缓冲
3 public static void setLightDirection(float x, float y, float z) {//设置定向光方向的方法
4 llbbL.clear(); //清空缓冲
5 //将定向光方向向量的 x、y、z 分量存入数组
- 上一篇: AMF编码解码演示版
- 下一篇: CXP-001-2021.pdf