Dies ist eine statische Kopie unseres alten Forums. Es sind keine Interaktionen möglich.
This is a static copy of our old forum. Interactions are not possible.

sasa

Junior Schreiberling

  • "sasa" is male
  • "sasa" started this thread

Posts: 133

Date of registration: Oct 24th 2005

Location: Celle

Occupation: Software Engineer

1

Sunday, May 31st 2009, 9:30pm

Aufbereitung einer OpenGL-Szene für 3D-Brille

Hallo,

bei meiner derzeitigen HiWi-Anstellung am SRA arbeiten wir an einem Tool zur Visualisierung und Aufbereitung unübersichtlicher Datenmengen. Dazu wird mithilfe von OpenGL (genauer JOGL) eine dreidimensionale Baumstruktur aufgebaut. Um dem Benutzer die Möglichkeit zu geben, die Zusammenhänge wirklich dreidimensional wahrzunehmen, ist es nun unser Ziel die Darstellung so "aufzubereiten", dass mit einer 3D-Brille die Tiefe erkennbar wird.

Bei Wikipedia habe ich gelesen, dass für Computergraphiken wohl üblicherweise Shutterbrillen eingesetzt werden. Allerdings stellt diese Technik relativ hohe Anforderungen an die Hardware, so dass ich mir ernsthafte Sorgen mache, ob diese Möglichkeit mit den zur Verfügung stehenden Mitteln umsetzbar ist. (Außerdem scheinen diese Brillen ziemlich teuer und schwer zu beschaffen zu sein...)

Eine Umsetzung mit den recht verbreiteten Farb- oder Polfilterbrillen könnte vielleicht eher im Bereich des Machbaren liegen.

