【发布时间】:2016-03-15 16:33:26
【问题描述】:
我有渲染模型的代码,但是如果我使用了太多顶点,我会遇到一个问题:程序无法分配足够的内存来处理所有顶点。
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_NORMAL_ARRAY);
glEnableClientState(GL_COLOR_ARRAY);
glVertexPointer(3,GL_FLOAT,0,VertexArray);
glNormalPointer(GL_FLOAT,0,NormalArray);
glColorPointer(3,GL_FLOAT,0,ColorArray);
这是我的代码,它只是其中的一部分,但我想够了。 VertexArray 是通过 new 操作符得到的,它是一个数组的指针。但是如果我使用长度数组,例如10000000 个值我得到一个错误。
有没有办法从 RAM 的不同部分分配内存?或者有什么其他方法可以找到解决办法?
【问题讨论】:
-
这些数组从何而来?
-
@nicol-bolas 来自体素八叉树。它是立方体顶点
-
我的意思更多的是一般他们来自哪里。向我们展示他们的声明。如果您在堆上分配它们,让我们看看这些分配。另外,你得到什么样的错误,你从哪里得到的?究竟是什么错误?给我们一个minimal reproducible example