Как я могу рендерить треугольники в openGL?
Я хочу нарисовать несколько треугольников на экране, используя OpenGL.
В качестве первого шага я пытаюсь сделать один равнобедренный треугольник. При использовании матрицы вершин ("три" в приведенном ниже коде) на экране ничего не отображается. Когда я меняю координаты на матрицу в комментарии ([0,10,0; 10,0,0;10,0,0]
Я получаю треугольник, но вершины неверны.
Код написан в psychtoolbox, но также поможет ответ на C.
tri = [
-10,0,0;
0,10,0;
10,0,0;
];
% tri = [
% 0,10,0;
% 10,0,0;
% 10,0,0;
% ];
AssertOpenGL;
screenid = max(Screen('Screens'));
InitializeMatlabOpenGL(1);
[win , winRect] = Screen('OpenWindow', screenid);
Screen('BeginOpenGL', win);
ar = winRect(4)/winRect(3);
glEnable(GL_DEPTH_TEST);
glMatrixMode(GL_PROJECTION);
glLoadIdentity;
gluPerspective(25,1/ar,0.1,100);
glViewport(0,0,winRect(3),winRect(4));
glMatrixMode(GL_MODELVIEW);
glLoadIdentity;
gluLookAt(0,0,50,0,0,0,0,1,0);
glClearColor(0,0,0,0);
glClear;
glColor3f(255,0,0)
vbo = glGenBuffers(1);
glBindBuffer(GL.ARRAY_BUFFER,vbo);
glBufferData(GL.ARRAY_BUFFER,size(tri,1)*size(tri,2)*4,tri,GL.STATIC_DRAW);
glEnableVertexAttribArray(0);
glVertexAttribPointer(0,3,GL.FLOAT,GL.FALSE,0,0)
glDrawArrays(GL.TRIANGLES,0,size(tri,1));
Screen('EndOpenGL', win);
Screen('Flip', win);