2013-03-09 84 views
0

我正在編寫一個程序來渲染基本框,但通過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

回答

1

您需要忘記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

相關問題