【问题标题】:OpenGL ES - set the width, height, depth of an object in 3DOpenGL ES - 在 3D 中设置对象的宽度、高度、深度
【发布时间】:2013-12-30 11:04:26
【问题描述】:

我想问一下OPENGL ES android,我想建一堵特定宽度、高度和深度的墙

public void buildingW(float width, float height, float depth)

为了放入我的程序中,任何人都可以建议我如何做到这一点?

是否有构建一个 obj 文件然后读取它?或者我们可以直接画出来?

非常感谢!

【问题讨论】:

    标签: opengl-es 3d opengl-es-2.0


    【解决方案1】:

    最简单的方法是简单地使用一个立方体并将其缩放为glScalef(width, height, depth) 这将是最佳的,因为即使您绘制了多个不同的墙,您也只需要一个顶点缓冲区。

    另一种很好的方法是在加载时间预定义维度中简单地创建顶点(网络充满了源)。在这种情况下,每面墙都有自己的顶点缓冲区,但您不需要对其进行缩放。

    至于使用 obj 文件,您必须导入立方体并使用缩放来转换它,因此它与第一个解决方案几乎相同,但您不能将它与第二个解决方案一起使用(尽管导入一个简单的立方体 obj似乎很浪费)。

    你可以直接使用只有宽度、高度、深度和一些中心点的片段着色器来绘制它,但你需要相当多的数学技能,而且它会比使用顶点慢得多,所以我不建议这样做。

    【讨论】:

    • 非常感谢您的回答。由于我对opengl es很陌生,我可以只创建一个顶点数组,然后使用函数glDrawArrays来绘制墙吗?谢谢
    • 或者因为我已经有 6 个围绕中心的立方体,我希望调整它们的宽度、高度和深度以创建 6 面墙。我可以那样做吗?谢谢
    • 你写的任何一种方式都很好。尝试使用您的立方体,将其放置在您希望墙中心的位置,然后使用 glScale 设置尺寸。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-17
    • 1970-01-01
    相关资源
    最近更新 更多