微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

谷歌 VR 帧缓冲

如何解决谷歌 VR 帧缓冲

我已经集成了一个后处理管道,它也适用于 GLSurfaceView。 但现在我想把它集成到我的 VR 游戏中,结果只有一个黑屏。 如果我关闭 distortionCorrection,我会得到正确的显示,但只有一只眼睛。

在 Google 文档中它说:

如果启用了失真校正,则 GL 上下文将被设置为在此调用时绘制到由纹理支持的帧缓冲区中,因此如果实现者需要更改某个渲染阶段的帧缓冲区,则实现者必须之后将帧缓冲区重置为通过 glGetIntegerv(GL_FRAMEBUFFER_BINDING,...) 获得的帧缓冲区。

我试过这个,但我只在一只眼睛(一侧)上得到的图像太小。

是我用错了方法还是我理解错了用法

这是我的帧缓冲区绑定和解绑代码

int[] frame = new int[1];
int[] read = new int[1];
public void bindFrameBuffer() {
    glGetIntegerv(GL_FRAMEBUFFER_BINDING,frame,0);
    glGetIntegerv(GL_READ_FRAMEBUFFER_BINDING,read,0);
    glBindFramebuffer(GL_DRAW_FRAMEBUFFER,frameBuffer);

    glViewport(0,width,height);
} 

public void unbindFrameBuffer() {
    glBindFramebuffer(GL_FRAMEBUFFER,0);
    glBindFramebuffer(GL_FRAMEBUFFER,frame[0]);
    glBindFramebuffer(GL_READ_FRAMEBUFFER,read[0]);

    glViewport(0,ProgressusRenderer.getWidth(),ProgressusRenderer.getHeight());
}

其中 frameBuffer 是我要绑定的帧缓冲区 ID。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?