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,
};
现在可以正常渲染了。
我正在尝试 运行 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,
};
现在可以正常渲染了。