2015-04-23 265 views
1

我想使用增強現實在人的內部放置3D心臟。我有一個從iPhone的相機內在函數派生的投影矩陣。使用Vuforia SDK生成的投影矩陣和姿態完美地顯示相對於幀標記的對象。但是,我想在framemarker後面的場景中放置一個對象。爲了保持幻象,標記背後的任何物體都需要在物體前面放置相機圖像。爲了解釋的目的,這裏是一張圖。擴展投影矩陣

Problem illustration - heart should be drawn behind image

由於投影矩陣將在圖像平面,而不是遠平面的前面的空間,在我看來,我需要可以延長投影矩陣,或將整個世界的另一個投影內。簡單地將心臟置於標記後面不起作用,原因很明顯,你永遠無法將任何東西放在圖像平面之後。所以我問的問題是,這是可能通過某種投影矩陣擴展,還是有其他的東西可以工作?

回答

1

這不是一個編程答案,但我會盡力幫忙。 我不會爲iOS XCode編寫程序,而是通過Unity使用Vuforia,我只希望這能讓您瞭解如何從您的方法中區分這一點。

Unity有一些東西叫DepthMask這基本上允許一個Object出現在ImageTarget後面。但是,因爲應用程序需要您通過ImageTarget看你能內OnTrackingFound()嘗試改變ImageTarget的

  • tranform.renderer.material.maintexture一個透明材料
  • shader和實施opacity減少

我知道這沒有你想象的那麼有幫助,但我希望你找到答案。

祝你好運。

+0

關於編程有趣的事情,它有時感覺很像數學。我會研究這DepthMask。我應該添加我沒有使用Vuforia來進行渲染,我使用VES/VTK生成的OpenGL ES。 –

+1

我道歉,我的意思是這不是一個編程的答案。 Unity通常會完成渲染和所有事情,所以我對此不甚瞭解。 –

+0

我真的很想嘗試Unity,它必須比這個混亂更好。 :) –