Go Down

Topic: Gestire video 3D (Read 4670 times) previous topic - next topic

astrobeed

Dimenticavo, il V-sync è generato in hardware dalla scheda video, non importa se poi è collegata al monitor tramite VGA (analogica) oppure in digitale tramite VDI/HDMI, il segnale è ottenibili in software tramite le apposite API, molti giochi prevedono il V-sync come opzione per sincronizzare la generazione dei frame con la visualizzazione sul monitor.
In tutti i casi non è possibile in nessun modo ottenere il V-sync sulla USB in modo fedele perché la USB ha le sue latenze (non costanti e possono arrivare a svariate decine di ms), non sono trascurabili per questo genere di applicazione.
Per non parlare delle latenze software, un normale programma è soggetto a rallentamenti e fermi in funzione di quello che fa il pc, solo questo è più che sufficiente per impedire la perfetta sincronizzazione con gli occhiali, ovviamente c'è un modo per ovviare a questa cosa, però tocca essere molto bravi a scrivere software per pc e avere un'ottima conoscenza di Windows/Linux.

superlol

comunque ti dico per esperienza (possessore di un nvidia 3d vision kit con schermo samsung syncmaster 2233) che se gli schermi per il 3D partono da 100Hz e che se uno schermo normale oscilla tra i 60 e i 75Hz il motivo è che se scendi sotto i 50Hz per occhio ti si affatica la vista e ti provoca un gran mal di testa dopo anche una sola ora (indifferentemente dalla profondità che dai all'immagine stereoscopica).

se proprio vuoi fare un 3D in casa per un portatile utilizza una cosa chiamata barriera di parallasse che almeno non ti rovini gli occhi.

se però vuoi continuare devi usare una porta esterna, non credo che il tuo pc non abbia nemmeno una HDMI o DVI o VGA. Certo se fossi in grado di gestire le directx come nulla potresti farlo via software ma già il tempo necessario per comunicare via seriale e credo andresti out of sync
inoltre abilitare il v-sync riduce le prestazioni del gioco/programma
Il nuovo forum italiano sull'elettronica: http://www.electroit.tk/ <--- Nuovamente online!

mango

Ok ho più o meno capito quello che vuoi dire, mi domando se a questo punto una soluzione potrebbe essere che il plughin stesso si sincronizzi con gli occhiali ( è il plughin che alterna i 2 fotogrammi del formato Side-by-Side 3D )
ma cosi mi vengono in mente molti altri problemi.
Chi sta provando a farmi il plughin non sa nemmeno se farlo in c++ o in java ( stavamo giusto ragionandoci ora ) e non abbiamo la più pallida idea di come interfacciarlo con arduino.
Il plughin lo stiamo pensando per VLC.

flz47655

#33
Mar 15, 2013, 07:46 pm Last Edit: Mar 15, 2013, 07:48 pm by flz47655 Reason: 1
Quote
però tocca essere molto bravi a scrivere software per pc e avere un'ottima conoscenza di Windows/Linux.


E anche di DirectX o similare secondo me  ;)

Quote
Chi sta provando a farmi il plughin non sa nemmeno se farlo in c++ o in java ( stavamo giusto ragionandoci ora ) e non abbiamo la più pallida idea di come interfacciarlo con arduino.


Se vuoi avere una chance per il plugin devi andare su C++ e NON si deve interfacciare con Arduino che il segnale lo deve prendere direttamente dalla VGA

mango

Quote
comunque ti dico per esperienza (possessore di un nvidia 3d vision kit con schermo samsung syncmaster 2233) che se gli schermi per il 3D partono da 100Hz e che se uno schermo normale oscilla tra i 60 e i 75Hz il motivo è che se scendi sotto i 50Hz per occhio ti si affatica la vista e ti provoca un gran mal di testa dopo anche una sola ora (indifferentemente dalla profondità che dai all'immagine stereoscopica).


Io ho visto usare con un discreto successo anche con la frequenza di 60 Hz.
In ogni caso se avessi un ipotetica shcedavideo che arriva fino a 120 l'intero dispositivo si adaterebbe alla nuovo frequenza.
Il progetto e pensato solo per la visualizazioni di video.

mango



E anche di DirectX o similare secondo me  ;)



Domanda stupida cosa intendete per DirectX ?

flz47655

http://it.wikipedia.org/wiki/DirectX

lesto

o meglio ancora le openGL, così fai win, linux e mac :)
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

mango

Ok ho letto quello che riguarda il DirectX, è molto bella come cosa ma decisamente troppo complessa secondo me.
ora non mi rimane che riordinare le idee.
In ogni caso vorrei realizzare un programma su arduino per prendere il clock dal vsinc della presa vga ( lasciando per ora perdere la porta usb ) per poi mandarlo ai vari occhiali, cosi almeno potrò effettuare maggiori test.
Il dubbio che mi rimane ora è se riuscirò a creare il tanto agoniato plughin e nel caso riuscire a sincronizzarlo .

PROPOSITI FUTURI:
Spero di riuscire ad ottenere almeno un risultato accettabile e speriamo che il progetto prenda piede in maniera da poter essere sempre più sviluppato.

INTANTO:
Secondo voi questo codice va bene ? o si potrebbe quasi sicuramente renderlo più snello e veloce?

Code: [Select]
int VGAclock=0;
int SINCswic=0;

void setup(){
 
 pinMode ( 13, OUTPUT );  // il pin 13 e 12 servono per comandare gli occhiali tramite cavo non IR
 pinMode ( 12, OUTPUT );
 pinMode (8, INPUT);     // da qui faccio entrare il segnale di clock VGA
 pinMode (9, INPUT);     // interruttore per girare la fase
}

void loop() {
 VGAclock=digitalRead(8);
 SINCswic=digitalRead(9);
 
 if(VGAclock==HIGH , SINCswic==LOW ){
  digitalWrite(13,HIGH);
  digitalWrite(12,LOW);
 }
 else{
  digitalWrite(13,LOW);
  digitalWrite(12,HIGH);
 }
 
 if(VGAclock==HIGH , SINCswic==HIGH  ){
  digitalWrite(13,LOW);
  digitalWrite(12,HIGH);
 }
 else{
  digitalWrite(13,HIGH);
  digitalWrite(12,LOW);
 }

}

flz47655


o meglio ancora le openGL, così fai win, linux e mac :)


Facile dire openGL ma in questo caso non si avrebbe qualcosa di molto portabile a meno di non scrivere codice specifico per le tre piattaforme, il VSYNC con la scheda video non è inclusa nelle specifiche principali ed è delegata alla piattaforma

Ciao

lesto

ah, non sapevo questo particolare, mi aspettavo che invece ci fosse un qualcosa.

@mango: direi che può andare bene, ma se usi le macro guadagni microsecondi preziosi, vedi http://www.billporter.info/2010/08/18/ready-set-oscillate-the-fastest-way-to-change-arduino-pins/
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

mango

Ok recuperato pc con porta VGA, ora mi metto a provare a creare il circuito e a tampinare per vedere come sistamare la parte in c++ per vlc.

flz47655

#42
Mar 16, 2013, 11:38 am Last Edit: Mar 16, 2013, 11:44 am by flz47655 Reason: 1
Leggiti le specifiche VGA prima di agganciarti alla porta. La massa deve essere in comune con Arduino.

Ciao

mango

Si si lo so, è che non riesco a trovare la tensione di uscita del Vsync per capire se devo amplificarlo un pelo oppure no.

flz47655

VSYNC se non ricordo male è a 5v quindi non serve amplificazione

Go Up