【问题标题】:Handling models out of screen libgdx处理屏幕外的模型 libgdx
【发布时间】:2019-09-25 11:11:02
【问题描述】:

在 libgdx 2d 中,我们过去不渲染不在屏幕内的精灵,但是在 3d 中,根据我读到的内容,您绘制了整个场景作为关卡,我的场景非常大,我想知道我是否应该这样做处理屏幕外的模型?以及如何?

【问题讨论】:

  • 我不明白这个问题。您是否认为值得过滤掉不在视图中的项目的绘图取决于您。这取决于场景的复杂性。同样的原理也适用于 2D 或 3D。 3D 网格显然是比精灵重得多的对象,因此您更有可能希望跳过不可见的绘图。
  • @Tenfour04 我想我的问题是,一个场景是一个大模型,所以你要么画,要么不画,但大部分模型(场景)都会出现在屏幕之外.那我怎么处理呢?我该如何删除屏幕外的顶点?

标签: opengl libgdx


【解决方案1】:

重建网格以隐藏某些顶点并不实际。您必须对网格的构建进行微观管理,并确保不隐藏仍然可见的三角形的顶点。而且您必须非常小心地重建您的索引数组。在大多数情况下,这是完全不可行的,因为您可能正在建模程序中构建网格。

您的选择是将您的场景建模为多个单独的模型,或者不用担心。这取决于更有意义的复杂性。

如果您有单独的模型网格,您可以为它们计算边界框,然后用camera.frustum.boundsInFrustum() 测试它们以确定是否应该绘制它们。

请注意,在相机截锥体之外绘制的顶点只会让您浪费一些顶点着色器计算,而不是片段着色器计算。在某个时候,您通过跳过一些顶点所节省的费用将被计算不需要绘制哪些顶点的成本所消耗。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-05
    • 1970-01-01
    相关资源
    最近更新 更多