Google Cardboard:GL.LINES正在为每只眼睛画出限制

时间:2015-04-15 16:04:13

标签: android unity3d google-cardboard

我是Google Cardboard + Unity的用户,我想绘制自定义3D线条。为此我在每个眼睛相机上放了一个看起来像这样的脚本:

void OnPostRender() 
{
    GL.InvalidateState();
    GL.PushMatrix();

    mat.SetPass(0);

    GL.Begin( GL.LINES );

    GL.Vertex(...);
    GL.Vertex(...);
    ...

    GL.End();
    GL.PopMatrix();
}

虽然它在计算机上工作得很好(甚至在Oculus上),但它在Android上的行为却不同:线条正在消除视口的限制,这是令人讨厌的,因为最后一个视口会污染第一个视口。

我无法发布图片,但右眼线在左眼上方超过。 我使用三星Galaxy S3 + OpenGL ES 2.0(3.0不适用于该设备)。 有没有办法在Android上避免这种行为?

注意:GL.InvalidateState()用于拥有正确的颜色,否则在Android上线条为黑色

1 个答案:

答案 0 :(得分:0)

对您的问题略有不同:

当我必须在世界上画线时,我喜欢使用Vectrosity:

http://www.starscenesoftware.com/vectrosity.html https://www.assetstore.unity3d.com/en/#!/content/82

您设置了线条并且它们是持久的(但可编辑)。由于它们存在于世界中,它们在立体声中呈现就好了。