我有一个相当基本的问题,我一辈子都无法在网上找到答案(这肯定是因为我真的不知道我在寻找什么)。
假设我有多个(大部分是静态的)对象存储在一个 VBO 中并绘制到屏幕上。每个对象都将具有与之关联的图像和文本/外部数据。我需要能够在这个对象“ map ”中导航并点击,访问相应的信息。
我的问题是,在存储相应数据并将其链接到各自的绘图时,最佳做法是什么?我认为您创建了一个自定义对象的“并行”数组,每个对象都引用其绘图并保存所有数据......虽然它看起来很初级并且认为可能有更好的方法。还考虑到“ map ”上可能有成千上万个这样的对象。
最佳答案
- 您可以使用模型类并将所有公共(public)数据放入一个实体中,而不是使用扩展。您可以使用您的自定义对象来考虑整个 VBO 或 opengles 程序数据。关于身份为每个基本对象制作 ID 或“绘制”。
-我理解你的问题。在 opengl/es 中,过程式编程实际上就在现场。 请记住,您仍处于 android 环境中,您可以使用任何 java/android 方法。
-当您说“点击”时,您指的是点击吗?如果您看到“Raycast”主题。
-这是兴趣文件。它是 JS 而不是 android,但您可以使用相同的逻辑方法来制作基于对象的应用程序。
你可以看到这样的行:
App.scene[squareObject.name] = squareObject;
我有一个全局对象 App.scene 。我把所有对象缓冲区数据放在这里。它是一个键访问,但像数组一样工作。
我想说你关于数组的想法很好。但不是平行顺序。程序部分可以正常工作,您需要为每个元素实体绘制函数。
查看绘制方法:
例如,我的绘制实体之一是 App.operation.draws.cube 函数。 我使用此方法绘制任何立方体,但每个立方体都是内部具有唯一数据的唯一对象。
关于Android:OpenGL ES:将信息与绘制对象相关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54334863/