我正在使用Android上的OpenGL ES 2.0着色器...
我有一个浮点数组,顶点位置和顶点的其他属性。 位置和其他属性可能会随着时间而改变。
如何将此修改后的数组传递给glVertexAttribPointer, 这样我就可以用更新的值绘制场景
当我试图通过它时,我得到了
GLES20类型中的方法glVertexAttribPointer(int,int,int,boolean,int,Buffer)不适用于参数(int,int,int,boolean,int,float [])
答案 0 :(得分:2)
FloatBuffer yourFloatBuffer;
float[] yourFloatArray;
FloatBuffer byteBuf = ByteBuffer.allocateDirect(yourFloatArray.length * 4);
byteBuf.order(ByteOrder.nativeOrder());
yourFloatBuffer = byteBuf.asFloatBuffer();
yourFloatBuffer.put(yourFloatArray);
yourFloatBuffer.position(0);
这应该有用。
答案 1 :(得分:0)
是java.nio.Buffer吗?因为看起来你需要
java.nio.FloatBuffer
并调用floatBuffer.array()
从中获取float []数组。
但是,显然它在FloatBuffer.java中是最终的:
final float[] hb;
所以看来你需要...可能会扩展FloatBuffer并使数组不是最终的。