Mein großes Problem ist nun, dass ich keine Ahnung habe, wie man das in OpenGL realisiert... ?(

Mir ist aufgefallen, dass das GDV und auch das Rechenzentrum im Bereich VirtualReality (dort geht es ja auch viel um 3D-Darstellungen) arbeiten/gearbeitet haben. Gibt es dort vielleicht jemanden, an den man sich mit dieser Fragestellung wenden könnte? :rolleyes:
Oder kennt sich hier jemand mit der Thematik aus?

Rick

Mädchen

  • "Rick" is male

Posts: 1,266

Date of registration: Mar 17th 2004

Location: ::1/128

Occupation: Forentroll

2

Sunday, May 31st 2009, 10:23pm

Beide Bilder sind gleichzeitig sichtbar, nur eins in der einen Farbe, und das andere in der anderen. Durch den Farbfilter sieht jedes Auge dann nur eine Farbe und macht ein "farbloses" 3D-Komposit daraus.
Wie das mit Polarisation ist, weiß ich nicht. Ich denke dafür brauchst du spezielle Hardware, damit du zwei polarisierte Quellen bekommst.
Vermutlich zwei Projektoren, mit je nem Polfilter im Lichtpfad oder sowas, und ne metall-beschichtete Projektionsfläche?

Eigentlich ist die Shutterbrille hardware technisch leichter. Das große Problem mit ihr, ist das TFT's zu langsam schalten, und sie nur wirklich gut mit 120Hz-Röhren funktionieren, damit jedes Auge noch mindestens 60 Hertz bekommt.
Bei Farbfiltern kannst du vermutlich auch "shuttern", aber musst es nicht zwingend, wenn du beide Renderings rechtzeitig hast um sie bei 60Hz in den gleichen Frame zu quetschen. Polarisation ist wegen der zwei Quellen (oder wechsel-polarisation? dann kann man auch traditionell shuttern...) etwas aufwändiger. Hat aber den Vorteil, dass man Farbwiedergabe bei hohen Wiederholraten hat. Nur muss dein Renderer zwei Kamerawinkel gleichzeitig auf zwei Ausgaben rauswerfen können.

edit: soweit ich weiß liest "das GDV" hier manchmal mit und es meldet sich vielleicht wer.

und nochmal: Hast du schon die Option der direkt-projektion überlegt? Also mit Bildgebender Brille?
Deren aktueller Nachteil ist, dass sie nicht viel höhere Auflösungen als VGA bieten, und etwas klobiger (und verkabelt...) als die passiven Brillen. Aber vergleichbar mit den Shuttern, die ja das sync signal brauchen, und strom.

und wegen Realisation:
Ich kenn mich zum Glück mit OGL nicht aus. Aber das hindert mich nicht dran zu sagen was passieren sollte.
Prinzip der Technik ist das verschieben des Augpunkts. Wenn du mir Farbe arbeitest, verwirfst du nach dem rendern der szene, vor dem darstellen die farbinformationen und färbst alles in der schlüsselfarbe für das jeweilige auge. Dann kompositierst du die bilder durch einfache addition. Polarisation ist anders. Weil du zwei vollfarbbiler generierst, diese aber an unterschiedliche geräte ausgibst. Da musst du schaun wie du zwei Grafikkarten ansteuern kannst, unter OGL. Die können dann, wenn sie beide 3-D-fähig sind, sogar unabhängig voneinander ihre Frames rendern, mit dem jeweiligen Augpunkt. Bei der Shutterbrille ist es einfach jeder zweite frame mit dem anderen augpunkt. Da das einstellen des augpunkts in OGL eigentlich trivial sein sollte, bleiben nicht viele Herausforderungen. Musst halt mal in OGL dokumentation schaun. Und falls noch nicht geschehen, ATFG :-D

Sometimes you've got to ask yourself: Is xkcd shitty today?

This post has been edited 3 times, last edit by "Rick" (May 31st 2009, 10:39pm)


sasa

Junior Schreiberling

  • "sasa" is male
  • "sasa" started this thread

Posts: 133

Date of registration: Oct 24th 2005

Location: Celle

Occupation: Software Engineer

3

Sunday, May 31st 2009, 11:27pm

Hast du schon die Option der direkt-projektion überlegt? Also mit Bildgebender Brille?

Ehrlich gesagt: nein bisher nicht! Weißt Du zufällig was sowas kostet? Zu meiner Schande muss ich gestehen, dass es mir nicht gelingt, passende Angebote zu finden...

Musst halt mal in OGL dokumentation schaun. Und falls noch nicht geschehen, ATFG :-D

Ich bin selbst OpenGL Anfänger - ich habe bisher leider keine Veranstaltung besucht, wo das Thema war. Deshalb lässt die (etwas knappe) Anleitung, die ich gefunden habe, bei mir einige Fragen offen. Es wäre schön, wenn mir jemand der schon Erfahrung mit so etwas hat, ein wenig Einstiegshilfe geben könnte. Im Moment sind wir im Prinzip noch bei der "Machbarkeits-Studie".

This post has been edited 1 times, last edit by "sasa" (May 31st 2009, 11:28pm)


Rick

Mädchen

  • "Rick" is male

Posts: 1,266

Date of registration: Mar 17th 2004

Location: ::1/128

Occupation: Forentroll

4

Monday, June 1st 2009, 12:30am

Bzgl Head-mounted-display: Ist wohl günstiger als nen Projektor-Setup. Jedenfalls gibt's Monokel für unter 1000 euro. Denke, dass es da dann aber auch die übliche Streuung gibt. Grade mal gegoogled und http://www.i-glassesstore.com/i-glasses-i3pc.html gefunden. Allerdings scheint es da eher wild herzugehen, was das Interface angeht.

OpenGL kann man gut in den GDV-Vertiefungskursen lernen.
Ich glaube die Foliensätze dazu bekommt man gefunden, schlimmstenfalls im StudIP.

Sometimes you've got to ask yourself: Is xkcd shitty today?

sasa

Junior Schreiberling

  • "sasa" is male
  • "sasa" started this thread

Posts: 133

Date of registration: Oct 24th 2005

Location: Celle

Occupation: Software Engineer

5

Monday, June 1st 2009, 9:09am

Bzgl Head-mounted-display: Ist wohl günstiger als nen Projektor-Setup. Jedenfalls gibt's Monokel für unter 1000 euro. Denke, dass es da dann aber auch die übliche Streuung gibt. Grade mal gegoogled und http://www.i-glassesstore.com/i-glasses-i3pc.html gefunden. Allerdings scheint es da eher wild herzugehen, was das Interface angeht.

ok, danke. Ist doch ein ziemlich stolzer Preis...

XAX

Junior Schreiberling

  • "XAX" is male

Posts: 207

Date of registration: Dec 25th 2004

6

Monday, June 1st 2009, 10:59am

Eine weitere Lösung die bei uns solangsam in den Handel kommt:
http://www.pcgameshardware.de/aid,670854…afikkarte/News/

Allerdings sieht es bisher mit der OpenGL-Unterstützung schlecht aus:
http://forums.nvidia.com/index.php?showtopic=87935
http://forums.nvidia.com/index.php?showtopic=97790

Ich würde es mit ner Farbfilterbrille realisieren, weil es die billigste Lösung sein dürfte und wenn man später mal an andere 3D-Hardware kommt kann man das Programm immer noch anpassen.
Dazu könntest du DrChaotica befragen, der hat das schonmal für den Vertiefungskurs zu GDV gemacht.
Oder auch Herrn Paelke vom IKG. Bei dem höre ich gerade Geodatenvisualisierung II - interaktive 3D Visualisierung, da war unteranderem die 3D-Ausgabe Thema und die haben auch 3D-Monitore am Institut.

DrChaotica

Senior Schreiberling

  • "DrChaotica" is male

Posts: 714

Date of registration: Jan 22nd 2005

Location: SHG

Occupation: SW-Entwickler

7

Monday, June 1st 2009, 5:48pm

Hi, bin gerade hier vorbeigestolpert...Rick hat eigentlich schon alles Wichtige gesagt. Dir stehen entweder die teureren Möglichkeiten offen - Stereoprojektion mit zwei Beamern, Shutter-Brille, HUD,.. - oder Du nimmst eine der günstigen Varianten.

Da wären die Farbfilterbrillen, zu denen ich auch raten würde, vor allem weil diese zur Betrachtung von 3D-Aufnahmen der Marsoberfläche im Rahmen einer Ausstellung gerade kostenlos im Lichthof auslagen :) Vielleicht ist sie noch nicht vorbei, dann erwischt Du noch eine...die sehen einigermaßen schick aus und haben eine rote und blaue Folie. Die Qualität mit so einer Brille ist ganz ok, allerdings kannst Du wie schon gesagt wurde Farben nicht vernünftig darstellen. Am leichtesten ist es, wenn Du nur Linien zeichnest, dann entfällt das Addieren zwei verschiedener Bildinhalte. Stellst Du Flächen (und Texturen) dar, ist es wohl am Besten, wenn Du auf Farben komplett verzichtest, und nur graue Texturen verwendest oder farbige beim Laden in graue konvertierst. Alternativ kannst Du natürlich auch vor der Addition des linken und rechten Bildes diese vor dem Einfärben in die jeweilige Folienfarbe in Grauwerte konvertieren, aber das müsstest Du dann wohl von der Grafikkarte erledigen lassen, z.B. per Shader. Tutorials für die Ausgabe einer Szene mit OGL müsste es eigentlich genügend geben, am Besten fängt man erstmal damit an... also Kamera definieren, Szenengraph erstellen, Lichtquellen definieren, und ausgeben. Wenn man soweit ist, könnte man ja wie in dem Link oben beschrieben zwei Zeichendurchläufe machen, in denen man den Augpunkt jeweils verschiebt, das Bild vielleicht mit Hilfe einer ambienten Lichtquelle (ambientes Licht->Entfernung spielt für die Helligkeit eines Punktes keine Rolle) einfärbt, dann jeweils in einen Buffer rendert und deren Inhalte addiert ausgibt.
Hat den Vorteil, dass es sehr günstig ist und der räumliche Eindruck wirklich schon ziemlich gut ist...ich glaube es gibt sogar Spiele, die sowas gemacht haben, z.B. ein frühes Prince of Persia. Allerdings muss man dabei auf Farbe verzichten. Wenn ich das nächste Mal im SRA bin bringe ich die Brille mal mit, dann kannst Du selbst bewerten ob das gut genug für Dich ist. Mh, mit Martins neuer Kamera könnte man damit sogar einen 3d-Film drehen... ^^

