background image

基于

Flash 三维引擎的虚拟布光系统的设计与开发

    摘 要: 虚拟布光是指使用者借助于摄影布光模拟软件可以像在真实的摄影棚内一样完成
各种灯光强度和方向的调整,所取得的效果等价于真实影棚内所取得的效果。介绍了虚拟布
光系统的设计思想、开发工具和具体实现方法。研究了视图的创建、三维拍摄主体的创建、三
点布光的光源创建、光源有形化、光源的选择、光源强度调节和光源位置调节等实用技术。应

Flash AS3 三维引擎开发虚拟布光系统可为开展网上虚拟实验教学提供借鉴。

  关键词:

 Flash 三维引擎; 虚拟布光; 虚拟实验; 三点布光

  

0 引言

  摄影布光是商业摄影课程的重要内容。虚拟布光是指使用者借助于摄影布光模拟软件可
以像在真实的摄影棚内中一样完成调节各种光源的强度、方向,所取得的效果等价于真实影
棚内所取得的效果。虚拟布光系统优势:一是可有效缓解学校经费、场地、器材等方面的困难;
二是在网络课程中开展虚拟实验教学能够突破传统实验对

“时、空”的限制。

  使用

Adobe Flash Professional CS5 及其 3D 引擎开发虚拟布光系统有以下优势:①生成

swf 文件较小并可发布在网上,可整合在网络课程中开展虚拟实验教学,并且无需安装

插件;②

Adobe Flash Professional CS5 中 ActionScript 3.0 已经成为比较成熟的计算机语言,

为虚拟布光软件实现交互提供支持;③

Away3D 是 flash 或 flex 上的一个功能强大的 3D 引

擎,是专为

Flash 表现三维对象而开发 ActionScript 3.0 的类,Away3D 提供的四个基本构件

view 视口、scene 场景、camera 摄像机和 3D 物体适合于构建三维虚拟布光场景。
  

1 虚拟布光系统的设计

  三点布光(如图

1 所示的三点布光光路图)是摄影、摄像时,运用主体光、辅助光、轮廓

光三种基本光进行照明布置,能将三维物体的立体感、质感和纵深感的基本造型呈现在二维
照片、屏幕上。三点布光,是摄影布光中的核心原理。理解了三点布光原理,在布光中就有了
方向,对光的定位就有了设计依据。本系统是以开展虚拟实验教学为目的的软件,主要实现
三点布光。在虚拟布光系统的场景中创建三个光源(可分别作为主体光、辅助光、轮廓光),
学生可通过鼠标或键盘分别改变这三个光源的位置与亮度。并实时观察布光后的模拟效果,
最终达到掌握三点布光方法。
  虚拟布光系统设计了顶视图和前视图两个视图来表示三维虚拟布光场景,虚拟布光系
统界面如图

2 所示。在顶视图中可调节三个光源的位置与亮度,在前视图中可以观察调节光

源后的模拟布光效果,调整的位置与亮度数据可以显示出来。
  

2 虚拟布光系统的实现

  

2.1 视图的创建

    为 了 从 两 个 视 角 观 察 一 个 场 景 要 创 建 顶 视 图 和 前 视 图 。 通 过

Away3D 的

RectangleClipping 类创建两个视图并确定两个视图摄像机的位置来设定左边为顶视图,右
边为前视图。
  

2.2 三维拍摄主体的创建

  在

Flash 的 Away3D 引擎中,使用提供的类可以创建一些简单规则的三模型(例如立方

体,球体等),但是对于复杂任意的三维拍摄主体创建比较困难,所以要引用外部的三维
模型。

AS3GeomClassExporter 是 3DMAX 插件,可以将 3DMAX 中的三维模型转换成 AS 代

码(

ActionScript 3.0 创建该模型的类)。由于一般在 3DMAX 中三维拍摄主体模型点和面比

较多,数据量也就较大,这样应用在主程序中会使程序运行速度变慢,所以在导出之前在
3DMAX 中要对三维模型进行优化和塌陷操作。得到 AS3 创建三维拍摄主体的类后,在主程