日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Away3D 4.0入门教程-- 这个世界的基础

發布時間:2024/6/21 综合教程 47 生活家
生活随笔 收集整理的這篇文章主要介紹了 Away3D 4.0入门教程-- 这个世界的基础 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

多數Flash程序員想要接觸3D項目的時候,應該都和我一樣,最關心的是怎么造一座山,怎么在場景里顯示流動的河水,或是怎么讓模型動起來(奔跑,攻擊,或是跳舞),又或是怎么才能給人物換裝,怎么讓人物裝備武器.

但是,請相信我,下面我們所說到的這些名詞,在教程真正開始之前,你必須得了解一下,或許它們粗淺的讓你覺得根本不值一看,但如果你是一個入門者,能了解一些基礎知識,它們終將在未來的某一天幫到你

我會盡量避免使用那些太專業不容易讓人理解的詞匯,如果哪位朋友覺得下面的內容不對,又或是說的不夠,請告訴我,我會在將來不斷的修改并完善這些內容,謝謝^^

Origin(原心,或稱之為起始點):
3D世界與物體的中心點,3D世界中的任何對象都會有一個Origin,不管是場景,3D模型,燈光,還是攝像機,它的所在位置是物體或場景的(0,0,0)坐標,你可能并不能在所有的3D引擎或3D軟件(如3dMax)中看到它,但它卻是真實存在并起著相應的作用的

Geometry(幾何形狀):
在Away3D中,Geometry類其實就是一個數據對象,它被用來保存3D物體的基礎數據,如頂點(vertices),法線(normals),UV數據,我們從外部加載進來的模型文件會被解析成一個Geometry實例并被保存在內存中

當然,我們也可以通過實例化一些Geometry的子類來創建一些基礎的幾何形狀數據
PlaneGeometry //平面
CubeGeometry //方塊
SphereGeometry //球形
CylinderGeometry //圓柱
CapsuleGeometry //膠囊

Material(材質):
我們也可以將它稱之為貼圖,基本的貼圖分三種,顏色貼圖,照片貼圖和線框貼圖(線框貼圖僅針對于線框類型對象使用),我們還能為貼圖設置透明度和燈光反射強度,以此來達到一些特殊效果

Mesh(網格):
Mesh是一個容器,如果我們為它設置形狀數據和貼圖后,我們就可以在場景中看到它,它可以是一個方塊,一個圓球,也可以是一個如汽車或樓房這樣的復雜模型,當然,它也可以僅僅只是一個點,一根線條,或是一個平面,一切取決于它所包含的Geometry數據內容

UV:
U,V是貼圖坐標的簡稱(它和3D模型的X, Y, Z軸是類似的),水平方向是U,垂直方向是V,通過這個二維平面的UV坐標系定義了圖片上每個點的位置的信息. 這些點與3D模型是相互聯系的, 以決定表面貼圖的位置. UV就是將圖像上每一個點精確對應到模型物體的表面. 在點與點之間的間隙位置由軟件進行圖像光滑插值處理. 這就是所謂的UV貼圖.

Normals(法線):
法線并不是一種實體線,它是一條垂直于曲線上節點和表面切線方向上的虛擬線,使用正負值來表示和區別多邊形上面和點的法向參數,并且只有法線為正值的點和面在場景中才可見,一般來說,由內部指向外部表示當前位置的法線為正向,如果將表面翻轉,也就改變了法線的方向,如果你的模型不是雙面顯示的話,那么負法向的那一面將會在視力窗口中不可見,并且不可被渲染

Light(燈光):
我們生存的這個世界必須有光,不然就是漆黑一片...
3D世界中也一樣,但不同的是,我們需要在3D世界中使用有限的幾種燈光類型來模擬真實現世界中的大多數可見光源(像紅外線這種不可見光源不在我們的討論之列)

目前Away3D 4.0中提供兩種光源
PointLight(點光源):這是最常用到的,我們可以用它來模擬太陽,月亮,或是臺燈的燈炮
DirectionalLight(投射光源):好吧,這貨可以用來模擬探照燈,或是月光透過窗戶的效果

View3D(視口):
這是整個3D世界的入口,猶如透過一個窗口看世界,Away3D中View3D類就是這個窗口,你可以在Flash中同時添加多個View3D實例,就好像在一面墻上砸出多個窗戶一樣,每個View3D實例可以指向同一個Scene3D,也可以指向不同的Scene3D,但請記住,即使所有的View3D都指向同一個Scene3D實例,也會造成性能的下降,所以通常情況下,我們只使用一個View3D實例

Scene3D(場景):
Scene3D就是窗戶外的風景,它在Flash的作用類似于Stage,所有的3D對象都需通過它來addChild,才能被顯示出來,你也同樣可以同時實例化多個Scene3D實例,但每個View3D每次只能被分配一個Scene3D

Camera3D(鏡頭):
我們前面說了窗戶和風景,好吧,我承認這比喻有點老套,但想要看到這些內容,還需要你的眼睛,Camera3D就相當于你的眼睛,睛,如果移動Camera3D的坐標就相當于你的眼睛在移動,但....如果移動Scene3D里的物體坐標呢?.....那就說明那個物體在移動......= =!

//范例:
var view:View3D = new View3D();
//View3D實例必須被添加到舞臺上才能正確生效
stage.addChild(view);

//創建一個長寬高都為500的立方體數據
var cubeGeometry:CubeGeometry = new CubeGeometry(500, 500, 500);
//創建一個單色的貼圖(材質)
var cubeMaterial:ColorMaterial = new ColorMaterial(0xFF0000);
//創建一個可視的Mesh對象,并設置形狀數據和貼圖
var cubeMesh:Mesh = new Mesh(cubeGeometry, cubeMaterial);
//將mesh添加到舞臺上
view.scene.addChild(cubeMesh);

//移動風景中的物體
cubemesh.z += 100;

//移動鏡頭,或是說移動你的眼睛....
view.camera.z = 100;

復制代碼

ObjectContainer3D:
順便提一下這個類,ObjectContainer3D類是Away3d中大多數3D可視對象的基類,
如果你想自己創建一個比較復雜的3D物體對象(如包含好幾個Mesh的對象),可以通過繼承它來實現自己的需要

總結

以上是生活随笔為你收集整理的Away3D 4.0入门教程-- 这个世界的基础的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。