gpt4 book ai didi

java - 创建一个 List ,添加点并使用 glDrawArrays 进行绘制

转载 作者:行者123 更新时间:2023-11-30 05:11:33 25 4
gpt4 key购买 nike

这是 Add contents to the end of a float array like this 的后续问题。我正在寻找动态创建 3D 盒子。这是我的问题

  • 我想向列表添加一个框,例如添加...

    // FRONT
    -2.0f, -1.5f, -6.0f,
    2.0f, -1.5f, -6.0f,
    -2.0f, 1.5f, -6.0f,
    2.0f, 1.5f, -6.0f,
    // BACK
    -2.0f, -1.5f, -10.0f,
    -2.0f, 1.5f, -10.0f,
    2.0f, -1.5f, -10.0f,
    2.0f, 1.5f, -10.0f,
    // LEFT
    -2.0f, -1.5f, -6.0f,
    -2.0f, 1.5f, -6.0f,
    -2.0f, -1.5f, -10.0f,
    -2.0f, 1.5f, -10.0f,
    // RIGHT
    2.0f, -1.5f, -10.0f,
    2.0f, 1.5f, -10.0f,
    2.0f, -1.5f, -6.0f,
    2.0f, 1.5f, -6.0f,
    // TOP
    -2.0f, 1.5f, -6.0f,
    2.0f, 1.5f, -6.0f,
    -2.0f, 1.5f, -6.0f,
    2.0f, 1.5f, -10.0f,
    // BOTTOM
    -2.0f, -1.5f, -6.0f,
    -2.0f, -1.5f, -10.0f,
    2.0f, -1.5f, -6.0f,
    2.0f, -1.5f, -10.0f,

上面的值将组成 1 个盒子,我该怎么做?

  • 我想使用 glDrawArrays() 绘制整个列表(所有框),我该如何做到这一点?

            FloatBuffer makeFloatBuffer(float[] arr) {
    ByteBuffer bb = ByteBuffer.allocateDirect(arr.length*4);
    bb.order(ByteOrder.nativeOrder());
    FloatBuffer fb = bb.asFloatBuffer();
    fb.put(arr);
    fb.position(0);
    return fb;

    }

请记住,我将通过 float 缓冲区发送所有内容。然后像这样画..

            gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 4);          
gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 4, 4);
gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 8, 4);
gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP,12, 4);
gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP,16, 4);
gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP,20, 4);

我对 Point3D、OpenGL 和一般图形完全陌生,因此我们将不胜感激。

谢谢。

最佳答案

现在您已经添加了 opengl 标记,我明白为什么您需要 float[] 结构(或至少是 float 而不是 double )。

这里是demo application 。对我来说,它看起来是一段很好的学习 opengl 基础知识的代码,包括顶点数组。从其他问题我看到你在做一个android项目。所以我只是希望它也适用于 android。

关于java - 创建一个 List<Point3D> ,添加点并使用 glDrawArrays 进行绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3204438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com