我使用Rajawali将一个模型(例如茶壶)导入我的场景。 我想要的是标记模型的部分(例如盖子,身体,脚,手柄和喷口) 使用普通的Android视图,但我不知道如何实现这一点。具体来说,定位 正确位置的标签似乎充满挑战。我的想法是,当我在场景中转换模型的位置时,标签的提示仍然正确定位
Rajawali教程展示了如何将Android视图置于场景之上https://github.com/Rajawali/Rajawali/wiki/Tutorial-08-Adding-User-Interface-Elements 。我也理解如何使用转换矩阵在模型上的3D坐标 转换为屏幕上的2D坐标,但我不知道如何确定精确的3D坐标 在模型本身。使用Blender将模型导出为OBJ格式,因此我假设有一些聪明的方法可以确定 Blender中的坐标并将它们导出到单独的文件中或以某种方式将它们包含在OBJ文件中(但不是 渲染这些点,只包括它们作为元数据),但我不知道如何做到这一点。
非常感谢任何想法! :)
答案 0 :(得分:1)
我会使用screenquad,而不是视图。这是一个通用的GL解决方案,也适用于iOS。
您必须确定所需模型顶点的索引。使用下面的文本渲染算法,你可以调整它们,直到你找到正确的。
性能瓶颈是#7,因为每个帧必须将整个位图复制到GL纹理内存。尽量保持位图尽可能小,保持纵横比。也许让用户切换标签。
请注意,复制到GL纹理内存是多余的,因为在OpenGL-ES中,GL内存只是常规内存。出于兼容性原因,保留冗余的常规内存块以人为地强制执行该副本。