代码之家  ›  专栏  ›  技术社区  ›  Don P

带像素中心整数的重新声明gl_FragCoord

  •  0
  • Don P  · 技术社区  · 6 年前

    默认情况下, gl_FragCoord 给出当前片段的坐标,原点在左下角。

    根据 docs :

    gl_FragCoord的原点可以通过使用原点左上角标识符重新说明gl_FragCoord来更改

    然而,我找不到重新声明gl_FragCoord的语法或任何示例。

    你怎么重新申报 格拉格库尔德酒店 有两种可能的起源 origin_upper_left pixel_center_integer ?

    2 回复  |  直到 6 年前
        1
  •  4
  •   Nicol Bolas    6 年前

    这些文档是为OpenGL 4编写的。x、 你正在使用WebGL。它描述了WebGL所没有的功能。

    不管它值多少钱,重新定义它应该是这样的:

    layout(pixel_center_integer) in vec4 gl_FragCoord;
    

    但这需要桌面GLSL 1.50或更高;即使是OpenGL ES 3.2也没有这种功能。

        2
  •  0
  •   Community Ramakrishna.p    4 年前

    没有办法重新申报 gl_FragCoord 在WebGL1或WebGL2中

    正如@Nicol指出的,这些文档是为OpenGL编写的。WebGL不是基于OpenGL而是基于 OpenGLES 是的,但它们不是一回事。

    WebGL1的相关文档链接在 WebGL1 spec

    [GLES20]

    OpenGL® ES Common Profile Specification Version 2.0.25 ,A.Munshi,J.Leech,2010年11月。

    [GLES20GLSL]

    The OpenGL® ES Shading Language Version 1.00 ,R.辛普森,2009年5月。

    WebGL2的相关文档链接在 WebGL2 spec

    [GLES30]

    OpenGL® ES Version 3.0.4 ,B.Lipchak,2014年。

    [GLES30GLSL]

    The OpenGL® ES Shading Language Version 3.00.6 R.辛普森,2016年1月。

    阅读WebGL的OpenGL规范只会让你感到困惑,并给出错误的信息

    如果你想要参考页 the ES 2.0 reference pages are here the ES 3.0 reference pages are here

    当然要知道 there are differences between OpenGL ES 2.0 and WebGL1 there are differences between OpenGL ES 3.0 and WebGL2 .上述两个WebGL规范中记录了这些差异。