通过OpenGL绘制的多维数据集可以看到线框,任何想法?

时间:2011-03-16 03:33:57

标签: iphone opengl-es xamarin.ios opentk

我是OpenGL / ES和OpenTK的新手,所以请原谅我,如果我的理解/术语稍微偏离。

基本上,

  1. 我正在使用顶点缓冲对象数组(VBO)绘制一系列基于[白色]三角形的立方体。
  2. 然后,我使用相同的顶点为立方体渲染[黑色]线框,使用线条& polygonOffset()。
  3. 问题是,我可以看到在背面上呈现的线框(即透视),我不确定为什么(?)。
  4. 我正在使用4值颜色(rgba),我对第4个值(alpha / opacity)所做的任何事情似乎都没有。
  5. 为基于三角形的立方体部分定义了法线,总共36个(2 x 3个顶点/三个x 6个边),但是,我 没有 定义线框线段的任何法线(目前)。

    有没有人知道我可能做错了什么,完全基于OpenGL陷阱/经验。

    JFYI,我在单声道/单声道(C#)上使用OpenTK-OpenGL ES11

    P.S。如果您想知道为什么我没有发布任何代码,那是因为渲染代码与游戏逻辑混合并分布在多个文件中。如果有必要的话,我会尽快制作一个简单的,自包含的例子。

2 个答案:

答案 0 :(得分:1)

确保您已开启深度测试。即使构成线条和点的片段也会进行深度测试,因此如果您在线条前面绘制了形状,则形状应该遮挡线条。

您希望查看带有参数glEnable的{​​{1}}函数。

答案 1 :(得分:1)

假设GL.EnableClientState是glEnableClientState的直接模拟,这不是多边形偏移的启用方式。是否有glEnable的等价物? 以下内容对我来说是一个可见的线框:

 glEnable( GL_POLYGON_OFFSET_FILL );
 // push back the filled faces a touch
 glPolygonOffset( 1, 1 );
 // draw filled faces
 ...
 glDisable( GL_POLYGON_OFFSET_FILL );
 // draw wireframe
 ...