360 Panorama Viewer с rajawali + VR как изменить FieldOfView

Я пытаюсь создать просмотрщик изображений 360, используя rajawali + vr (Картонный инструментарий). Когда я отключаю VR-режим в CardboardView, изменения, внесенные в свойство Field of View в рендере, не действуют. в Google Cardboard Docs я обнаружил, что вид будет игнорировать его

Для монокулярного рендеринга разработчик должен свободно игнорировать FieldOfView и вместо этого создавать перспективную матрицу с любым полем зрения, требуемым для монокулярного рендеринга.

Мой вопрос, как я могу это сделать? и где я должен это реализовать, ни рендерер, ни CardboardView не имеют метода для установки PerspectiveMatrix (float[])?

1 ответ

Обновление параметра устройства, кажется, всегда перезаписывается представлением gvr

но если вы декомпилируете класс FieldOfView, вы получите это:

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);
    }
}
Другие вопросы по тегам