为什么 mipmap 不能提升 2.5D 场景中的精灵性能?
Why are mipmaps not boosting sprite performance in this 2.5D scenario?
我有很多高分辨率灌木丛。
问题是,这些灌木丛的细节太高,因此会导致性能问题(部分原因是阴影)。一个平滑的解决方案可能是 mipmaps,当远离相机时允许灌木丛变得更低分辨率。然而,这并没有像预期的那样工作。
带有 mipmap 的场景(你可以看到远处的精灵是模糊的):
没有 mipmap 的场景:
这就是性能差异。
使用 mipmaps
没有 mipmaps
为什么没有性能提升?
您的 mipmap 不能解决您的性能问题。它们只会降低更远物体的纹理分辨率。性能差异是有的,但不是你所期望的。
737 批次是将大量绘图调用批处理在一起。
减少绘制调用并获得所需的性能提升
你有几个选择:
- 减少三角形数。您没有按照建议显示线框,但是您想为草做的是有一个带有 2 个三角形的简单正方形,并像您已经使用的那样使用基于 alpha 蒙版的纹理。
- 使您的 material 更高效:例如,不要使用 2 面渲染,如果您使用着色器图,请减少处理量。
- 使草对象静止并烘烤您的光照。由于渲染器需要 1 次网格绘制调用和 1 次灯光绘制调用,这将大大减少您的绘制调用。
- 此外,您还可以将多个草对象分组到集群中。用一个 material 对它们进行纹理处理,因为每个人 material 也会影响您的表现。
要了解绘制调用和批处理之间的区别,请阅读:
关于 polycount 的信息非常丰富的论坛 post,Joe Wilson 在其中分享了一些知识。值得一读:
https://polycount.com/discussion/206507/the-cost-of-a-texture-draw-call-quantity-vs-resolution
我有很多高分辨率灌木丛。
问题是,这些灌木丛的细节太高,因此会导致性能问题(部分原因是阴影)。一个平滑的解决方案可能是 mipmaps,当远离相机时允许灌木丛变得更低分辨率。然而,这并没有像预期的那样工作。
带有 mipmap 的场景(你可以看到远处的精灵是模糊的):
没有 mipmap 的场景:
这就是性能差异。
使用 mipmaps
没有 mipmaps
为什么没有性能提升?
您的 mipmap 不能解决您的性能问题。它们只会降低更远物体的纹理分辨率。性能差异是有的,但不是你所期望的。
737 批次是将大量绘图调用批处理在一起。
减少绘制调用并获得所需的性能提升 你有几个选择:
- 减少三角形数。您没有按照建议显示线框,但是您想为草做的是有一个带有 2 个三角形的简单正方形,并像您已经使用的那样使用基于 alpha 蒙版的纹理。
- 使您的 material 更高效:例如,不要使用 2 面渲染,如果您使用着色器图,请减少处理量。
- 使草对象静止并烘烤您的光照。由于渲染器需要 1 次网格绘制调用和 1 次灯光绘制调用,这将大大减少您的绘制调用。
- 此外,您还可以将多个草对象分组到集群中。用一个 material 对它们进行纹理处理,因为每个人 material 也会影响您的表现。
要了解绘制调用和批处理之间的区别,请阅读:
关于 polycount 的信息非常丰富的论坛 post,Joe Wilson 在其中分享了一些知识。值得一读: https://polycount.com/discussion/206507/the-cost-of-a-texture-draw-call-quantity-vs-resolution