Переопределить gl_FragCoord с pixel_center_integer - PullRequest
0 голосов
/ 05 октября 2018

По умолчанию gl_FragCoord дает координаты текущего фрагмента с началом координат внизу слева.

Согласно документам :

Происхождение gl_FragCoord может быть изменено повторным выделением gl_FragCoord с идентификатором origin_upper_left

Однако я не могу найти синтаксис или какие-либо примеры переопределения gl_FragCoord.

Как переопределить gl_FragCoord с любым из двух возможных источников origin_upper_left или pixel_center_integer?

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Невозможно переопределить gl_FragCoord в WebGL1 или 2

Как указывает @Nicol, эти документы предназначены для OpenGL.WebGL не основан на OpenGL, он основан на OpenGL ES .Смущает да, но это не одно и то же.

Соответствующие документы для WebGL1 связаны в спецификации WebGL1

[GLES20]

Спецификация общего профиля OpenGL® ESВерсия 2.0.25 , А. Мунши, Дж. Лич, ноябрь 2010 г.

[GLES20GLSL]

Язык шейдинга OpenGL® ES версия 1.00 , RСимпсон, май 2009 г.

Соответствующие документы для WebGL2 связаны в спецификации WebGL2

[GLES30]

OpenGL® ES версии 3.0.4 , Б. Липчак 2014.

[GLES30GLSL]

Язык шейдинга OpenGL® ES версии 3.00.6 , Р. Симпсон, январь 2016 г.

Чтение спецификаций OpenGL для WebGL только смущает вас и дает неверную информацию

Если вам нужны справочные страницы ES 2.0Справочные страницы здесь и Справочные страницы ES 3.0 здесь

Конечно, помните Есть различия между OpenGL ES 2.0 и WebGL1 и существуют различия между OpenGL ES 3.0 и WebGL2 .Эти различия задокументированы в двух спецификациях WebGL, указанных выше.

0 голосов
/ 05 октября 2018

Эта документация для OpenGL 4.x.Вы используете WebGL.Он описывает функциональность, которой нет в WebGL.

Для чего бы это ни стоило, повторное выделение текста будет выглядеть так:

layout(pixel_center_integer) in vec4 gl_FragCoord;

Но для этого требуется рабочий стол GLSL 1.50 или выше;даже OpenGL ES 3.2 не имеет этой возможности.

...