1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Wie werden Bilder in VR eigentlich gerendert? Stichwort: Viewport / binocular overlap

Dieses Thema im Forum "VR Technologie" wurde erstellt von Odyssey_Plus_Man, 19. Juli 2020.

  1. Schon seit ich mich mit VR beschäftige stelle ich mir diese Frage. Für den nicht-VR-Bereich, also normale 2-D-Bilder, ist das ziemlich klar. Aber in VR wird das natürlich komplexer. Habe auch im Forum gesucht aber nix entsprechendes gefunden. Dieses Thema klingt zwar passend, aber wurde nicht weiter fortgeführt.
    Ich möchte das Ganze mal so angehen: stellt euch eine beliebige 3D Szene vor, gefüllt mit die durch 3-dimensionalen geometrischen Modellen. Jetzt legt man zwei Viewports fest (also definierte Kamerapunkte mit bestimmten Sichtfeld). Wie werden diese nun eigentlich angeordnet, damit das "richtige" Renderbild für beide Augen entsteht? Für mich ergeben sich dazu die folgenden 3 Fälle. Zur Vereinfachung ist das Ganze als Draufsicht zu verstehen:
    [​IMG]
    Fall 1: beide Viewports sind symmetrisch (im Beispiel je 110°) und erzeugen schematisch immer das gleiche Renderbild, egal in welcher Tiefenebene. Der binocular overlap nimmt immer einen konstanten Teil des FOV ein. Aus dem Bauch heraus denke ich, so wird das in der Praxis gemacht.

    Fall 2: Viewports haben kleineren Winkel. Für die dargestellte Tiefenebene, also nahe Objekte, ergäbe sich überhaupt kein binocular overlap, die würden sogar in einem "toten Winkel" verschwinden wenn sie noch näher sind. Verlängert man allerdings die Sichtlinien entsteht ein Überlappungsbereich, der allerdings immer klein im Verhältnis zum kompletten FOV bleibt. Dieser Fall würde allerdings viel Rechenleistung sparen und vermutlich ein nutzbares Bild ergeben.

    Fall 3: Verbreiterte Viewports. Die Sichtlinien überschneiden sich bereits für nahe Objekte; in der dargestellten Tiefenebene ergibt sich ein 100%iger Überlappungsbereich. Über diese Tiefenebene hinaus würde allerdings der rechte Viewport am linken Rand sehen mehr, als der linke Viewport und umgekehrt. Ich glaube, das würde ein "kaputtes" Renderbild ergeben.

    Fragen, die sich für mich erstmal stellen:
    • wer legt eigentlich den Viewport fest? Spieleengine / Grafiktreiber / die VR-Brillen-Plattform ...? Irgendwie muss das ja genormt sein, sonst gäbe das doch ein Kompatibilitäts-Chaos...
    • welche der obigen Fälle sind theoretisch möglich, welcher trifft tatsächlich zu? (vlt. ist es auch ganz anders als ich denke...)
    Kennt sich jemand hier gut aus und kann mal etwas Licht ins Dunkel bringen? Vlt. ist ja sogar ein VR-Ingenieur unter uns ;)
    Die Sache interessiert mich wirklich sehr und es wäre toll wenn jemand Lust hätte mit zu diskututieren. Ich glaube nämlich, dass sich einige Dinge damit erklären ließen...
     
  2. Im Grunde sind das vorgefertigte Features, die von der Engine, bzw. dem jeweiligen SDK vorgegeben sind. Entwickler können die nur bedingt manipulieren. Allgemein hat man zwei Optionen: Man rendert alles mit einer Camera und die Engine teilt es in zwei Hälften und wird übertragen. Vorteil: bessere Performance / Nachteil: etwas unscharf
    Oder man rendert mit zwei Cameras und pro Linse wird ein Bild übertragen.
    Vorteil: gestochen scharf und entspricht der menschlichen Sehgewohnheit / Nachteil: du verlierst in der Regel 30-40% an Performance und musst ein Polygone und Draw Call Budget erstellen.

    Ich sag es mal so, so lange niemand weiß, wie es aussehen könnte, spielt der kleine Abstrich keine Rolle.

    Man kann die Sehgewohnheit mit Field of View oder Post Processing auch manipulieren. Field of View kann man jederzeit verringern oder vergrößern, aber auch hier entstehen evtl. Probleme, die man vermeiden möchten. Je größer der Blickwinkel, desto mehr muss gerendert werden. Via Post Processing kannst du am Rand eine leichte Unschärfe erzeugen und mit einer Vignette bei einen höheren FoV die Sicht fokusierter darstellen.
    Viele Games nehmen die Standart-Werte, damit es einheitlich auf allen VR-Devices angezeigt wird. Besonders wenn man mit dem FoV "experimentiert" kann das auf der Vive oder Index gut aussehen, aber auf der... Lenvo (als Beispiel) nicht. Ausser jemand schreibt einen großartigen Code und es wird jeweils angepasst.
     
    SolKutTeR und Odyssey_Plus_Man gefällt das.
  3. Ohje, ich sehe gerade. Das Thema ist ja uralt... :)
     
  4. Ja, aber macht nix, denn bisher wurde es noch nicht groß erörtert. Danke für die Infos ;)
     
    SolKutTeR gefällt das.
  5. @Darth_Brush , Via Post Processing kannst du am Rand eine leichte Unschärfe erzeugen und mit einer Vignette bei einen höheren FoV die Sicht fokusierter darstellen.

    Da durch den Overlappen bei der Quest 3,smile, links und rechte eh jeweils 15 % mono sind hätte man wenigstens dadurch an 30% Rechenleistung sparen können.
     
    Darth_Brush gefällt das.
  6. @VrGad Ich mach überwiegend PC-exklusive VR-Projekte. Selbst da ist PP Performance-Heavy.
    Quest 2, Pico Neo 2 Projekte habe ich aber auch schon gemacht. Aber ja, PP sollte man dort gar nicht verwenden. Ich glaub auch FoV kannst du für die mobilen Geräte überhaupt nicht manipulieren.
     
  7. Wir sind bei Quest 3