我正在为 OpenGL 和 C# 使用 OpenTK。
我需要使用模板缓冲区,目前想知道如何设置 StencilBuffer
深度。
我之前知道的是 TaoFramework,它的控件具有可以设置此深度的属性。
但是现在在 OpenTK 的 openGlControl 中我找不到这样的属性。据我所知,当前设置的缓冲区深度可以通过调用传递给它特殊参数的 GL.GetInteger()
方法来获得。
当我这样做时,它返回 0。这意味着当前模板缓冲区深度为零,因此在设置某些缓冲区深度之前,任何操作都不会产生结果。但我无法找到如何执行此操作。
谁能帮帮我?
最佳答案
看起来你在创建图形上下文时设置了它:
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 进行设置.
关于c# - OpenTK 中的模板缓冲区深度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15550599/