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

Android: OpenGL ES: associating information with drawn objects

我有一个相当基本的问题,我一辈子都无法在网上找到答案(这肯定是因为我真的不知道我在寻找什么)。

假设我有多个(大部分是静态的)对象存储在一个 VBO 中并绘制到屏幕上。每个对象都会有图像和与之关联的 text/external 数据。我需要能够导航这个 "map" 的对象并点击,访问相应的信息。

我的问题是,在存储相应数据并将其链接到各自的绘图时,最佳做法是什么?我认为您创建了一个 "parallel" 自定义对象数组,每个对象都引用其绘图并保存所有数据......虽然它看起来很初级并且认为可能有更好的方法。还考虑到 "map".

上可能有数千个这样的对象
  • 您可以使用模型 class 并将所有公共数据放入一个实体中,而不是使用扩展。您可以使用您的自定义对象来考虑整个 VBO 或 opengles 程序数据。关于身份为每个基本对象制作 ID 或 "draws"。

-我理解你的问题。在 opengl/es 中,程序化编程实际上已经出现。 请记住,您仍处于 android 包围圈中,您可以使用任何 java/android 方法。

-当您说 "tap" 时,您指的是点击吗?如果你看到 "Raycast" thema.

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

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 函数。 我使用此方法绘制任何立方体,但每个立方体都是内部具有唯一数据的唯一对象。