即時搜索相當長的時間來找到工作導入 Blender 3D .obj文件到Xcode使用它在iphone應用程序。從Blender加載.obj文件
我找不到描述如何在任何地方實現這樣的東西!
我不想使用任何引擎。我只想知道我必須完成 填充的基本步驟。
www上確實沒有任何東西。你可以找到2005年至2008年的文章 ,但那都不是最新的,沒有任何工作。
那麼,有沒有人知道如何做到這一點?
即時搜索相當長的時間來找到工作導入 Blender 3D .obj文件到Xcode使用它在iphone應用程序。從Blender加載.obj文件
我找不到描述如何在任何地方實現這樣的東西!
我不想使用任何引擎。我只想知道我必須完成 填充的基本步驟。
www上確實沒有任何東西。你可以找到2005年至2008年的文章 ,但那都不是最新的,沒有任何工作。
那麼,有沒有人知道如何做到這一點?
查看libgdx的源代碼,並查看objloader。他構建了這個lib,以便能夠加載obj文件,並且應該可以跨多個平臺(包括ios)工作。從閱讀源代碼可以看出,爲頂點創建對象加載器非常簡單,但在開始關注法線和紋理座標時變得更加複雜。下面是一個簡單的算法,刮OBJ文件(我將離開解析爲讀者自己的研究相關的TPL文件):
#
(評論開始的所有行)v 1.000 1.000 1.000
,因此,如果行以'v '
開頭,則將空行上的行分開並將3個浮點數存儲(並轉換爲浮點數)作爲頂點。vn 1.000 1.000 1.000
,所以,如果行以'vn '
開頭,與第2行相同,但存儲爲正常。vt 1.000 1.000
與可能的第[w]
價值,拆分和存儲的方式相同的方式。f 1/1/1 2/2/2 3/3/3
這些描述3個頂點/ textcoords/normals(以該順序)的每個形狀的頂點(通常他們是三角形)索引的面部描述。關於這一點最難的部分是obj文件類型使用三個索引,而不是像opengl或direct3d之一。所以你將不得不圍繞你的頂點/座標/法線的順序進行洗牌,以便你可以利用來源的索引圖。例如,基本上你必須通過改組訂單來使f 1/300/30 40/22/400 20/30/10
變得更像f 1/1/1 2/2/2 40/40/40
。
This site給你一個這個相同的算法的想法,並向你展示了一個如何在高級算法中進行這個操作的例子(在頁面的中間部分進行下去)以及他引用你檢查的源代碼可以發現here。
反正,讓我知道你是否需要任何幫助。 :)
編輯:
通過,如果你看到像這樣的方式:f 1//4 2//5 3//7
不要驚慌,這是按預期有效的文件,只是表示(在這種情況下),有沒有質感COORDS
我使用GLEssentials示例應用程序作爲起點。它是真正的骨頭,但它是你想要開始的一種,所以你可以真正理解當你決定在以後添加它時的格式。
https://developer.apple.com/library/mac/#samplecode/GLEssentials/Introduction/Intro.html