【发布时间】:2017-08-08 22:49:21
【问题描述】:
我正在尝试使用两个简单的 GLSL 着色器在全窗口中显示图像:
顶点着色器:
#version 330
layout (location = 0) in vec3 aPos;
layout (location = 1) in vec2 aTexCoord;
out vec3 ourColor;
out vec2 TexCoord;
void main()
{
TexCoord = aTexCoord;
gl_Position = vec4(aPos, 1.0);
}
和片段着色器:
#version 330
uniform sampler2D tex0; // loading the texture here
in vec3 TexCoord; // texture coordinates
out vec4 fColor; // fragment shader output
void main(){
fColor = texture2D(tex0,TexCoord);
}
在 OpenGL 代码中,在 OpenGL 属性设置期间,我执行
glEnable(GL_MULTISAMPLE);
我在网上看到,只有在驱动程序支持的情况下,OpenGL 才会执行多重采样。
在 OpenGL 中我们是否可以确认上述调用是否有效? 或者无论如何我们可以找出我的机器显卡是否支持这个调用?
【问题讨论】:
-
我不知道这取决于驱动程序的能力。这绝对取决于您的渲染目标是否支持多重采样,但这与驱动程序没有直接关系。
-
我正在检查一些示例代码来执行此操作,我遇到了这个文件:example code 在此搜索中 glEnable(GL_MULTISAMPLE) 。有评论提到其基于驱动程序。有没有办法确认渲染目标是否支持多重采样?
-
从第一个角度来看,我没有看到与链接中的粗体文本类似的内容。我看到的唯一说明是关于默认情况下是否启用了多重采样。如果您的窗口系统可以为您提供多重采样窗口/后缓冲区和 OpenGL 上下文 > 1.3,那么多重采样必须工作。
-
是否启用多重采样与是否支持多重采样无关。它只是指定是否应该使用多重采样。
标签: opengl opengl-es multisampling