PV3D學習筆記-光源

來源:互聯網
上載者:User

PV3D裡的光源似乎只有點光源,PointLight3D,而且不能直接作用於物體,必須通過接受光源的材質來傳遞。

點光源的建立一條代碼就夠,引用路徑org.papervision3d.lights.PointLight3D:

 

var lt:PointLight3D = new PointLight3D(true);

參數true是說明光源可見。

 

隨後是建立一種接受光照的材質,PV3D裡有這些材質可選:PhongMaterial,CellMaterial,GouraudMaterial

三種材質的建立參數都一樣,第一個是光來源物件,第二是光源顏色,第三個是氛圍顏色,第四個是反光層級,典型代碼如下:

var m:GouraudMaterial = new GouraudMaterial(lt,0xFFFFFF,0x000000,1);

然後就可以賦給各種模型,幾何體了。

如果要使用貼圖,也要光照,PV3D就不如Away3D靈活了,PV3D裡必須建立一個著色器材質對象,同時包含貼圖材質和光照材質,然後賦給模型,這樣才能顯示出來。三種光照材質都有對應的著色器材質:PhongShader,CellShader,GouraudShader,建立著色器材質的代碼也相同。然後用ShaderMaterial對象混合兩種材質即可。比如建立一個貼圖材質和一個PhongMaterial,代碼如下;

var mf:BitmapFileMaterial = new BitmapFileMaterial("test.jpg");var ms:PhongShader = new PhongShader(lt);var m:ShadedMaterial = new ShadedMaterial(mf, ms);

然後再將ShaderMaterial材質賦給模型。

 

需要說明的是,三個光照材質賦給立方體似乎有Bug,就是立方體的背光面邊緣也莫名其妙地發光了,只有球體的光照效果最好。

還需要說明的是,上次的DAE模型匯入方法還是不全對,Sketchup裡把模型建的複雜一點,匯入PV3D依然無法顯示。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.