2012-11-13 21 views

回答

2

在Java中,它只是一個普通的老式Java float,根本不需要GLfloat。 lwjgl中的所有API都是根據Java原始類型float定義的。

(在所有的C語言實現,我知道的,GLfloat只是普通的老float爲好。)

0

必須使用LWJGL公用事業到位glfloat陣列來創建一個float緩衝區。位於此導入中的 。 import org.lwjgl.BufferUtils;

例如:

lightPos = BufferUtils.createFloatBuffer(4); 
lightPos.put(1).put(1).put(3).put(0).flip(); 
difuseLight = BufferUtils.createFloatBuffer(4); 
difuseLight.put(10.0f).put(10.0f).put(10.0f).put(1.0f).flip(); 
ambientLight = BufferUtils.createFloatBuffer(4); 
ambientLight.put(.75f).put(.75f).put(.75f).put(1).flip(); 
glEnable(GL_DEPTH_TEST); 
glEnable(GL_LIGHTING); 
glEnable(GL_LIGHT0); 
glLight(GL_LIGHT0, GL_LIGHT_MODEL_AMBIENT, ambientLight); 
glLight(GL_LIGHT0, GL_SPECULAR, difuseLight); 
+0

這是替換GLfloat數組? – user1744024

+0

@ user1744024是的,在lightPos,difuseLight和ambientLight上面的代碼中有三個示例。您必須將變量聲明爲FloatBuffer類型。並且您必須導入org.lwjgl.BufferUtils;你可以在上面的代碼中看到如何使用float緩衝區來代替opengl的GLfloat數組,它在opengl例子中看起來像這樣:Glfloat variable_name [] = {1,1,0,1}; –