OGRE裡mesh和submesh的關係

來源:互聯網
上載者:User

實體(Entity)是情境中可移動對象的執行個體,它可以是一輛車、一個人、一條狗等等,實體(Entity)在世界(World)情境中不一定非要一個固定的座標位置。

實體(Entities)是以網格(Meshes)作為自身基礎的,網格(Mesh)對象包括了一整套用來描述自身模型的資料,在廣域範圍(World Scale)內,網格(Mesh)對象相對比較小。多個實體(Entities)可以共用一種網格,比如,你常常會在一個情境下建立同一種對象的多個拷貝。

你可以通過調用SceneManager::createEntity方法建立一個實體(Entity),然後,給該實體(Entity)命名,並且將與其相關的網格(Mesh)對象關聯起來(比如:“muscleboundhero.mesh”)。情境管理器(SceneManager)會通過“MeshManager”這種資源管理員(Resource Manager)為你載入該網格(Mesh),每類網格(Mesh)只會被載入一次。

只有當你將實體(Entities)與一個情境結點(SceneNode)關聯起來後,該實體(Entities)才真正成為了情境中的一部分。通過關聯不同的實體(Entities)到不同的情境結點(SceneNodes),你可以在實體(Entities)之間建立出複雜的位置及方向的繼承關係。你可以通過修改情境結點(SceneNodes)的位置來改變與之關聯的實體(Entity)的位置。

當網格(Mesh)被載入後,與該網格(Mesh)相關的材質(Materials)資料也會隨之載入。一類網格(Mesh)可以包含多種材質(Material)資料,因為一個網格的不同部分可能採用了不同種的材質(Materials)。任何在網格(Mesh)基礎上建立的實體,會自動採用該網格(Mesh)上所採用的預設的材質(Materials)。當然,你也可以為這些相同的實體分配不同的紋理(Textures)。

想要理解如何分配不同的紋理(Textures),你必須首先理解所有的網格(Mesh)對象實際上是由子網格對象(SubMesh)構成的,每個子網格對象(SubMesh)代表了網格(Mesh)對象的一部分,該部分只能使用一種材質(Meterial)。如果一個網格(Mesh)只採用了一種材質(Material),那麼,它可能只包含了一個子網格(SubMesh)。

當基於網格(Mesh)建立出一個實體(Entity)時,該實體(Entity)可能由多個子實體(SubEntity)構建而成,子實體(SubEntity)與網格(Mesh)中的子網格(SubMesh)一一對應。你可以通過調用Entity::getSubEntity方法獲得子實體(SubEntity)。一旦你得到子實體(SubEntity)的指標,你可以通過調用setMaterialName方法改變其材質(Material)。通過這種方法,你可以改變你所建立的實體(Entity)的預設材質(Materials),從而使你建立出來的實體(Entity)與眾不同。

原文:http://www.cnblogs.com/lizhengjin/archive/2010/11/01/1866023.html

聯繫我們

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