微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将浮点数组传递给glVertexAttribPointer

如何解决如何将浮点数组传递给glVertexAttribPointer

|| 我正在Android上使用OpenGL ES 2.0着色器... 我有一个带有顶点位置以及其他顶点属性的float数组。 位置和其他属性可能会随时间变化。 我如何将这个修改后的数组传递给glVertexAttribPointer, 这样我就可以用更新的值绘制场景 当我试图通过它时,我得到了   GLES20类型的方法glVertexAttribPointer(int,int,int,boolean,int,Buffer)不适用于参数(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);
这应该工作。     ,        是java.nio.Buffer吗?因为好像你需要
java.nio.FloatBuffer
并调用floatBuffer.array() 以获得float []数组。 但是,显然,它在FloatBuffer.java中是最终的:
final float[] hb;   
因此,您似乎需要...可能需要扩展FloatBuffer并使该数组成为非最终数组。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。