2016-04-25 4 views
0

Я пытаюсь использовать структуры для униформы в моей вершинных шейдеров в ES:мы можем использовать структуры для униформы в GLSL-ES

struct temp{ 
     mat4 mvp; 
    }; 
    uniform temp MP; 
    in vec2 inPos; 
    void main() { 
     vec4 vert = MP.mvp * vec4(inPos.x,inPos.y,0,1); 

     gl_Position = vert; 
} 
glGetUniformLocation(program, "MP.mvp"); 

не отображает любую вещь на экране, neigther любой glerror. разрешено ли в glsl es 300?

Он работает с OpenGL.

ответ

1

От The OpenGL ES Shading Language v3.00, в разделе 4.3.5 Uniform Variables говорится:

равномерная классификатор может быть использован с любым из основных типов данных, или при объявлении переменной, тип которого представляет собой структуру, или массив любой из этих.

Если glGetUniformLocation(program, "MP.mvp") возвращается 0 или более, то то, что вы поделили, выглядит законным. Вам, вероятно, придется опубликовать больше кода, чтобы добраться до него.

Если структура имеет только в нем mat4 то я бы рекомендовал просто устраняя-структуру в целом.

Смежные вопросы