Alternativa3D 8 基本概念

來源:互聯網
上載者:User

1. 3D對象

■ Object3D

Object3D 是所有3D對象的基類,也是最簡單的3D對象,它定義了一個3D對象的基本屬性和方法。
Object3D可以作為容器包含其它3D對象,類似於2D中的 DisplayObjectContainer。

所有的3D對象都繼承自Object3D。3D對象大體上可區分為可視對象與不可視對象:
不可視對象
  ● Camera3D(3D攝像機)
  ● Light3D(3D燈光)
     ● AmbientLight(環境光線)
     ● DirectionalLight(方向性光源)
     ● OmniLight(點光源)
     ● SpotLight(聚光燈)
  ● Joint(骨骼關節)
可視對象
  ● AxisAlignedSprite(單一軸向正對攝像機的平面對象)
  ● Sprite3D(所有軸向正對攝像機的平面對象)
     ● AnimSprite(通過不斷更換材質形成動畫的Sprite3D)
  ● Mesh(空間網格)
     ● Decal(圖案)
     ● Plane(平面)
     ● Box(立方體)
     ● GeoSphere(幾何球體)
     ● SkyBox(天空盒)
     ● Skin(骨骼動畫)
  ● WireFrame(線框)

Alternativa3D 8 中的3D對象

■ Mesh

Mesh 可理解為空白間網格,是展示幾何體(Geometry)的地方,Geometry包含描述幾何體的頂點和三角面資訊。
幾何體在Mesh中的顯示形式為表面(Surface),表面是由一個序列的三角面構成,這些三角面通過Surface的材質進行顯示。或許把Surface想象成皮膚更容易理解一些。
Mesh、Geometry、Surface三者的關係是:Geometry為Mesh提供了頂點和三角面資訊,Mesh根據這些資訊建立Surface來顯示Geometry所描述的3D對象。

所有需要顯示的空間幾何體都繼承自Mesh類,不論是內建的基本幾何體,還是自訂幾何體(代碼建立或者外部匯入模型)都是通過Mesh進行展示的。
Alternativa3D通過擴充Mesh類為我們提供了 Decal、Plane、Box、GeoSphere、SkyBox 等基本幾何體。

■ Surface

Surface 可理解為表面或者皮膚,它由一個序列的三角面組成,具有單獨材質。
每個Mesh可分割為多個Surface,當需要為Mesh中的部分三角面賦予單獨的材質時,可將序號連續的三角面建立為一個Surface。
例如,Mesh中有10個三角面,需要為三角面0、1、2、5、6賦予材質m0,其它的三角面賦予材質m1,那麼可以將三角面分為[0,1,2]、[3,4]、[5,6]、[7,8,9]四個序列,建立s0、s1、s2、s3四個Surface,其中s0、s2賦予材質m0,s1、s3賦予材質m1。

■ Skin

簡單點說,Skin 就是可帶骨骼動畫的Mesh。通過Joint綁定頂點串連成骨骼。

■ Joint

Joint 可理解為關節,是Skin的一部分,用於骨骼動畫。

2. 材質

■ Material

材質是3D對象非常重要的一部分,沒有材質的3D對象只是一堆描述幾何體形狀外觀等資訊的資料,什麼也看不到。我們所能見到的那些奇妙的空間幾何體都是通過材質才得以顯現的,材質讓虛擬3D對象變得可見。

材質分為填充材質(FillMaterial)和貼圖材質(TextureMaterial、ParserMaterial)。
Material 是所有材質的基類,定義了材質的基本屬性和方法。
FillMaterial 是填充材質,以單一的顏色填充整個Surface。
TextureMaterial 是貼圖材質,用位元影像填充Surface。要正確表現貼圖效果,幾何體頂點UV座標的設定十分重要。
ParserMaterial 用以儲存外部載入的*.DAE或*.A3D模型的材質資訊,需要通過TextureLoader(貼圖載入器)來載入外部貼圖。

LightMapMaterial(燈光貼圖材質)、StandardMaterial(標準材質)、VertexLightTextureMaterial(動態燈光貼圖材質)都是繼承自TextureMaterial。
StandardMaterial 支援漫反射貼圖、法線貼圖、高光貼圖、光澤度貼圖和光澤度、高光強度設定。
LightMapMaterial 支援燈光貼圖。
VertexLightTextureMaterial 支援動態燈光。

填充材質
  ● FillMaterial(填充材質)
貼圖材質
  ● ParserMaterial(解析材質)
  ● TextureMaterial(貼圖材質)
     ● StandardMaterial(標準材質)
     ● LightMapMaterial(燈光貼圖材質)
     ● VertexLightTextureMaterial(動態燈光貼圖材質)

Alternativa3D 8 中的材質

3. 資源

■ Resource

Resource 是GPU資源的基類,定義了資源上傳與釋放的相關屬性和方法。
GPU資源分為2種:幾何體資源和貼圖資源。
幾何體資源使用頂點緩衝(VertexBufferResource)和索引緩衝(IndexBufferResource)進行上傳。
貼圖資源套件括位元影像貼圖資源(BitmapTextureResource)和壓縮貼圖資源(ATFTextureResource)。

幾何體資源
  ● Geometry(幾何體資源)
貼圖資源
  ● TextureResource(貼圖資源)
     ● ATFTextureResource(壓縮貼圖資源)
     ● BitmapTextureResource(位元影像貼圖資源)
     ● ExternalTextureResource(外部貼圖資源)

Alternativa3D 8 中的資源

■ Geometry

Geometry 儲存了3D對象的幾何體資料,記錄每個頂點的資訊,這些資訊將被劃分為多個頂點緩衝上傳到GPU。
頂點資訊包括3D座標(POSITION)、貼圖座標(TEXCOORDS)、法線(NORMAL)、切線(TANGENT4)、骨骼權重(JOINTS)等。

■ TextureResource

TextureResource 是貼圖資源的基類。
貼圖資源套件括位元影像貼圖資源(BitmapTextureResource)和壓縮貼圖資源(ATFTextureResource)。
位元影像貼圖資源以位元影像資料(BitmapData)上傳,ATF壓縮貼圖資源以位元據(ByteArray)上傳。
ExternalTextureResource 用以載入外部貼圖資源,結合TextureLoader(貼圖載入器)可以比較方便地載入外部模型的貼圖。

4. 外部模型

Alternativa3D支援外部模型的載入與解析,支援的模型檔案格式有*.DAE、*.A3D、*.3DS。
*.DAE是基於XML的Collada模型檔案,*.A3D為Alternativa3D專用模型檔案,*.3DS是3DS Max軟體使用的格式。
Alternativa3D官方提供了相關的3DS Max外掛程式,用以匯出*.DAE和*.A3D格式的模型。

通過模型解析器,可以十分方便地解析載入的模型,擷取模型中的幾何體對象、貼圖材質、動畫、燈光等資訊。
ParserCollada:*.DAE格式模型解析器,可擷取模型中的幾何體對象、貼圖材質、動畫、燈光。
ParserA3D:*.A3D格式模型解析器,可擷取模型中的幾何體對象、貼圖材質。
Parser3DS:*.3DS格式模型解析器,可擷取模型中的幾何體對象、貼圖材質。

此外,Alternativa3D還給出了ExporterA3D類,用以將3D對象匯出儲存為*.A3D格式的模型檔案。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.