Я действительно отчаялся здесь. Я работаю с XCode, пытаясь реализовать некоторые вещи OpenGL на iPhone. Я должен написать шейдер для Phong-Lighting. Я дошел до объявления своей геометрии (вершины, индексы, вычисления и т. Д.) И передачи соответствующих аргументов в качестве атрибутов шейдеру (написанному на GLSL). Использование этих атрибутов работает нормально, некоторые действительно базовые шейдерные программы правильно компилируются и выдают ожидаемый результат.
Теперь я пытаюсь начать с некоторых более сложных вычислений, для которых мне нужно использовать некоторые встроенные атрибуты GLSL, а именно, "gl_NormalMatrix", но всякий раз, когда я пытаюсь это сделать, программа вылетает, и я получить «ОШИБКА: 0: 3: Использование необъявленного идентификатора« gl_NormalMatrix »».
Это происходит одинаково при использовании любых встроенных атрибутов, таких как gl_Vertex, gl_Normal и т. Д.
Эти атрибуты недоступны в GLSL на iPhone или я что-то упустил? Может быть, я не до конца понял, как это работает. Как уже упоминалось, передача моих собственных атрибутов вершин в шейдер работает нормально, и мне также интересно, как программа должна «знать» правильные значения «сама по себе» - так что вся концепция встроенных атрибутов все еще немного сбивает с толку мне. Но всякий раз, когда я пытаюсь запустить некоторые шейдеры, которые я нашел в сети, чтобы увидеть, что что-то происходит, я получаю эти ошибки, хотя все остальные, кажется, широко используют встроенные атрибуты при написании шейдеров.
Я действительно надеюсь, что кто-то здесь может пролить свет на это. Огромное спасибо заранее!
Julia