Natives Rendering-Plugin mit Oculus Rift

8

Ich arbeite an einem Projekt, das ein Rendering auf ein natives Plug-in verlagert, das ich für Unity geschrieben habe, um Instanziierung und andere erweiterte Grafikfunktionen zu nutzen. Ich entwickle es für eine plattformübergreifende Version, aber ich arbeite mit einem Mac, so dass Tests hauptsächlich mit OpenGL durchgeführt werden. An dieser Stelle rendert das Plugin nur einen Quad in der Mitte des Bildschirms, der mit Hex-Werten gefärbt ist. Das Plugin funktioniert wie erwartet in einem leeren Unity-Projekt, aber sobald ich es in mein Oculus-Projekt einfüge, beginnt es sich unregelmäßig zu verhalten.

Im Riss zeichnet die Geometrie des Plugins zweimal, einmal über beide Augen und einmal nur innerhalb der Grenzen des rechten Auges. Darüber hinaus gehen alle Grundfarben, die ich auf die Geometrie anwende, verloren und die Geometrie scheint die umgebenden Farben aufzunehmen. Auf einem schwarzen Bildschirm mit rotem Text wird die Geometrie größtenteils schwarz sein und etwas Rot in die Linien bluten. Sobald mein grünes Gelände geladen ist, wird die vom Plugin gezeichnete Geometrie grün.

Unten sehen Sie einen Screenshot der Geometrie, die in einem leeren Unity-Projekt mit nichts anderem gezeichnet wird:

Und hier ist ein Screenshot derselben Geometrie, die über meiner Oculus Rift-Anwendung gezeichnet wird:

Hier ist die Erstellung der Scheitelpunkte, die ich rendere (drei Koordinaten und Farben):

%Vor%

Hier ist die Zeichenfunktion, die jeden Frame innerhalb des Plugins aufgerufen wird:

%Vor%

Irgendwelche Einblicke von erfahrenen nativen plugin / Rift Grafik-Kodierern würden geschätzt werden!

    
Jyakku 27.10.2014, 18:20
quelle

1 Antwort

0

Sie können das Unity UI-System verwenden, um Sprites nach Ihren Bedürfnissen zu rendern. Hier ist ein Artikel von Oculus, der beschreibt, wie man das Unity UI-System für VR optimiert: Ссылка

Außerhalb von Unity würden Sie Quad-Layer verwenden, um das Augen-FOV zu rendern. Hier sind die in der Oculus Rift-Dokumentation beschriebenen Schichten: Ссылка

Vierfachebene:

  

Ein monoskopisches Bild, das in einer bestimmten Pose und Größe in der virtuellen Welt als Rechteck angezeigt wird. Dies ist nützlich für Heads-Up-Displays, Textinformationen, Objektkennsätze und so weiter. Standardmäßig wird die Pose relativ zum realen Raum des Benutzers angegeben und das Quad bleibt im Raum fixiert, anstatt sich mit der Kopf- oder Körperbewegung des Benutzers zu bewegen. Verwenden Sie für kopfgebundene Quads das Flag ovrLayerFlag_HeadLocked, wie unten beschrieben.

    
RCYR 12.02.2016 03:52
quelle