Я пытаюсь использовать функцию обратной связи преобразования в OpenGL.Я написал минималистичный вершинный шейдер и создал с ним программу (фрагментного шейдера нет).Я также сделал вызов glTransformFeedbackVaryings
с одним переменным именем на выходе и установил режим буфера на GL_INTERLEAVED_ATTRIBS
.Шейдерная программа прекрасно компилируется и связывается (я также проверяю, что я связываюсь после вызова glTransformFeedbackVaryings
.
Я включил массив атрибутов одной вершины, используя glEnableVertexAttribArray
, выделил VBO для общих атрибутов вершины ипозвонил glVertexAttribPointer
для атрибута.
Я связал TRANSFORM_FEEDBACK_BUFFER
с другим сгенерированным мной буфером и создал хранилище данных, которое должно быть достаточно большим, чтобы быть записанным во время преобразованияобратная связь.
Затем я включаю обратную связь преобразования и вызываю glDrawArrays(GL_POINTS, 0, 1000)
. Я не получаю никаких сбоев во время работы программы.
Проблема в том, что я не получаю никаких признаков того, чтообратная связь преобразования записывает что-либо в TRANSFORM_FEEDBACK_BUFFER
во время вызова * 1017. * Я настроил запрос, который отслеживает GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN
, и он всегда возвращает 0. Независимо от того, что я пытаюсь, мне не удается получить обратную связь преобразованияПишите НИЧЕГО (не говоря уже о чем-то значимом!)
Если у кого-то есть какие-либо предложения относительно того, как я могу получить обратную связь для преобразования, чтобы написать что-нибудь или вещи, которыеt Я должен проверить, пожалуйста, дайте мне знать!
Примечание: я не могу использовать объекты обратной связи преобразования и не использую объекты массива вершин.