Opengl es 更改着色器版本时,gl_PointSize需要扩展

Opengl es 更改着色器版本时,gl_PointSize需要扩展,opengl-es,glsl,Opengl Es,Glsl,我的GLSL着色器可以很好地与#version 150 core配合使用。顶点着色器将gl_PointSize输出到三角形条形几何体着色器,该着色器使用该着色器指示生成对象的大小 我更改为#版本300 es,并出现此错误 error C7548: 'gl_PointSize' requires "#extension GL_EXT_geometry_point_size : enable" before use 这有点令人惊讶——我认为扩展通常是旧版本中需要的东西,以启用新版本中提供的功能。现

我的GLSL着色器可以很好地与
#version 150 core
配合使用。顶点着色器将
gl_PointSize
输出到三角形条形几何体着色器,该着色器使用该着色器指示生成对象的大小

我更改为
#版本300 es
,并出现此错误

error C7548: 'gl_PointSize' requires "#extension GL_EXT_geometry_point_size : enable" before use
这有点令人惊讶——我认为扩展通常是旧版本中需要的东西,以启用新版本中提供的功能。现在看来我需要找回一些丢失的东西,但似乎说我仍然可以使用它


什么改变了,这意味着我不能再使用
gl\u PointSize

桌面OpenGL和OpenGLES不是一回事。该表引用的是桌面OpenGLx,而不是任何版本的OpenGLES。如果您要求GLSL 3.00 ES,您将获得

桌面GLSL 1.50不是GLSL ES 3.00的较低版本。这也不是一个更大的版本。它们之间没有任何关系,除非ES版本从桌面版本获取内容。但即便如此,这也是武断的,通常与版本号无关

问题是。。。OpenGLES3.00。但是它只是作为VS的一个输出变量。假设着色器就是这样使用它的,那么您的实现在OpenGL ES支持中有一个bug