OpenTK提供了两种使用OpenGL的方式:
是否有任何方法可以在GLControl中实现更好的抗锯齿效果(例如超采样)?在我的应用程序中,我渲染了许多具有像素甚至亚像素大小的东西,当前的FSAA处理得不好。
我在构造函数中看到了一个指定缓冲区数量的参数,将该数字设置为6并渲染4个样本,将它们组合到第5个缓冲区中并与第6个缓冲区交换,这种做法可行吗?或者,最简单的实现SSAA的方法是什么?
以下是我创建GlControl的方式,其中
更新:这里是带有8x FSAA的GlControl的屏幕截图。我检查了我的驱动程序设置,它说“抗锯齿模式 = 应用程序控制”。
更新2:好吧,这可能很尴尬,NVIDIA控制面板中还有另一个选项叫做“抗锯齿-透明度”,它被设置为“关闭”。我没有注意到,因为我以为那是一些alpha混合之类的东西,但我错了。我将其设置为“8x(超采样)”,现在GlControl确实是8xSSAA。
GlControl
是标准的WinForms控件,- 本地窗口与OpenGL上下文。
是否有任何方法可以在GLControl中实现更好的抗锯齿效果(例如超采样)?在我的应用程序中,我渲染了许多具有像素甚至亚像素大小的东西,当前的FSAA处理得不好。
我在构造函数中看到了一个指定缓冲区数量的参数,将该数字设置为6并渲染4个样本,将它们组合到第5个缓冲区中并与第6个缓冲区交换,这种做法可行吗?或者,最简单的实现SSAA的方法是什么?
以下是我创建GlControl的方式,其中
8
是FSAA的样本数:glControl = new GLControl(new OpenTK.Graphics.GraphicsMode(32, 24, 0, 8));
更新:这里是带有8x FSAA的GlControl的屏幕截图。我检查了我的驱动程序设置,它说“抗锯齿模式 = 应用程序控制”。
更新2:好吧,这可能很尴尬,NVIDIA控制面板中还有另一个选项叫做“抗锯齿-透明度”,它被设置为“关闭”。我没有注意到,因为我以为那是一些alpha混合之类的东西,但我错了。我将其设置为“8x(超采样)”,现在GlControl确实是8xSSAA。
WinGLContext
在 OpenTK 内部的 win 和 ctl 中似乎很常见,但你可能是对的,有WinGLNative
,我已经尽力深入检查了... - j-p