C# 使用深度缓冲和深度测试初始化OpenGL

C# 使用深度缓冲和深度测试初始化OpenGL,c#,opengl,C#,Opengl,我希望在不使用GLUT的情况下,以独立于平台的方式使用深度缓冲区初始化OpenGL 如何使用c#包装器移除OpenGL场景中的隐藏曲面。 我没有使用GLUT,因此无法使用glutInitDisplayMode。 有什么想法吗 有关详细信息: 我发现了以下关于删除隐藏曲面的步骤: 通过glutInitDisplayMode请求z缓冲区: // GLUT_DEPTH to request for depth-buffer glutInitDisplayMode(GLUT_RGBA | GLUT_D

我希望在不使用GLUT的情况下,以独立于平台的方式使用深度缓冲区初始化OpenGL

如何使用c#包装器移除OpenGL场景中的隐藏曲面。 我没有使用GLUT,因此无法使用glutInitDisplayMode。 有什么想法吗


有关详细信息:

我发现了以下关于删除隐藏曲面的步骤:

  • 通过glutInitDisplayMode请求z缓冲区:

    // GLUT_DEPTH to request for depth-buffer
    glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH);
    
  • 为深度测试启用z缓冲区:

    glEnable(GL_DEPTH_TEST);
    
  • 清除颜色缓冲区时,请清除z缓冲区:

    // Clear color and depth buffers
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);  
    
  • 正如我所知,glutInitDisplayMode是GLUT函数之一。 我能消除这个呼叫而不产生不良影响吗。 如果不是,还有什么替代的纯opengl调用可以实现这一点呢

    我使用的是由

    编写的c#包装,GLUT不是OpenGL

    无论过剩做什么,你的C#包装器可能也提供了它,而且可能更好。您需要的是深度缓冲区和启用深度测试


    反映问题编辑的更新
    获取深度缓冲区的确切步骤完全取决于您使用的包装器。因此,有必要告诉我们它是哪种包装器。

    OpenGL是一种平台无关的渲染API。为窗口系统创建OpenGL上下文是窗口系统接口的工作(例如,)


    根据您使用的C#绑定的不同,您可能会有直接的wgl或glx调用,或者类似GLUT的平台独立的窗口调用集(在示例中就是这样)。如果您让我们知道您使用的绑定,我可以提供更多信息。

    您是否考虑过使用一个不太合适的接口。。。怪人?我完全支持寻找由随机人编写的不同且有趣的工具,但这些文档非常糟糕

    我查看了它,它的initializepengl命令似乎不允许您为GL初始化设置任何参数。完全这意味着你几乎要受控制的摆布

    现在,默认情况下,它可能会给你一个深度缓冲区(坦率地说,如果没有,那么它完全没有价值,你应该立即放弃它,如果不是更早的话)。但是,由于没有办法告诉它您想用缓冲区做什么,所以您无法确保它


    就个人而言,我建议你放弃这个工具,使用一些更主流的工具,比如。诚然,OpenTK的稳定版本非常古老,但它仍然比您现在使用的要好。

    我知道“GLUT不是OpenGL”,但我在许多OpenGL网站上发现了以下步骤:1-通过glutInitDisplayMode请求z缓冲区:glutInitDisplayMode(GLUT|RGBA | GLUT|DOUBLE | GLUT|深度)//GLUT_深度请求深度缓冲区2-启用z缓冲区进行深度测试:glEnable(GL_深度_测试);3-清除颜色缓冲区时清除z缓冲区:glClear(GL_颜色_缓冲区_位| GL_深度_缓冲区_位);因此,我想问的是如何用纯opengl调用替换第一步。@rami:你应该用良好的格式将其添加到你的问题中。如果你不告诉我们你正在使用什么来初始化opengl,你的问题就无法得到回答。你是直接打电话给WGL,还是使用一些库,还是什么?我已经把它添加到了我的问题中。我正在使用一个由(Colin P.Fahey)oddball编写的c#wrapper!!!?Esri ArcGis Globe演示示例使用了它!我不认为Esri选择了一个糟糕的库。无论如何,谢谢你的建议,我会测试它。@rami:我以前从未听说过Esri或ArcGis。然而,正如我所说,你是在你的工具的摆布。它不允许您请求深度缓冲区。因此,是否获得深度缓冲区完全取决于工具是否提供深度缓冲区。因此,如果你没有得到一个,那么不修改工具就无法解决这个问题。也许你是对的,我现在正在使用OpenTK,正如你所建议的,它肯定比我提到的库更完整。谢谢你,尼科尔。(仅供参考:):Esri(几乎)是地理信息系统开发(GIS)的领导者,ArcGIS是通过应用地理知识设计和管理解决方案的完整系统)再次感谢。