2012-02-11 60 views
6

我一直在通過高通論壇的主題,但沒有運氣,因爲我不知道如何查找我想要的內容。如何在Qualcomm的Vuforia示例應用程序中進行更改

我正在和ImageTargets Sample for iOS一起工作,我想把茶壺改成另一張圖片(文字)。

我已經有了渲染器,並且我使用opengl庫得到了.h,但是我無法弄清楚爲了完成這項工作我需要做些什麼改變,因爲這是非常基本的,我還沒有能夠讓它工作我真的沒有冒險去嘗試別的。

任何人都可以請幫我嗎?

我會在這裏粘貼代碼,但它是一個整體項目,所以我不知道如果需要請準確填寫什麼內容,請讓我知道。

回答

4

看一看EAGLView.mm文件。在那裏你必須加載紋理(圖像)和3D對象(你需要導入你的.h而不是teapot.h並相應地修改setup3dObjects)。

它們終於通過調用renderFrameQCAR函數呈現。

3

其實,茶壺不是圖像。這是一個以.h格式存儲的3D模型,其中包括頂點,法線和紋理座標。您應該對OpenGL ES有很好的瞭解,以瞭解示例應用程序中的這些代碼。

將3D模型更改爲任何您想要的方法的更簡單的方法是使用渲染引擎,該引擎有助於繪製和渲染東西,並且不需要打擾OpenGL API。我已經爲Android平臺完成了jPCT-AE,但iOS版有一個名爲OpenFrameworks的引擎。它有一些插件來加載3D或MD2文件,並且由於它是用C++編寫的,因此您可以輕鬆地將它與QCAR集成。

這是我與jPCT和QCAR結果的一個簡短的視頻: Qualcomm Vuforia + jPCT-AE test video

4

如果情況仍然是有效的,這裏是你必須做的:對於3D對象

  1. GET頭文件
  2. 得到紋理圖像此對象
  3. 在EAGLView.mm使這一變化:

    • 進口「yourobject3d.h」
    • 你的紋理添加到textureFilenames陣列(這應該是在EAGLView
    • 的開頭
    • 最終照顧約kObjectScale(由deafult它是關於3.0F,對於一個對象我也有將其更改爲甚至高達120.0f)
    • 在setup3dObjects方法中指定適當的頂點/法線/紋理座標數組(請在「yourobject3d。h」的文件中的適當陣列和命名),以Object3D *對象
    • 使這個變化renderFrameQCAR

      //glDrawElements(GL_TRIANGLES, obj3D.numIndices, GL_UNSIGNED_SHORT, (const GLvoid*)obj3D.indices); 
      glDrawArrays(GL_TRIANGLES, 0, obj3D.numVertices); 
      

我相信這是所有......如果事情看一看Vuforia的論壇,即這裏:https://developer.vuforia.com/node/2047669

注意:默認teapot.h確實(!)有指數,它不存在於banana.h(從下面的評論),所以要注意這一點

+0

樣本的頭文件,你可以在給定的鏈接或在這裏找到:http://heikobehrens.net/2009/08/27/obj2opengl / – raistlin 2012-12-14 13:17:10

相關問題