Es gibt noch mindestens eine weitere Low-Cost-Möglichkeit, bei denen man auf Farbinformationen nicht verzichten muss, aber die sind wohl nicht wissenschaftlich genug. Man könnte die zwei verschiedenen Bilder für die beiden Augen direkt nebeneinander zeichnen, und dann durch "schielen" überlagern (so ähnlich wie bei den "Das magische Auge"- Bildern - so hab ich das auch mal probiert, aber wenns animiert wird verliert man den Fokus meistens zu schnell)...klappt perfekt, ist aber auf Dauer anstrengend. Leichter geht es mit einem Prisma, das man sich vor den Monitor setzt, und das die beiden Bilder dann überlagert. Bedeutet aber etwas Bastelarbeit, Anleitungen dafür gibt es aber im Internet auch.

sasa

Junior Schreiberling

  • "sasa" is male
  • "sasa" started this thread

Posts: 133

Date of registration: Oct 24th 2005

Location: Celle

Occupation: Software Engineer

8

Monday, June 1st 2009, 9:21pm

Danke für Eure Antworten! :)

Was ich anscheinend nicht klar gesagt habe: die OpenGL Darstellung existiert bereits. Das war Aufgabe einer Bachelorarbeit. Wir nehmen derzeit bloß Erweiterungen vor.

Ich bin auch durch meine Bachelorarbeit zu dem Projekt gekommen, allerdings eher von der Data Mining / Clustering Seite. Deshalb bin ich in Sachen OpenGL-Programmierung noch etwas unbeholfen...