Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

LukasBanana

Alter Hase

  • »LukasBanana« ist der Autor dieses Themas

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

1

27.06.2012, 18:57

Problem bei mehreren OpenGL-Kontexten

Hallo allerseits,
ich experimentiere gerade etwas mit mehreren OpenGL-Kontexten und verwende dazu immer "wglShareLists", damit jede OpenGL-Resource auch in jedem Kontext verwendet werden kann.
Wozu ich das mache? Um später mal 3-Monitor-Gaming zu unterstützen und um die multi-viewports in meinem Editor zu verbessern.
Mein Problem ist im Moment nur, dass anscheinend die Light-quellen der Fixed-Function-Pipeline nicht 'ge-shared' werden (trotz wglShareLists). Texturen und MeshBuffer gehen aber.
Woran kann das liegen?

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

27.06.2012, 19:05

Die Lichtquellen sind ja keine Ressourcen. Genau wie glEnable(GL_BLEND) keine Ressource ist oder wie die Welt-Matrix auch keine Ressource ist.
Oder habe ich Dich falsch verstanden? Du redest schon über GL_LIGHT_0, *_1, etc?
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

LukasBanana

Alter Hase

  • »LukasBanana« ist der Autor dieses Themas

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

3

27.06.2012, 19:13

Ja genau, ich dachte die GL render states wären global. Aber ich hab gerade mit dem gDEBugger gesehn, dass GL_LIGHT0 nicht enabled ist für den zweiten Kontext.
Wie synchronisiert man das sinnvoll und effizient?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

27.06.2012, 20:02

Die Lichtquellen auf allen 3 Kontexten setzen?

LukasBanana

Alter Hase

  • »LukasBanana« ist der Autor dieses Themas

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

5

27.06.2012, 20:32

Ok wenn's nicht anders geht. Ich dachte es gibt ne performantere und einfacherere Variante, sodass man das global immer autom. für alle setzt.
D.h. dann hätte sich die OpenGL-Implementierung um das synchronisieren kümmern können.

stef

Treue Seele

Beiträge: 246

Wohnort: Kassel

Beruf: Softwareentwickler

  • Private Nachricht senden

6

13.07.2012, 20:46

Ich habe eine Frage zu dem Thema:
Ist es möglich (eventuell sogar besser) so was wie 3-Monitor-Ansteuerung mit nur einem OpenGL Kontext zu erschlagen und für jeden Monitor einen eigenen Viewport zu definieren ?
"In C++ it's harder to shoot yourself in the foot, but when you do, you blow off your whole leg." — Bjarne Stroustrup.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

7

13.07.2012, 20:48

Das kommt wohl drauf an, was du darstellen willst. Wenn es ein zusammenhängendes Bild sein soll (also EIN großes), dann ist das mit 3 Kontexten eher nicht möglich. Soll heißen dass 3 Einzelbilder eben nicht genauso aussehen wie ein großes.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

stef

Treue Seele

Beiträge: 246

Wohnort: Kassel

Beruf: Softwareentwickler

  • Private Nachricht senden

8

13.07.2012, 21:01

Ich möchte die drei Monitore getrennt rendern, also kein großes zusammenhängendes Bild.
Z.B. eine 3D-Szene aus drei Perspektiven. Ein Monitor Frontansicht, einer Setenansicht und der dritte von oben.
Kann man sowas überhaupt mit Viewports realisieren oder ist das technisch nicht möglich ?
"In C++ it's harder to shoot yourself in the foot, but when you do, you blow off your whole leg." — Bjarne Stroustrup.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

9

13.07.2012, 21:06

Ich möchte die drei Monitore getrennt rendern, also kein großes zusammenhängendes Bild.
Z.B. eine 3D-Szene aus drei Perspektiven. Ein Monitor Frontansicht, einer Setenansicht und der dritte von oben.
Kann man sowas überhaupt mit Viewports realisieren oder ist das technisch nicht möglich ?

Wir machen sowas schon seit langem bei unserem Fahrradsimulator.
In modernen Grafiktreibern kann man einen großen "virtuellen" Bildschirm definieren, wobei dann Teile davon auf den einen oder anderen Video-Ausgang abgebildet werden. Das bedeutet aber auch, dass alle Monitore die gleiche Auflösung abbekommen.
Alternativ gibt es Hardware, die sowas kann (TripleHead2Go).

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

10

13.07.2012, 22:35

Ich würde sagen, das hängt davon ab. Willst du sowas nur für Multihead Devices machen, also alle Displays hängen auf der selben Grafikkarte? Wenn ja, könnte ein großes Fenster und ein Context möglicherweise reichen. Ansonsten ein Fenster pro Monitor und ein Context pro Fenster und alle Contexte auf der selben Grafikkarten sharen lassen. Wenn du ein Fenster hast, das auf mehreren Monitoren liegt, die alle verschiedenen Grafikkarten gehören, wirds jedenfalls vermutlich potentiell langsam. Ich muss aber gestehen, dass ich das noch nie ausprobiert hab, ich hatte immer einen Context pro Monitor...

Werbeanzeige

Ähnliche Themen