5

我将 OpenTK 用于 OpenGL 和 C#。

我需要使用模板缓冲区,目前想知道如何设置StencilBuffer深度。

我之前知道的是 TaoFramework,它的控件具有可以设置此深度的属性。

但是现在在 OpenTK 的 openGlControl 中我找不到这样的属性。据我所知,当前设置的缓冲区深度可以通过调用GL.GetInteger()传递给它的特殊参数的方法来获得。当我这样做时,它返回 0。这意味着当前模板缓冲区深度为零,因此任何操作在设置一些缓冲区深度之前都不会产生结果。但我不知道如何做到这一点。

谁能帮我?

4

1 回答 1

6

看起来你在创建图形上下文时设置了它:

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 进行设置。

于 2013-03-28T16:50:13.333 回答