Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在OpenGL4.3中,矩形纹理真的需要GL_ARB_纹理_矩形扩展吗?_Opengl_Textures - Fatal编程技术网

在OpenGL4.3中,矩形纹理真的需要GL_ARB_纹理_矩形扩展吗?

在OpenGL4.3中,矩形纹理真的需要GL_ARB_纹理_矩形扩展吗?,opengl,textures,Opengl,Textures,我正在寻找使用现代OpenGL逐像素渲染简单图像的最佳方法(如“最自然”或“最高效”) 因为我不想要mip贴图,所以我将矩形纹理作为这个任务的自然选择 但是,我很惊讶,glCompileShader()拒绝接受我在片段着色器中调用texture2DRect(),除非我启用扩展名GL\u ARB\u TEXTURE\u RECTANGLE 我没有料到这一点,因为我使用的是现代OpenGL(我指定的是#version 430),并且在的OpenGL参考表中没有提到扩展的需要 为了增加混淆,着色器编译

我正在寻找使用现代OpenGL逐像素渲染简单图像的最佳方法(如“最自然”或“最高效”)

因为我不想要mip贴图,所以我将矩形纹理作为这个任务的自然选择

但是,我很惊讶,
glCompileShader()
拒绝接受我在片段着色器中调用
texture2DRect()
,除非我启用扩展名
GL\u ARB\u TEXTURE\u RECTANGLE

我没有料到这一点,因为我使用的是现代OpenGL(我指定的是
#version 430
),并且在的OpenGL参考表中没有提到扩展的需要

为了增加混淆,着色器编译器接受我的统一声明
uniform sampler2DRect sampler甚至没有警告


这是我的OpenGL驱动程序中的错误吗?(我在Windows 8.1上运行英伟达驱动程序的版本340.52,在GeFielgTx 760上)。< /P> < P>只使用GLSL内置函数<代码> TeXelFutCH < /C> >以绝对整数坐标来处理纹理图像像素。

< P>具有特定类型名称的纹理采样函数,如<代码> Trutu2dSuthor(< /代码>)都被弃用,在核心配置文件中不再可用


相反,请使用
texture()
,这对于所有支持的纹理类型都是重载的。矩形纹理仍然受支持,因此它将与类型为
sampler2DRect
的采样器一起工作。尽管Reto Koradi的建议在我的设置中与您的建议一样有效,但规范中说texture()采用浮点纹理坐标,而texelFetch()则指定使用整数坐标。所以我决定接受你的答案而不是雷托的。