Ik ben momenteel bezig met het maken van een opstelling voor wat 3D-experimentjes. We willen hiervoor gebruiken:
* een Apple G5 met -- volgens mij -- een Radeon 9600 ("Device ID = 0x4150")
* twee monitoren
* twee spiegels
De videokaart ondersteunt dual output en het idee is om de image voor het linkeroog naar de ene monitor te sturen en die voor het rechteroog naar de andere en dan met behulp van spiegels (die in een hoek van 45 graden tov de monitoren staan) ervoor zorgen de output op de juiste manier naar de ogen gaat:
monitor1 2 spiegels monitor 2
| ---> \ / <--- |
| ---> \/ <--- |
oog1 oog2
Het probleem is dat ik het niet voor elkaar krijg om met OpenGL/GLUT de images op de verschillende monitoren te krijgen. Initialisatie doe ik als volgt:
Het programma werkt goed op andere systemen (o.a. een PowerWall), maar bij deze opstelling dus niet. Wat er gebeurt is dat beide buffers (BACK_LEFT en -RIGHT) naar dezelfde monitor worden geschreven.
Ik vraag me nu ten eerste af of het een hardware danwel een software probleem is. Aangezien het zonder problemen op een 'Powerwall' wel werkt (waar gebruik wordt gemaakt van 2 kaarten) heb ik het idee dat de videokaart het misschien gewoon niet ondersteunt. Maar anderszijds, ik krijg geen error als ik glut initialiseer met GLUT_STEREO (terwijl ik dat bij 'normale' videokaarten wel krijg).
Heeft iemand jullie misschien een idee wat de oorzaak van het probleem is?
Nog wat gegevens:
- beide monitoren zijn in 10248x768 mode
- de 'secundaire' monitor laat een soort van extended desktop zien (mirroring staat uit), ook als ik het programma heb gestart
- als ik mirroring aan zet krijg ik beide buffers op beide schermen
Ik ben ook wat met glutGameMode aan het klooien geweest. Hier reageert de 2e monitor wel op, in de zin dat het scherm zwart wordt. Maar daarna klapt ie er uit met de error:
2004-07-22 15:03:17.222 vetedit[1860] GLUT Warning: The following is a new check for GLUT 3.0; update your code.
2004-07-22 15:03:17.222 vetedit[1860] GLUT Fatal Error: redisplay needed for window 2, but no display callback.
(de displayFunc wordt geregistreerd _voordat_ de gameMode wordt aangeroepen).
* een Apple G5 met -- volgens mij -- een Radeon 9600 ("Device ID = 0x4150")
* twee monitoren
* twee spiegels
De videokaart ondersteunt dual output en het idee is om de image voor het linkeroog naar de ene monitor te sturen en die voor het rechteroog naar de andere en dan met behulp van spiegels (die in een hoek van 45 graden tov de monitoren staan) ervoor zorgen de output op de juiste manier naar de ogen gaat:
monitor1 2 spiegels monitor 2
| ---> \ / <--- |
| ---> \/ <--- |
oog1 oog2
Het probleem is dat ik het niet voor elkaar krijg om met OpenGL/GLUT de images op de verschillende monitoren te krijgen. Initialisatie doe ik als volgt:
code:
1
2
3
4
| glutInit(&argc,argv); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH | GLUT_STEREO); initGL(1024,768); ... etc |
Het programma werkt goed op andere systemen (o.a. een PowerWall), maar bij deze opstelling dus niet. Wat er gebeurt is dat beide buffers (BACK_LEFT en -RIGHT) naar dezelfde monitor worden geschreven.
Ik vraag me nu ten eerste af of het een hardware danwel een software probleem is. Aangezien het zonder problemen op een 'Powerwall' wel werkt (waar gebruik wordt gemaakt van 2 kaarten) heb ik het idee dat de videokaart het misschien gewoon niet ondersteunt. Maar anderszijds, ik krijg geen error als ik glut initialiseer met GLUT_STEREO (terwijl ik dat bij 'normale' videokaarten wel krijg).
Heeft iemand jullie misschien een idee wat de oorzaak van het probleem is?
Nog wat gegevens:
- beide monitoren zijn in 10248x768 mode
- de 'secundaire' monitor laat een soort van extended desktop zien (mirroring staat uit), ook als ik het programma heb gestart
- als ik mirroring aan zet krijg ik beide buffers op beide schermen
Ik ben ook wat met glutGameMode aan het klooien geweest. Hier reageert de 2e monitor wel op, in de zin dat het scherm zwart wordt. Maar daarna klapt ie er uit met de error:
2004-07-22 15:03:17.222 vetedit[1860] GLUT Warning: The following is a new check for GLUT 3.0; update your code.
2004-07-22 15:03:17.222 vetedit[1860] GLUT Fatal Error: redisplay needed for window 2, but no display callback.
(de displayFunc wordt geregistreerd _voordat_ de gameMode wordt aangeroepen).