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

标签 android opengl-es

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

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

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

最佳答案

  • 您可以使用模型类并将所有公共(public)数据放入一个实体中,而不是使用扩展。您可以使用您的自定义对象来考虑整个 VBO 或 opengles 程序数据。关于身份为每个基本对象制作 ID 或“绘制”。

-我理解你的问题。在 opengl/es 中,过程式编程实际上就在现场。 请记住,您仍处于 android 环境中,您可以使用任何 java/android 方法。

-当您说“点击”时,您指的是点击吗?如果您看到“Raycast”主题。

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

关于Android:OpenGL ES:将信息与绘制对象相关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54334863/

相关文章:

android - 生成没有 key 存储密码的签名 APK

android - JSONException: java.lang.String 无法转换为 JSONObject

android - 纹理大小的限制? Android Open GL ES 2.0

java - 如何通过触摸屏输入修改 Opengl 形状?

android - 如何克服android中tabwidget的这种情况

Android Retrofit 使用授权主体上传文件

android - "Starting Gradle daemon"循环创建无限进程

android - 如何在 android 中使用 glreadpixels ——通常会得到零

performance - eglSwapBuffers 突然需要更长的时间才能完成

ios - Core Image Kernel Language 的 OpenGL 坐标系