小编Jya*_*kku的帖子

Oculus Rift的原生渲染插件

我正在开发一个项目,将一些渲染卸载到我为Unity编写的本机插件中,以便利用实例化和其他高级图形功能.我正在为跨平台版本开发它,但我使用Mac,因此主要使用OpenGL进行测试.此时,插件仅向屏幕中心呈现四边形,并以十六进制值着色.该插件在一个空白的Unity项目中按预期工作,但只要我将其合并到我的Oculus项目中,它就会开始表现不正常.

在Rift中,插件的几何绘制两次,一次在两只眼睛上伸展,另一次只在右眼的范围内绘制.此外,我应用于几何体的任何原始颜色都会丢失,几何体似乎会拾取周围的颜色; 在带有红色文字的黑色屏幕上,几何体将大部分为黑色,并且有一些红色渗透到线条中.加载绿色地形后,插件绘制的几何图形变为绿色.

下面是在空白的Unity项目中绘制的几何图形的屏幕截图,其中没有其他内容:

空白的Unity项目

以下是我的Oculus Rift应用程序上绘制的相同几何图形的屏幕截图:

Oculus Rift顶部的原生渲染

这是我正在渲染的顶点的创建(三个坐标和颜色):

Vertex verts[4] =
{
    { -0.5f,  0.5f,  0, 0xFF0000ff },
    {  0.5f,  0.5f,  0, 0xFFff0000 },
    {  0.5f, -0.5f,  0, 0xFF00ff00 },
    { -0.5f, -0.5f,  0, 0xFFff0000 },
};
Run Code Online (Sandbox Code Playgroud)

这是绘图函数,称为插件中的每个帧:

// OpenGL case
if (g_DeviceType == kGfxRendererOpenGL)
{
    //initialize model view matrices
    glMatrixMode (GL_MODELVIEW);
    float modelMatrix[16] =
    {
        1,0,0,0,
        0,1,0,0,
        0,0,1,0,
        0,0,0,1,
    };
    glLoadMatrixf (modelMatrix); //assign our matrix to the current MatrixMode

    //initialize projection matrix
    glMatrixMode (GL_PROJECTION);
    projectionMatrix[10] = 2.0f; //tweak projection matrix …
Run Code Online (Sandbox Code Playgroud)

opengl plugins rendering unity-game-engine oculus

8
推荐指数
1
解决办法
709
查看次数

标签 统计

oculus ×1

opengl ×1

plugins ×1

rendering ×1

unity-game-engine ×1