como é a visão 3D nvidia alcançado exatamente

7

na minha empresa, temos usado óculos estereoscópicos por anos junto com telas crt rápidas capazes de lidar com taxas de atualização verticais > 120Hz. Ultimamente está ficando extremamente difícil encontrar esses monitores, então decidimos experimentar um dos novos LCDs que suportam 120Hz de atualização e, como prometido no site da nVidia, suportam a visão 3D. Nós temos um Samsung 2233RZ. A forma como obtemos estéreo está exibindo alternadas imagens esquerda e direita a 120Hz (usando DirectX), com obturadores alternando abrir / fechar para o olho correspondente (enviando disparador sincronizado com DirectX), para que a imagem real seja percebida em 3D a 60Hz. Este sistema funciona, sem dúvida.

Não tem sorte, no entanto, usar a tela + nossas persianas como não funcionou:

  • os pixels em um lcd estão no estado ligado durante a duração de um quadro (8mSec)
  • há um atraso de cerca de metade de um quadro antes que o quadro enviado pelo computador seja realmente desenhado na tela
  • em outras palavras, enquanto o obturador está aberto (também 8mSec), o olho vê metade da esquerda e metade da imagem certa

Corrigimos isso com algum hardware que compensa o atraso e encurta o período em que os obturadores estão abertos. Até aí tudo bem: a percepção 3D foi muito boa, mas apenas para pequenas imagens no meio da tela.

Mais algumas medições revelaram algo muito surpreendente para nós: o 2233RZ não mostra o quadro inteiro de uma só vez (o que esperávamos de uma tela LCD: qualquer LCD que temos aqui, também projetores DLP, tudo isso), mas escreve linha por linha, assim como faria uma crt. Portanto, não há nenhuma maneira para que o estéreo funcione corretamente com os obturadores, porque há um atraso de 8mSec entre o pixel superior esquerdo sendo ativado e o pixel inferior direito com um. Além disso, quando a parte inferior direita está ativada, a parte superior esquerda já está desativada.

A pergunta é: como a nVidia faz isso, e podemos fazer isso? Os óculos do kit de visão 3D usam o mesmo princípio que o nosso, então deve estar na tela / placa de vídeo, não? Como eles forçam a tela a mostrar o quadro inteiro de uma só vez, para que todos os pixels entrem e saiam ao mesmo tempo? Isso é algo que pode ser definido em software? Ou isso só pode ser feito ao usar uma das placas GeForce listadas como compatíveis para uso com o kit 3D (testamos com a Quadro 570, usando cabo de link duplo)? Se assim for, é um protocolo sobre DVI que é como 'ei, eu sou uma GeForce, você é uma tela de 120Hz, você pode mostrar um quadro em 8mSec para que possamos fazer algumas coisas em estéreo?' e a tela responde "sim, eu posso fazer isso" ou "não, não posso, porque você é uma Quadro"?

edit: acabou de descobrir que há também um '3D Vision Pro' que pertence ao site suporta o Quadro FX570. Maior diferença que os óculos usam um RF em vez de um emissor infravermelho. Mas isso significaria que o computador que usamos atende aos requisitos de visão 3D.

Portanto, a questão importante 'real' é (graças ao MBraedley): como eu digo ao cartão e à tela para irem no modo 3D, para que a tela atualize todos os pixels de uma só vez?

edit2: na nVidia cpl, eu configuro as configurações 3D. Agora, ao usar o StereoView, listado em aplicativos compatíveis, o aplicativo realmente informa 'buffer estéreo' disponível para que tudo pareça configurado corretamente. No entanto, o problema permanece: dependendo da quantidade de atraso ajustado nos óculos, há crosstalk ('fantasma') na parte superior, no centro ou na parte inferior da tela.

UPDATE

depois de muitos e-mails com a nVidia, e eles basicamente alegando que o sistema funcionaria melhor que o nosso, mas eles não podem nos dizer por que, porque é sua propriedade intelectual etc., decidimos comprar o kit 3D de qualquer maneira.

Depois de algumas medições, fica bem claro: elas usam exatamente o mesmo princípio que já fazemos por 10 anos. Eles não usam truques especiais, e o 3D Vision é muito pior do que o nosso sistema. Apenas duas diferenças:

  • software: eles têm alguns métodos de API que você pode dar duas imagens duas, e eles são exibidos automaticamente intercalados. Fazemos isso 'manualmente' enviando um quadro após o outro para a placa de vídeo.
  • hardware: seus óculos são muito ruins em comparação com o que usamos. O efeito fantasma é realmente terrível com os óculos da nVidia, e é visível de cima a baixo: o estado 'fechado' do vidro está muito longe de estar fechado. Uma coisa a ser observada aqui: trata-se de fantasmas medidos usando um osciloscópio. Ao visualizar uma cena real com muitos detalhes e sem grande contraste (normalmente para jogos), o efeito fantasma é praticamente invisível aos olhos.
por stijn 06.10.2010 / 10:23

1 resposta

3

O princípio é basicamente o mesmo: mostre uma imagem para um olho, depois outra para o outro olho. No entanto, para funcionar corretamente, o NVidia 3d (e os monitores que funcionam com ele) exigem uma conexão DVI-D, enquanto eu suspeito que os CRTs que você está usando ainda usam analógico. Se você tentar colocar um sinal analógico no 2233RZ, tenho a sensação de que ele não será renderizado corretamente para o 3D. A sincronização é definida durante a configuração inicial, embora eu não tenha certeza de como isso foi feito.

Eu sei que o monitor está ciente do fato de que está exibindo imagens 3D, já que a maioria dos controles, incluindo brilho e contraste, está desativada quando no modo 3D. O monitor, no entanto, não se queixará simplesmente porque um determinado cartão está sendo usado. Placas não suportadas simplesmente não funcionarão, enquanto as placas suportadas devem funcionar com todos os monitores suportados, desde que estejam corretamente conectados e os drivers e softwares instalados.

Tendo dito tudo isso, se o seu aplicativo não usa um modo 3D compatível com NVidia 3D (que acho difícil de acreditar já que usa o DirectX), a NVidia não saberá o que fazer com as imagens. dado.

    
por 06.10.2010 / 13:14