亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Flash三維引擎的虛擬布光系統(tǒng)的設計與開發(fā)

        2012-12-31 00:00:00石其樂
        計算機時代 2012年12期

        摘 要: 虛擬布光是指使用者借助于攝影布光模擬軟件可以像在真實的攝影棚內一樣完成各種燈光強度和方向的調整,所取得的效果等價于真實影棚內所取得的效果。介紹了虛擬布光系統(tǒng)的設計思想、開發(fā)工具和具體實現(xiàn)方法。研究了視圖的創(chuàng)建、三維拍攝主體的創(chuàng)建、三點布光的光源創(chuàng)建、光源有形化、光源的選擇、光源強度調節(jié)和光源位置調節(jié)等實用技術。應用Flash AS3三維引擎開發(fā)虛擬布光系統(tǒng)可為開展網上虛擬實驗教學提供借鑒。

        關鍵詞: Flash三維引擎; 虛擬布光; 虛擬實驗; 三點布光

        中圖分類號:TP311.1 文獻標志碼:B 文章編號:1006-8228(2012)12-29-02

        Design and development of virtual lighting arrangement system

        based on Flash three-dimensional engine

        Shi Qile

        (Faculty of science technolology, Zhejiang International Studies University, Hangzhou, Zhejiang 310012, China)

        Abstract: Virtual lighting arrangement (VLA) means that the user can adopt simulation software of photographic lighting arrangement to adjust the direction and strength of lights in computer with equal effects in real photo studio. The aim and ideas of VLA system design, and its developing tools are described. The implementation methods are presented, together with how to create the viewport, 3D shooting objects and three-point lighting, how to form and choose light source, how to adjust lighting strength and position. It will be a good reference for virtual experiment instructions in online courses.

        Key words: flash three-dimensional engine; virtual lighting arrangement; virtual experiments; three-point lighting

        0 引言

        攝影布光是商業(yè)攝影課程的重要內容。虛擬布光是指使用者借助于攝影布光模擬軟件可以像在真實的攝影棚內中一樣完成調節(jié)各種光源的強度、方向,所取得的效果等價于真實影棚內所取得的效果。虛擬布光系統(tǒng)優(yōu)勢:一是可有效緩解學校經費、場地、器材等方面的困難;二是在網絡課程中開展虛擬實驗教學能夠突破傳統(tǒng)實驗對“時、空”的限制。

        使用Adobe Flash Professional CS5及其3D引擎開發(fā)虛擬布光系統(tǒng)有以下優(yōu)勢:①生成的swf文件較小并可發(fā)布在網上,可整合在網絡課程中開展虛擬實驗教學,并且無需安裝插件;②Adobe Flash Professional CS5中ActionScript 3.0已經成為比較成熟的計算機語言,為虛擬布光軟件實現(xiàn)交互提供支持;③Away3D是flash或flex上的一個功能強大的3D引擎,是專為Flash表現(xiàn)三維對象而開發(fā)ActionScript 3.0的類,Away3D提供的四個基本構件view視口、scene場景、camera攝像機和3D物體適合于構建三維虛擬布光場景。

        1 虛擬布光系統(tǒng)的設計

        三點布光(如圖1所示的三點布光光路圖)是攝影、攝像時,運用主體光、輔助光、輪廓光三種基本光進行照明布置,能將三維物體的立體感、質感和縱深感的基本造型呈現(xiàn)在二維照片、屏幕上。三點布光,是攝影布光中的核心原理。理解了三點布光原理,在布光中就有了方向,對光的定位就有了設計依據。本系統(tǒng)是以開展虛擬實驗教學為目的的軟件,主要實現(xiàn)三點布光。在虛擬布光系統(tǒng)的場景中創(chuàng)建三個光源(可分別作為主體光、輔助光、輪廓光),學生可通過鼠標或鍵盤分別改變這三個光源的位置與亮度。并實時觀察布光后的模擬效果,最終達到掌握三點布光方法。

        虛擬布光系統(tǒng)設計了頂視圖和前視圖兩個視圖來表示三維虛擬布光場景,虛擬布光系統(tǒng)界面如圖2所示。在頂視圖中可調節(jié)三個光源的位置與亮度,在前視圖中可以觀察調節(jié)光源后的模擬布光效果,調整的位置與亮度數(shù)據可以顯示出來。

        2 虛擬布光系統(tǒng)的實現(xiàn)

        2.1 視圖的創(chuàng)建

        為了從兩個視角觀察一個場景要創(chuàng)建頂視圖和前視圖。通過Away3D的RectangleClipping類創(chuàng)建兩個視圖并確定兩個視圖攝像機的位置來設定左邊為頂視圖,右邊為前視圖。

        2.2 三維拍攝主體的創(chuàng)建

        在Flash的Away3D引擎中,使用提供的類可以創(chuàng)建一些簡單規(guī)則的三模型(例如立方體,球體等),但是對于復雜任意的三維拍攝主體創(chuàng)建比較困難,所以要引用外部的三維模型。AS3GeomClassExporter是3DMAX插件,可以將3DMAX中的三維模型轉換成AS代碼(ActionScript 3.0創(chuàng)建該模型的類)。由于一般在3DMAX中三維拍攝主體模型點和面比較多,數(shù)據量也就較大,這樣應用在主程序中會使程序運行速度變慢,所以在導出之前在3DMAX中要對三維模型進行優(yōu)化和塌陷操作。得到AS3創(chuàng)建三維拍攝主體的類后,在主程序中創(chuàng)建所要的拍攝主體并給該主體添加材質。由于flash中默認導入的3D模型是線框材質的,燈光對其不起作用,所以我們需要在3D模型上添加PhongColorMaterial材質。具體代碼如下:

        Var colorMaterial:PhongColorMaterial=

        new PhongColorMaterial(0x666666);

        var the3DModel:MyObject=new MyObject();

        the3DModel.material=colorMaterial;

        myScene.addChild(the3DModel);

        以上代碼的作用分別是:定義材質、創(chuàng)建拍攝主體三維模型(MyObject即為使用插件導出的創(chuàng)建拍攝主體的類)、將材質添加到拍攝主體三維模型上、將拍攝主體三維模型添加到場景中。

        2.3 三點布光的光源創(chuàng)建

        在Flash Away3D引擎中有AmbientLight3D,DirectionalLight3D和PointLight3D三種燈光的類分別表示點光源、定向光、環(huán)境光。根據攝影布光的實際需求選擇DirectionalLight3D類,在本虛擬布光軟件中創(chuàng)建三個光源(可分別作為主體光、輔助光、輪廓光),創(chuàng)建其中一光源的代碼如下:

        private var light:DirectionalLight3D;

        light=new DirectionalLight3D();

        light.direction=new Vector3D(170,0,180);

        myScene.addLight(light);

        以上代碼作用分別是:定義一個定向光源、給定向光源一個方向、將燈光添加到場景中。

        2.4 光源有形化和光源的選擇

        Away3D中的光源在三維空間的位置是由參數(shù)表示的,沒有具體的實物來表示是無形的,在虛擬布光場景中無法看到光源,只能通過光源照在三維模型上反射出來的光才能感知光源的存在,為了選擇和調整光源,創(chuàng)建小立方體來表示光源,小立方體的位置變量和光源的位置變量設置成一樣,小立方體所在的位置就是光源的位置,從而通過小立方體來選擇和調整光源。按以上思路創(chuàng)建三個小立方體(外觀顏色為綠、藍、黃)分別表示三個光源。

        對三個光源的調節(jié)前提條件是選擇,選擇哪個光源就是對哪個光源的位置和亮度進行調節(jié),并且被選擇光源表示選中狀態(tài)(比如用紅色表示選中),激活光源1(外觀顏色為綠的光源)的代碼如下(激活其他光源的代碼同理):

        flag=1;

        color=new ColorMaterial(0xff0000);

        color01=new ColorMaterial(0x00ff00);

        color02=new ColorMaterial(0x0000ff);

        color03=new ColorMaterial(0xffff00);

        lightbox01.material=color;

        lightbox02.material=color02;

        lightbox03.material=color03;

        其中,flag=1表示光源1被選中, 用紅色表示,同時恢復違背選中的光源2、光源3原有的外觀顏色。

        2.5 調節(jié)光源強度

        光源強度的增加或減小是以鼠標單擊按鈕方式完成的,所以要注冊對應的光源強度的增加或減小的鼠標事件偵聽函數(shù)與創(chuàng)建鼠標事件偵聽函數(shù)。調節(jié)光源強度通過改變Away3D引擎中的定向光源DirectionalLight3D類的屬性brightness來實現(xiàn)。由于有三個光源,所以要判斷選中的是哪個光源,再針對這一光源改變其rightness的屬性。調節(jié)光照強度的偵聽函數(shù)代碼如下(以增加光照強度為例):

        private function increaseLightbrn(e:MouseEvent):void

        { if(flag==1)

        if(light01.brightness>=10)

        light01.brightness=10;

        else

        light01.brightness+=.5;

        else if(flag==2)

        if(light02.brightness>=10)

        light02.brightness=10;

        else

        light02.brightness+=0.5;

        else if(flag==3)

        if(light03.brightness>=10)

        light03.brightness=10;

        else

        light03.brightness+=0.5;

        }

        2.6 調節(jié)光源的位置

        調節(jié)光源的位置包括相對于拍攝主體光源的左右前后移動和上下移動,可以通過鍵盤對選中的光源控制光源的左右前后移動。需要注冊對應的鍵盤事件偵聽函數(shù)與創(chuàng)建鍵盤事件偵聽函數(shù)。光源高度的上下移動以鼠標單擊按鈕方式完成的,所以要注冊對應的鼠標事件偵聽函數(shù)與創(chuàng)建鼠標事件偵聽函數(shù)。以上對調節(jié)光源的位置都是通過改變Away3D引擎中的定向光源DirectionalLight3D類的屬性direction來實現(xiàn)的。鍵盤控制光源移動主要代碼如下(以前后移動為例):

        switch (event.keyCode) {

        case Keyboard.UP:

        if(flag==1) {

        lightbox01.z+=19;

        light.direction=newVector3D(-lightbox01.x,-lightHeight,

        -lightbox01.z)}

        else if(flag==1) {

        lightbox02.z+=19

        light02.direction=new Vector3D(-lightbox02.x,

        -lightHeight02,- lightbox02.z)}

        break;

        3 結束語

        在攝影布光模擬系統(tǒng)中可以像在真實的攝影棚內中一樣完成調整各種燈光強度、方向,所取得的效果類似于真實影棚內所取得的效果。為了增加該系統(tǒng)的實用性,今后還需將攝影布光模擬系統(tǒng)與真實的布光效果做對比研究,并實現(xiàn)可任意增加光源、添加多個不同拍攝對象的功能。應用Flash AS3三維引擎Away3D開發(fā)虛擬布光系統(tǒng),文件較小、無需插件,可方便地發(fā)布在網上,可為在網絡課程中開展網上虛擬實驗教學提供借鑒。目前已經有很多比較成熟的Flash AS3引擎,開發(fā)者可根據開發(fā)項目的需求進行選擇,這樣可以大幅度地提高應用Flash開發(fā)項目的效率。

        參考文獻:

        [1] Rob Bateman,Richard Olsson. The Essential Guide to 3D in Flash [M].

        New York:Apress company,2010.

        [2] Matthew Casperson. Away3D 3.6 Essentials[M]. Birmingham:

        Packt Publishing Ltd,2011.

        [3] 陳琦昌,劉彩霞.商業(yè)攝影[M].中國紡織出版社,2009.

        [4] 蘇民安,蘇溯.商業(yè)攝影[M].安徽美術出版社,2009.

        [5] 孫穎.Flash ActionScript 3 殿堂之路[M].電子工業(yè)出版社,2007.

        99热在线播放精品6| 中国女人内谢69xxxx免费视频| 中文字幕在线亚洲精品| 激情内射亚州一区二区三区爱妻 | 久久精品娱乐亚洲领先| 国产一级毛片AV不卡尤物| 国产毛片三区二区一区| 久久久久久久妓女精品免费影院| 国产精品久久久亚洲第一牛牛 | 日本区一区二区三视频| 天天躁夜夜躁狠狠躁2021| 豆国产95在线 | 亚洲| 99在线无码精品秘 入口九色| 成年男女免费视频网站点播| 久久精品免费一区二区喷潮| 免费国产黄网站在线观看| 亚洲精品123区在线观看| 香蕉蜜桃av一区二区三区| 亚洲国产精品久久久久久无码| 亚洲av日韩aⅴ无码色老头| 黄又色又污又爽又高潮动态图| 国产午夜精品一区二区三区视频| 精精国产xxxx视频在线播放器| 蜜臀av一区二区三区精品| av中文字幕一区不卡| 久久久久国产一区二区| 亚洲午夜成人片| av大片网站在线观看| 天天做天天爱夜夜爽毛片毛片| 亚洲国产精品无码专区| 国产精品一区二区久久| 日本高清中文一区二区三区| 中文字幕人妻少妇伦伦| 久久亚洲精品无码va白人极品| 窝窝影院午夜看片| 中文字幕亚洲精品人妻| 日韩av一区二区观看| 亚洲v欧美v国产v在线观看| 一区二区三区不卡在线| 蜜桃网站入口可看18禁| 国产精品毛片无遮挡|