VTK - 使用 OpenGL ES 2.0 渲染工件

VTK - rendering artifacts with OpenGL ES 2.0

我正在尝试 运行 VTK Sphere example Google 本机客户端 (PNaCl) 应用程序,它完全支持 OpenGL ES 2.0。在 Win32 上,该示例工作得非常好(下图左图),但在使用 GLES2 的应用程序中,它呈现出伪影(下图右图)。球体略微旋转,因此可以更好地看到伪影。 然而 2D ImageRotate example 在 GLES2 上工作得很好,所以我怀疑这些伪像与 VTK 中的 3D 渲染有关。

Here is video 我已经记录了,渲染问题在立方体上更明显。立方体的某些壁是透明的。 任何想法为什么? VTK 是否完全支持 GLES2?

我终于让它按预期工作了。

问题是我在创建 OpenGL 上下文时没有正确设置深度(以及样本大小 - 抗锯齿问题)。 如果将来有人会遇到这个问题,您必须像这样定义您的属性列表:

const int32_t attrib_list[] =
{
    PP_GRAPHICS3DATTRIB_ALPHA_SIZE,     8,
    PP_GRAPHICS3DATTRIB_DEPTH_SIZE,     24,
    PP_GRAPHICS3DATTRIB_SAMPLES,        8,
    PP_GRAPHICS3DATTRIB_SAMPLE_BUFFERS, 8,

    // ...

    PP_GRAPHICS3DATTRIB_NONE,
};

现在可以正常渲染了。