2016-07-29 21 views
3

Ich versuche, einen 360-Bild-Viewer mit Rajawali + Vr (Karton-Toolkit) zu erstellen. Wenn ich den VR-Modus auf der CardboardView deaktiviere, haben die Änderungen, die ich an der Eigenschaft Field of View im Renderer vorgenommen habe, keine Wirkung. im Google Karton docs fand ich die die Sicht es360 Panorama-Viewer mit Rajawali + VR Howto ändern FieldOfView

Für

monokulare Rendering ignoriert, sollte der Implementierer sich an das fieldOfView zu ignorieren und stattdessen eine perspektivische Matrix mit dem, was Sichtfeld erstellen gewünscht für monokulare Rendering

Meine Frage ist, wie kann ich das tun? und wo sollte ich es implementieren, weder der Renderer noch die CardboardView hat eine Methode, um eine PerspektiveMatrix (float []) zu setzen?

+0

Keiner hat u ur-Lösung erhalten. Tatsächlich finde ich auch solche Lösung. –

+0

@KrunalIndrodiya Eigentlich nicht. Ich habe zu diesem [Rahmen] gewechselt (http://www.panframe.com/), aber wenn Sie einen Link haben, wo zu Ihrer Lösung oder einem Hinweis würde ich mich freuen. – Keiner

+0

Danke für die Wiederholung, Eigentlich suche ich auch nach Panorama-Viewer in Android, die 360-Grad-Panoramabild anzeigen. Und ich muss über Panorama-Geschwindigkeit und andere Dinge auch steuern. Google hat dafür eine Bibliothek, kann aber nichts machen. Die Frage ist also, dass Panframe 360 ​​Panorama unterstützt? –

Antwort

1

das Gerät param Aktualisierung scheint immer durch die gvr Ansicht

überschrieben zu bekommen, aber wenn Sie die fieldOfView Klasse dekompilieren Sie diese:

public void toPerspectiveMatrix(float near, float far, float[] perspective, int offset) { 
    if(offset + 16 > perspective.length) { 
     throw new IllegalArgumentException("Not enough space to write the result"); 
    } else { 
     float l = (float)(-Math.tan(Math.toRadians((double)this.left))) * near; 
     float r = (float)Math.tan(Math.toRadians((double)this.right)) * near; 
     float b = (float)(-Math.tan(Math.toRadians((double)this.bottom))) * near; 
     float t = (float)Math.tan(Math.toRadians((double)this.top)) * near; 
     Matrix.frustumM(perspective, offset, l, r, b, t, near, far); 
    } 
} 
+0

Ok, sieht so aus, als könnte das die richtige Methode sein. Ich werde es versuchen, danke trotzdem – Keiner