我工作的OpenGL ES 2.0着色器在Android ...如何浮動數組傳遞給glVertexAttribPointer
我有與頂點的其他屬性一起頂點的位置float數組。 位置和其他屬性可能隨時間而改變。
怎麼可以這樣修改後的數組傳遞到glVertexAttribPointer, 這樣我可以使用更新的值
當我試圖通過它繪製場景,我得到
方法glVertexAttribPointer(INT, (INT,int,int,boolean,int,float [])不適用
我工作的OpenGL ES 2.0着色器在Android ...如何浮動數組傳遞給glVertexAttribPointer
我有與頂點的其他屬性一起頂點的位置float數組。 位置和其他屬性可能隨時間而改變。
怎麼可以這樣修改後的數組傳遞到glVertexAttribPointer, 這樣我可以使用更新的值
當我試圖通過它繪製場景,我得到
方法glVertexAttribPointer(INT, (INT,int,int,boolean,int,float [])不適用
FloatBuffer yourFloatBuffer;
float[] yourFloatArray;
FloatBuffer byteBuf = ByteBuffer.allocateDirect(yourFloatArray.length * 4);
byteBuf.order(ByteOrder.nativeOrder());
yourFloatBuffer = byteBuf.asFloatBuffer();
yourFloatBuffer.put(yourFloatArray);
yourFloatBuffer.position(0);
這應該有效。
錯誤是告訴你,你需要把你有的浮點頂點數組,並以某種方式將它轉換成緩衝區對象。我不是openGL專家,所以就我可以回答這個問題。 – Eric 2011-05-28 08:49:20
thanx埃裏克,但我不能修改緩衝區...所以想要使用數組intead – sravan 2011-05-28 09:03:58