【问题标题】:Rendering a frame around a 3d object using opengl使用 opengl 围绕 3d 对象渲染框架
【发布时间】:2016-09-16 01:55:36
【问题描述】:

我在 android 上使用 Rajawali 和 Opengl 渲染一个 3d 对象。我想在对象的边界周围渲染一个立方体,如图所示。

我了解我可能需要在 rajawali 中使用一组行或 stack api。但我不明白如何使用 Object3D api 来确定哪些点由线组成。我尝试使用 Object3D.getGeometry().getBoundingBox() api,但它返回 null。

我需要有关如何使用 Rajawali api 导出最小最大 Number3d 点的提示,以及根据这些线创建一组 12 条线是否是正确的解决方案。或者我应该在加载后以某种方式将它添加到模型中,以便我可以随它缩放?

这可能太明显了,但请把我当作初学者。谢谢。

【问题讨论】:

    标签: android opengl-es 3d rajawali


    【解决方案1】:

    Object3D.getGeometry().getBoundingBox() 返回未定义的值,直到您调用更新边界框信息的Object3D.getGeometry().computeBoundingBox() 方法。

    如果您使用具有场景层次结构的复杂 3d 对象,下面的答案将为您提供更多信息。 Any way to get a bounding box from a three.js Object3D?

    更新: 最好的方法是使用 Min/Max 值创建一个带有线条的单独对象,并使用原始对象的 Transformation。或者使 BoundingBox 几何体成为原始对象的子对象。

    【讨论】:

    • Rajawali Library for Opengl 没有任何计算边界框的方法。但即使我得到它,它也不能解决我的问题。
    • 我已经用更多信息更新了我的答案。我刚刚发现Object3D有一个成员变量mShowBoundingVolume。检查此来源:github.com/Rajawali/Rajawali/blob/master/rajawali/src/main/java/…
    • 边界框为空。所以没有希望渲染它。打开了一个问题github.com/Rajawali/Rajawali/issues/1774
    • 从他们的代码中,类文件 Geometry3D & BoundingBox:我看起来只有在使用 Vertices 构造几何时才会计算边界框。如果直接从缓冲区构造 Geometry3D 对象,则该类无法计算 BoundingBox。
    • 最好的方法是从你发送给类的缓冲区中计算边界框。或者提供顶点而不是缓冲区。请提供有关您如何获取缓冲区的更多信息,以便我们制定解决方案。
    猜你喜欢
    • 2011-12-12
    • 1970-01-01
    • 2018-06-29
    • 2012-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-30
    • 1970-01-01
    相关资源
    最近更新 更多