glPushMatrix已弃用GL30-GL43解决方案?基本框示例

问题描述:

我正在编写一个程序来渲染基本框,但通过Google搜索,我还没有找到在屏幕上绘制一个面(或一组面)的解决方案。glPushMatrix已弃用GL30-GL43解决方案?基本框示例

目前,每个我发现教程使用glPushMatrix /在glBegin/glEnd/glPopMatrix这样

GL11.glPushMatrix(); 

GL11.glRotatef(pit, 1, 0, 0); 
GL11.glRotatef(yaw, 0, 1, 0); 
GL11.glRotatef(rol, 0, 0, 1); 
GL11.glTranslatef(pos.x, pos.y, pos.z); 

GL11.glBegin(GL11.GL_QUADS); 
GL11.glVertex3f(-1.0f, -1.0f, 1.0f); // Bottom Left Of The Quad 
GL11.glVertex3f(1.0f, -1.0f, 1.0f); // Bottom Right Of The Quad 
GL11.glVertex3f(1.0f, 1.0f, 1.0f); // Top Right Of The Quad 
GL11.glVertex3f(-1.0f, 1.0f, 1.0f); // Top Left Of The Quad 
//insert similar code here for all 6 faces 
GL11.glEnd(); 

GL11.glPopMatrix(); 

我已阅读,在OGL 3.0它们过时的glPushMatrix /在glBegin/glEnd/glPopMatrix但我似乎无法找到什么是“正确”的方式来呈现一个对象。有没有我应该使用的方法?

+1

“*目前,每个教程伊夫发现使用glPushMatrix /在glBegin/glEnd/glPopMatrix这样*” 请考虑[寻找更难了。(http://www.opengl.org/wiki/Getting_Started#Tutorials_and_How_To_Guides) – 2013-03-09 01:05:51

+0

别人指出我去[This](http://duriansoftware.com/joe/An-intro-to-modern-OpenGL.-Table-of-Contents.html)以及[This](http://www.arcsynthesis。 org/gltut /) ,其中一个在该页面上。 – Snowdrama 2013-03-09 01:11:17

+0

他们都在那个页面上。他们都不使用这些删除的功能。 – 2013-03-09 01:14:47

您需要忘记OpenGL为您管理矩阵的想法。你将需要使用矢量数学库自己实现这些东西。 Java 3D Api在提供一组强大的Matrix和Vector类和方法方面做得非常出色。对不起,有人告诉你,在结束事情上还有更多工作要做,但这是图形编程的方向。

+0

我想到了很多,我知道一些关于矩阵的知识,所以它不会超级困难,我认为它是通过某个函数调用将我的顶点数组发送到某个地方的问题。 – Snowdrama 2013-03-09 01:20:50

+0

是的,从以前的版本切换到OpenGL 3+时需要学习很多东西。这本书帮助我很好地转换:http://www.amazon.com/OpenGL-4-0-Shading-Language-Cookbook/dp/1849514763/ref=sr_1_1?ie=UTF8&qid=1362794576&sr=8-1&keywords=opengl+着色器+语言+ 4.0 – aeskreis 2013-03-09 02:03:43