gpt4 book ai didi

java - 顶点限制,如何加载大模型?

转载 作者:行者123 更新时间:2023-12-02 04:24:03 24 4
gpt4 key购买 nike

我正在使用顶点缓冲区:

    private FloatBuffer     vertexBuffer;

private float vertices[] =
{
1.00f, 0.02f, -1.00f,
1.00f, 0.02f, 1.00f,
-1.00f, 0.02f, 1.00f,
-1.00f, 0.02f, -1.00f,
1.00f, 2.02f, -1.00f,
1.00f, 2.02f, 1.00f,
-1.00f, 2.02f, 1.00f,
-1.00f, 2.02f, -1.00f
....
....
};

private byte indices[] =
{
46, 0, 2,
3, 1, 47,
44, 2, 4,
5, 3, 45
...
}

ByteBuffer vbb = ByteBuffer.allocateDirect( vertices.length * 4 );
vbb.order(ByteOrder.nativeOrder());
vertexBuffer = vbb.asFloatBuffer();
vertexBuffer.put(vertices);
vertexBuffer.position( 0 );

gl.glVertexPointer(3, GL10.GL_FLOAT, 0, vertexBuffer);
gl.glDrawElements(GL10.GL_TRIANGLES, indices.length, GL10.GL_UNSIGNED_BYTE, indexBuffer);

问题是当我想要定义一个超过 255 个顶点的模型时,我显然会遇到编译错误。我需要做什么才能定义具有数千个顶点的模型?

我遇到的错误:

错误:(609, 26) 错误:可能会损失精度必需:字节发现:int

最佳答案

private byte indices[]=...

如果您需要高于 255 的值,请不要使用 byte 类型。OpenGL ES 2.0 支持索引数组的 8 位和 16 位类型,因此一次绘制中最多可以引用 65536 个不同的顶点称呼。如果您需要更多,则需要将其拆分为多个数组。

请注意,许多设备可能还支持 32 位索引,但这不是规范所要求的。它由 OES_element_index_uint 提供扩展

关于java - 顶点限制,如何加载大模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32416530/

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