nvidia 3d Vision到底是如何實現的

nvidia 3d Vision到底是如何實現的

在我的公司,我們多年來一直使用立體快門眼鏡以及能夠處理垂直刷新率 > 120Hz 的快速 CRT 螢幕。最近,要找到這樣的顯示器變得非常困難,因此我們決定嘗試一款支援 120Hz 更新率的新型 LCD,並且正如 nVidia 網站上所承諾的那樣,支援 3D 視覺。我們有一台三星 2233RZ。我們實現立體效果的方式是以120Hz 的頻率交替顯示左右圖像(使用DirectX),並為相應的眼睛交替打開/關閉快門(透過發送與DirectX 同步的觸發器),因此實際圖像以60Hz 的3D 方式感知。毫無疑問,這個系統是有效的。

然而不幸的是,使用螢幕+我們的百葉窗並沒有完全起作用:

  • LCD 上的像素在一幀的持續時間內(8 毫秒)處於開啟狀態
  • PC發出的幀實際繪製到螢幕上之前有大約半幀的延遲
  • 換句話說,當快門打開時(也是 8 毫秒),眼睛看到的是左影像的一半和右影像的一半

我們使用一些硬體來解決這個問題,這些硬體可以補償延遲並縮短百葉窗打開的時間。到目前為止一切順利:3D 感知確實很好,但僅限於螢幕中間的小圖像。

更多的測量結果揭示了一些讓我們非常驚訝的事情:2233RZ 並沒有一次性顯示整個畫面(我們對LCD 螢幕的期望:我們這裡擁有的任何LCD,還有DLP 投影儀,都可以做到這一點),而是將其寫入一行就像 CRT 一樣按行進行。所以有決不為了使立體聲與快門正常工作,因為在左上角像素開啟和右下角像素開啟之間有 8 毫秒的延遲。而且,當右下方的燈亮時,左上方的燈就已經關閉了。

問題是:nVidia 是如何做到的,我們能做到嗎?他們的 3D 視覺套件中的眼鏡與我們的原理相同,所以它一定在螢幕/顯示卡中,不是嗎?他們如何強制螢幕一次顯示整個幀,以便所有像素同時打開和關閉?這個可以用軟體設定嗎?或者只能在使用列出的與 3D 套件相容的 GeForce 卡之一時才能完成此操作(我們使用 Quadro 570 進行測試,使用雙鏈路電纜)?如果是這樣,他們是否有一個基於 DVI 的協議,就像“嘿,我是 GeForce,你是 120Hz 屏幕,你能在 8 毫秒內顯示一幀,這樣我們就可以做一些立體的東西嗎?”螢幕會回答「是的,我可以做到這一點」或「不,我不能,因為你是 Quadro」?

編輯:剛剛發現該網站還有一個“3D Vision Pro”,它確實支援 Quadro FX570。最大的區別是眼鏡使用射頻而不是紅外線發射器。但這意味著我們使用的電腦滿足 3D 視覺的要求。

因此,「實際」的重要問題是(感謝 MBraedley):如何告訴卡片和螢幕進入 3D 模式,以便螢幕立即更新所有像素?

edit2:在 nVidia cpl 中,我開啟了 3D 設定。現在,當使用相容應用程式中列出的 StereoView 時,該應用程式確實會報告「立體緩衝區」可用,因此似乎一切都設定正確。然而問題仍然存在:根據眼鏡上調整的延遲量,螢幕的頂部、中心或底部會出現串擾(「重影」)。

更新

在與nVidia 來回發送大量郵件之後,他們基本上聲稱他們的系統比我們的系統工作得更好,但他們無法告訴我們原因,因為這是他們的知識產權等,我們決定只購買3D 套件,因為無論如何它都很便宜。

經過一些測量後,結果非常清楚:他們使用的原理與我們已經使用了 10 年的原理完全相同。他們沒有使用任何特殊技巧,而且 3D Vision 的性能比我們的系統差得多。只有兩點不同:

  • 軟體:它們有一些 API 方法,您可以將兩個圖像指定為兩個,然後它們會自動交錯顯示。我們透過將一幀接一幀發送到視訊卡來「手動」執行此操作。
  • 五金:與我們使用的相比,他們的眼鏡相當糟糕。 nVidia 眼鏡的重影確實很可怕,從上到下都可見:他們的玻璃的「關閉」狀態實際上遠非關閉。這裡需要注意的一件事是:這是使用示波器測量的重影。當觀看具有大量細節且沒有巨大對比度的實際場景時(通常對於遊戲而言),重影幾乎是肉眼看不到的。

答案1

其原理基本上相同:向一隻眼睛顯示一個圖像,然後向另一隻眼睛顯示另一個圖像。然而,為了正常工作,NVidia 3d(以及與之配合使用的顯示器)需要 DVI-D 連接,而我懷疑您一直使用的 CRT 仍然使用模擬。如果您嘗試將類比訊號通過管道傳輸到 2233RZ,我感覺它無法正確渲染 3d。同步是在初始設定期間設定的,儘管我不確定它是如何實現的。

我確實知道顯示器知道它正在顯示 3D 影像,因為大多數控制項(包括亮度和對比度)在 3D 模式下都會停用。然而,監視器不會僅僅因為使用了特定的卡片而發出抱怨。不支援的卡根本無法工作,而支援的卡應該可以與所有支援的顯示器配合使用,只要它們連接正確並且安裝了驅動程式和軟體。

話雖如此,如果您的應用程式不使用與 NVidia 3D 相容的 3D 模式(我覺得很難相信,因為它使用 DirectX),那麼 NVidia 將不知道如何處理所提供的圖像。

相關內容