我正在使用OpenTK进行OpenGL和C#。
我需要使用模板缓冲区,目前想知道如何设置StencilBuffer
深度。
正如我之前所知道的那样是TaoFramework,它的控制权具有可以选择这种深度的属性。
但是现在在OpenTK的openGlControl中我找不到这样的属性。据我所知,当前的seted缓冲区深度可以通过调用GL.GetInteger()
方法传递给它的特殊参数来获得。
当我这样做时,它返回0.这意味着当前模板缓冲区深度为零,因此任何操作都会获得结果,直到一些缓冲区深度被选中。但我不知道该怎么做。
任何人都可以帮助我吗?
答案 0 :(得分:5)
看起来你在创建图形上下文时进行了设置:
http://www.opentk.com/doc/graphics/graphicscontext
靠近该文档的顶部,它给出了以下示例:
// Creates a 3.0-compatible GraphicsContext with 32bpp color, 24bpp depth
// 8bpp stencil and 4x anti-aliasing.
GLControl control = new GLControl(new GraphicsMode(32, 24, 8, 4), 3, 0);
这是典型的--OpenGL基本上将此类事情归咎于特定于操作系统的上下文创建任务......所以,如果您不使用OpenTK,则必须使用wgl和windows api进行设置。