设置此变量有什么作用?例如,如果我将其设置为4,那意味着什么?
我在"Framebuffer相关提示"部分下阅读了glfw.org上的描述(参见这里:GLFW窗口指南).手册中说"GLFW_SAMPLES指定了用于多重采样的所需样本数.Zero禁用多重采样.GLFW_DONT_CARE表示应用程序没有首选项."
我还阅读了一般的多重采样说明(参见此处: Shawn Hargreaves的多重采样).
我大致了解多重采样的含义:在调整图像大小和重新绘制图像时,用于重绘图像的点数应该足够接近,以便我们看到的是图像的精确表示.数字示波器也会出现同样的想法 - 比如你正在采样正弦信号.如果采样速率恰好恰好等于波的频率(f),则示波器显示恒定电压,这与您希望看到的输入信号非常不同.为了避免这种情况,奈奎斯特定理告诉我们,我们应该以至少2f的速率进行采样.所以我看到计算机图形学中会出现问题,但我不知道究竟是什么功能
glfwWindowHint(GLFW_SAMPLES, 4); 确实.
我有两个2D纹理.第一个是MSAA纹理,使用的是目标GL_TEXTURE_2D_MULTISAMPLE.第二个非MSAA纹理使用目标GL_TEXTURE_2D.
根据OpenGL 关于ARB_texture_multisample的规范,GL_NEAREST在绘制MSAA纹理时,只有一个有效的过滤选项.
在这种情况下,这两个纹理都GL_COLOR_ATTACHMENT0通过各自的Framebuffer对象附加.他们的分辨率也是相同的大小(根据我的知识,这对于将MSAA与非MSAA联系起来是必要的).
因此,考虑到当前的限制,如果我将MSAA保持FBO到非MSAA持有FBO,我仍然需要GL_NEAREST用作过滤选项,或者是否GL_LINEAR有效,因为两个纹理都已经被渲染到?