2011-10-10 23 views

回答

3

看起來你 你還沒有導入所需的標題。你需要的,如果你想開發的OpenGL ES 1.0應用程序包含以下標題:

#import <OpenGLES/EAGL.h> 
#import <QuartzCore/QuartzCore.h> 

#import <OpenGLES/ES1/gl.h> 
#import <OpenGLES/ES1/glext.h> 

不要忘了添加框架:OpenGLES.frameworkQuartzCore.framework

編輯:

在OpenGL ES 2.0的你有任何在1.0如glTranslatefglRotatefglFustrum和許多可用的矩陣運算。要自己實現它們並不容易,但如果您需要可編程管道,則這是您需要支付的代價。簡而言之,您需要編寫自己的函數來表示和操作4x4矩陣:將它們相乘,乘以矢量,創建旋轉,平移和縮放矩陣,還需要創建像fustrum這樣的投影矩陣。之後,您需要在頂點着色器中聲明制服以通過projectionmodelview矩陣。然後,你需要將它們相乘以應用變換,並投射到一個頂點:

// Simple vertex shader 
uniform mat4 projection; 
uniform mat4 modelview; 

attribute vec3 position; 

void main(){ 
    gl_Position = projection * modelview * vec4(position, 1.0); 
} 

有一個偉大的書,將教你如何使用ES1和ES2在iPhone上 - iPhone 3d Programming。如果您沒有時間,請堅持使用ES1。沒關係,如果你不需要可編程管道。但在我看來這值得學習。

+0

我盡你所能,但沒有成功。 – SevenDays

+0

也許你正在嘗試使用ES2?在OpenGL ES 2.0中,您沒有模型視圖矩陣操作。 – Johnnywho

+0

是的,我使用它。我如何才能在ES2上使用「glTranslatef」? – SevenDays