gl_Color - необъявленный идентификатор в WebGL - PullRequest
5 голосов
/ 17 декабря 2010

Я смотрю на http://www.swiftless.com/tutorials/glsl/3_glcolor.html, который имеет следующий фрагмент кода:

void main() {
// Set the output color of our current pixel
gl_FragColor = gl_Color;}

Я пытался использовать gl_Color на моем WebGL.Я получил ошибку, что gl_Color - это необъявленный идентификатор.

Что я сделал не так?

Заранее спасибо за помощь.

Ответы [ 2 ]

9 голосов
/ 17 декабря 2010

WebGL использует Open GL ES 2.0 в качестве своей базы, поэтому вы должны использовать GLSL ES 1.0 для шейдеров.GLSL ES не имеет gl_Color, и поэтому вам придется переписать этот шейдер.

0 голосов
/ 17 декабря 2010

Я предполагаю, что вы пытаетесь скомпилировать код GLSL с помощью обычного компилятора C.

Похоже, это должен быть код C, но на самом деле это исходный код GLSL, предназначенный для компиляцииКомпилятор OpenGL GLSL, а не компилятор вашего компьютера C.

Фрагментный шейдер имеет предопределенную переменную 'gl_Color', которая является выводом из вершинного шейдера.

Пример, на который вы ссылаетесь, имеет кодвнутри файла shader.frag, на который ссылается shader.init ().Сама библиотека OpenGL будет обрабатывать компиляцию в инструкции GPU для вашей машины.Поместите код в этот файл, и, надеюсь, пример сработает:)

...