登录 注册
当前位置:主页 > 资源下载 > 34 > PT100换算表对应定位光与定向光

PT100换算表对应定位光与定向光

  • 更新:2024-09-04 18:56:44
  • 大小:20.23MB
  • 推荐:★★★★★
  • 来源:网友上传分享
  • 类别:图像处理 - 音视频
  • 格式:PDF

资源介绍

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 分量存入数组