2017-01-24 36 views
2

我們正在開發自己的基於Android的硬件,並且我們希望在某些應用中使用Vuforia(通過Unity3D開發)。但是,我們遇到問題,使得Vuforia能夠與我們當前的相機方向設置一致。安卓和Vuforia錯誤的攝像頭方向

在我們的硬件上,當相機水平放置時 - 一切正常。也就是說,當相機與顯示器的位置平行時。但是,我們需要垂直放置攝像機,換句話說,與顯示器的位置有90度的差異。這些都是硬件設置。我們的內核是根據這些設置進行編程的,每個使用攝像頭的其他程序都可以與所有內容兼容,包括我們的IMU傳感器。但是,當相機垂直放置時,使用Vuforia開發的應用程序表現得十分奇怪。

我們假設問題與Vuforia處理原始相機數據的算法有關,但我們不確定。而且,我們不知道如何解決這個問題。有關更多詳細信息,我可以列出:

- 啓用「啓用視頻背景」時,投影圖像失真並且沒有視頻輸入可用。 AR投影出現在黑色背景上,並且尺寸失真。

- 當「啓用視頻背景」打開並且設備旋轉時,黑色背景被替換爲閃爍的純色。

- 當「啓用視頻背景」關閉時,AR投影具有正常的尺寸(不失真),但是通過錯誤的軸設置跟蹤。例如,當目標在現實世界中向左移動時,投影向上移動。

- 當「啓用視頻背景」關閉並且設備旋轉時,AR投影比設備處於默認狀態時的外觀更大。

我很樂意提供您需要的更多信息。

非常感謝你,祝你有美好的一天。

PS:我們發現,使用相機作爲主要目的的應用程序(相機應用程序,條碼掃描儀等)可以正常工作,而相機使用量較高的應用程序(如某些遊戲)具有相同的功能作爲Vuforia的問題。這讓我覺得直接訪問攝像頭的應用程序可以正常工作,而使用Android API和類的應用程序由於某種原因而失敗。

回答

1

首先了解每個平臺都會處理不同的照相機,除了這些不同的android手機制造商之外,這些處理方式也不同。在沒有vuforia的測試中,我不得不將視頻輸入的視頻轉換爲0,-90,90用於android/iphone和-270,-90,90用於windows平板電腦。過去的這款iPhone後置攝像頭被鏡像,android前置攝像頭被鏡像以及水平前置攝像頭。這很容易解釋,但一個令人討厭的問題是,Google Pixel和三星前置攝像頭在y上被鏡像(就像後置攝像頭上的所有iOS一樣),但Nexus 6p在x上鏡像。我在這裏得到的是,有很多設備需要使用android進行解釋,因此不僅僅是那一臺設備。到目前爲止,Vuforia已經處理了我的像素和iOS設備中的4個。

至於如何解決您的問題:

進入您的播放器設置統一和看的方向。在這裏有幾個選項,我的應用程序只使用肖像,所以我強制肖像,它似乎工作正常(我不得不考慮上述情況下的問題)。Vuforia以前不支持自動旋轉,所以你需要確保你有最新版本,因爲它聽起來就是你所需要的。如果設置了自動旋轉並且它不能正常工作,則可能必須考慮該特定設備(在測試這些設備之前,不要對所有設備執行此操作)。爲了解釋該設備,使用if(或者如果您在不同設備上有多個此類問題的實例,則構造一個case語句),然後根據需要進行反映或翻譯。跨平臺開發系統(如統一)並不總是完美,因爲基本上沒有標準。在這些情況下,您必須通過在其中創建方法和案例聲明來直接解釋它們,以便您可以乾淨地模塊化地操作所有必要的設備。這是一種痛苦,但它會分開開發所有設備。

還有一件事是確保您檢查vuforia配置文件,因爲它有一些設置,如相機鏡像和方向設置。這些似乎是公共設置,所以如果您需要爲一部手機使用「水平翻轉」,而不是另一部手機,則還應該能夠在您的病例語句中對其進行腳本編寫。