Android:OpenGL ES:将信息与绘制的对象相关联

时间:2019-01-23 20:06:11

标签: android opengl-es

我有一个很基本的问题,我一生都无法找到在线答案(最主要的原因是因为我并不真正知道自己在寻找什么)。

假设我有多个(大部分是静态的)对象,这些对象存储在一个VBO中并绘制到屏幕上。每个对象将具有与之关联的图像和文本/外部数据。我需要能够导航该对象的“地图”并点按,访问相应的信息。

我的问题是,关于存储此对应数据并将其链接到其各自的图形的最佳实践是什么?我认为您创建了一个“并行”的自定义对象数组,每个对象都引用其图形并保存所有数据...尽管它看起来很基本,并且认为可能会有更好的方法。还考虑到“地图”上可能有成千上万个此类对象。

1 个答案:

答案 0 :(得分:0)

  • 您可以使用模型类,并将所有通用数据介绍给一个实体,而不是使用扩展。您可以使用将考虑整个VBO或opengles程序数据的自定义对象。关于身份,为每个基本对象或“绘图”创建ID。

-我了解您遇到的问题。在opengl / es中,过程编程实际上是在现场。  请记住,您仍处于android封装中,可以使用任何java / android方法。

-当您说“点击”时,您是指点击吗?如果您能看到“ Raycast”主题,就可以了。

-这是兴趣文件。这是不是Android的JS,但您可以使用相同的逻辑方法制作基于对象的应用。

https://github.com/zlatnaspirala/visualjs/blob/master/project/project_instance_webgl2/lib/matrix-world.js

您可以看到以下行:

App.scene [squareObject.name] = squareObject;

我有一个全局对象App.scene。我在这里放置了所有对象缓冲区数据。这是一个关键访问,但类似于数组。

我想说你对数组的想法很好。但不是并行的。程序部分可以正常工作,每个元素实体都需要绘制函数。

查看绘制方法:

https://github.com/zlatnaspirala/visualjs/blob/master/project/project_instance_webgl2/lib/matrix-draws.js

例如,我的绘图实体之一是App.operation.draws.cube函数。 我使用这种方法绘制任何多维数据集,但每个多维数据集都是内部具有uniq数据的uniq对象。