Существует несколько различных способов визуализации объектов в lwjgl, первый - немедленный рендеринг режима. Это очень просто, но медленнее, так как он плохо использует gpu. Это позволит визуализировать 3D цветной кубик:
private void Render() {
GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);
GL11.glLoadIdentity();
GL11.glTranslatef(0f,0.0f,-7f);
GL11.glRotatef(45f,0.0f,1.0f,0.0f);
GL11.glColor3f(0.5f,0.5f,1.0f);
GL11.glBegin(GL11.GL_QUADS);
GL11.glColor3f(1.0f,1.0f,0.0f);
GL11.glVertex3f(1.0f, 1.0f,-1.0f);
GL11.glVertex3f(-1.0f, 1.0f,-1.0f);
GL11.glVertex3f(-1.0f, 1.0f, 1.0f);
GL11.glVertex3f(1.0f, 1.0f, 1.0f);
GL11.glColor3f(1.0f,0.5f,0.0f);
GL11.glVertex3f(1.0f,-1.0f, 1.0f);
GL11.glVertex3f(-1.0f,-1.0f, 1.0f);
GL11.glVertex3f(-1.0f,-1.0f,-1.0f);
GL11.glVertex3f(1.0f,-1.0f,-1.0f);
GL11.glColor3f(1.0f,0.0f,0.0f);
GL11.glVertex3f(1.0f, 1.0f, 1.0f);
GL11.glVertex3f(-1.0f, 1.0f, 1.0f);
GL11.glVertex3f(-1.0f,-1.0f, 1.0f);
GL11.glVertex3f(1.0f,-1.0f, 1.0f);
GL11.glColor3f(1.0f,1.0f,0.0f);
GL11.glVertex3f(1.0f,-1.0f,-1.0f);
GL11.glVertex3f(-1.0f,-1.0f,-1.0f);
GL11.glVertex3f(-1.0f, 1.0f,-1.0f);
GL11.glVertex3f(1.0f, 1.0f,-1.0f);
GL11.glColor3f(0.0f,0.0f,1.0f);
GL11.glVertex3f(-1.0f, 1.0f, 1.0f);
GL11.glVertex3f(-1.0f, 1.0f,-1.0f);
GL11.glVertex3f(-1.0f,-1.0f,-1.0f);
GL11.glVertex3f(-1.0f,-1.0f, 1.0f);
GL11.glColor3f(1.0f,0.0f,1.0f);
GL11.glVertex3f(1.0f, 1.0f,-1.0f);
GL11.glVertex3f(1.0f, 1.0f, 1.0f);
GL11.glVertex3f(1.0f,-1.0f, 1.0f);
GL11.glVertex3f(1.0f,-1.0f,-1.0f);
GL11.glEnd();
}
Более эффективным тогда, призывающую все ваши рендеринга индивидуально, есть метод называется созданный display lists
. Список дисплеев - это немедленный способ рендеринга в непосредственном режиме с большей эффективностью, так как существует меньшее количество запросов glBegin, glEnd, что снижает нагрузку на процессор. Here вы можете узнать о списках отображения.
Самый быстрый способ, который вы можете сделать в lwjgl, - это VBO. Что такое VBO?
Объект буфера вершин (короткое время для VBO) является объектом буфера OpenGL для буферизации данных вершин в VRAM, чтобы сделать рендеринг быстрее. Это похоже на списки отображения, в которых список отображения кэшируется в VRAM и выполняется оттуда, что дает более высокий FPS.
Here - это ссылка, чтобы узнать больше об использовании VBOs.
... так что же делает 'c.dis'? – immibis
Почему вы пытаетесь передать 'GL_MODELVIEW_MATRIX' в' glMatrixMode() '? – genpfault