na minha empresa, usamos óculos obturadores estereoscópicos há anos, juntamente com telas crt rápidas, capazes de lidar com taxas de atualização verticais> 120 Hz. Ultimamente está ficando extremamente difícil encontrar esses monitores, então decidimos experimentar um dos novos LCDs com suporte para atualização de 120 Hz e, como prometido no site da nVidia, com suporte para visão 3D. Temos um Samsung 2233RZ. A forma como obtemos o estéreo é exibindo imagens alternadas da esquerda e da direita a 120 Hz (usando DirectX), com obturadores alternando entre abrir/fechar para o olho correspondente (enviando o gatilho sincronizado com DirectX), para que a imagem real seja percebida em 3D a 60 Hz. Este sistema funciona, sem dúvida.
Sem sorte, no entanto, usar a tela + nossas venezianas não funcionou muito bem:
- os pixels em um LCD ficam ligados durante um quadro (8 mseg)
- há um atraso de cerca de meio quadro antes que o quadro enviado pelo PC seja realmente desenhado na tela
- em outras palavras, enquanto um obturador está aberto (também 8mSeg), o olho vê metade da imagem esquerda e metade da imagem direita
Corrigimos isso com algum hardware que compensa o atraso e encurta o período em que as venezianas ficam abertas. Até aí tudo bem: a percepção 3D foi muito boa, mas apenas para imagens pequenas 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, todos fazem isso), mas em vez disso escreve linha por linha, assim como um crt faria. Então aí estásem chancepara que o estéreo funcione corretamente com venezianas, porque há um atraso de 8 ms entre o pixel superior esquerdo ser ativado e o pixel inferior direito ser ativado. Além disso, quando o canto inferior direito está ligado, o canto superior esquerdo já está desligado.
A questão é: como a nVidia faz isso e podemos fazer isso? Os óculos do kit de visão 3D deles usam o mesmo princípio do 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 sejam ativados e desativados ao mesmo tempo? Isso é algo que pode ser configurado no software? Ou isso só pode ser feito usando uma das placas GeForce listadas como compatíveis para uso com o kit 3D (testamos com Quadro 570, usando cabo dual link)? Em caso afirmativo, existe um protocolo sobre DVI que diz 'ei, sou uma GeForce, você tem uma tela de 120 Hz, pode mostrar um quadro em 8 mseg para que possamos fazer algumas coisas estéreo?' e a tela responde 'sim, posso fazer isso' ou 'não, não posso porque você é um Quadro'?
editar: acabei de descobrir que também existe um '3D Vision Pro' que pertence ao site e suporta a Quadro FX570. A maior diferença é que os óculos usam um emissor de RF em vez de infravermelho. Mas isso significaria que o PC que usamos atende aos requisitos de visão 3D.
Portanto, a questão 'real' importante é (graças a MBraedley): como faço para que o cartão e a tela entrem no modo 3D, para que a tela atualize todos os pixels de uma vez?
edit2: no nVidia cpl, ativei as configurações 3D. Agora, ao usar o StereoView, listado em aplicativos compatíveis, o aplicativo realmente relata 'buffer estéreo' disponível, então parece que tudo está configurado corretamente. Porém o problema permanece: dependendo da quantidade de atraso ajustado nos óculos, há crosstalk (“ghosting”) na parte superior, central ou inferior da tela.
ATUALIZAR
depois de muitas correspondências com a nVidia, e eles basicamente alegando que seu sistema funcionaria melhor que o nosso, mas não podem nos dizer o porquê, porque é propriedade intelectual deles, etc., decidimos apenas comprar o kit 3D, pois é bem barato de qualquer maneira.
Depois de algumas medições, fica bem claro: eles usam exatamente o mesmo princípio que usamos há 10 anos. Eles não usam nenhum truque especial e o desempenho do 3D Vision é muito pior que o nosso sistema. Apenas duas diferenças:
- software: eles têm alguns métodos de API que você pode atribuir a duas imagens e elas são exibidas intercaladas automaticamente. 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. Ghosting é realmente terrível com os óculos da nVidia e é visível de cima a baixo: o estado 'fechado' do vidro está muito longe de ser 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 fantasma é praticamente invisível a olho nu.
Responder1
O princípio é basicamente o mesmo: mostrar uma imagem para um olho e depois outra imagem para o outro olho. No entanto, para funcionar corretamente, o NVidia 3d (e os monitores que funcionam com ele) requerem uma conexão DVI-D, embora eu suspeito que os CRTs que você está usando ainda usem analógico. Se você tentar canalizar um sinal analógico para o 2233RZ, tenho a sensação de que ele não será renderizado corretamente para 3D. A sincronização é definida durante a configuração inicial, embora eu não tenha certeza de como isso é feito.
Eu sei que o monitor está ciente do fato de estar exibindo imagens 3D, já que a maioria dos controles, incluindo brilho e contraste, ficam desabilitados no modo 3D. O monitor, entretanto, não reclamará simplesmente porque uma placa específica está sendo usada. As placas não suportadas simplesmente não funcionam, enquanto as placas suportadas devem funcionar com todos os monitores suportados, desde que estejam conectadas corretamente e os drivers e software estejam instalados.
Dito tudo isso, se o seu aplicativo não usar um modo 3D compatível com NVidia 3D (o que acho difícil de acreditar, pois usa DirectX), a NVidia não saberá o que fazer com as imagens fornecidas.