Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 存储OpenGL ES多边形和顶点信息_Java_Android_Opengl Es_3d - Fatal编程技术网

Java 存储OpenGL ES多边形和顶点信息

Java 存储OpenGL ES多边形和顶点信息,java,android,opengl-es,3d,Java,Android,Opengl Es,3d,我正在为Android开发一个简单的建模程序概念,我遇到了一些问题 基本上,我将顶点和多边形信息保存在Java向量中(我需要这些信息来操作它们,而不是绘制它们) 对于绘图,我使用VBO 每个多边形当前都有一个由其组成的顶点列表。这意味着填充索引数组时,我需要找出每个顶点的索引,如果创建或删除顶点,这些索引可能会更改 我使用Java向量的indexOf(Vertex v)方法快速编写了这个代码,但显然这非常慢,我想知道管理它的最佳方法是什么,这样它就不会占用太多的处理时间 提前感谢。首先,一个可以

我正在为Android开发一个简单的建模程序概念,我遇到了一些问题

基本上,我将顶点和多边形信息保存在Java向量中(我需要这些信息来操作它们,而不是绘制它们)

对于绘图,我使用VBO

每个多边形当前都有一个由其组成的顶点列表。这意味着填充索引数组时,我需要找出每个顶点的索引,如果创建或删除顶点,这些索引可能会更改

我使用Java向量的indexOf(Vertex v)方法快速编写了这个代码,但显然这非常慢,我想知道管理它的最佳方法是什么,这样它就不会占用太多的处理时间


提前感谢。

首先,一个可以稍微提高性能的快速修复方法是:使用ArrayList而不是Vector-您可能不需要同步开销

主要问题是,每次顶点数组更改时,都会重新计算整个索引数组。当前需要执行此操作,因为如果删除顶点,列表中删除顶点后的每个顶点的索引都会更改。因此,关键是尽量减少对顶点索引的更改,使您能够轻松维护索引数组,而不是完全重新计算它。
因此:与其使用list.remove()删除顶点,不如将其替换为列表末尾的顶点。通过这种方式,只有一个索引发生了更改,因此迭代索引数组并替换新值将非常快。

非常感谢,这非常有帮助。