【问题标题】:What is the maximum polycount unity can handle可以处理的最大 polycount unity 是多少
【发布时间】:2019-09-03 04:33:27
【问题描述】:

Unity 可以处理的最大 polycount 是多少,我正在 Unity 中构建基于家具的应用程序,我的客户想要高度详细的 3D 模型。什么是最大的统一可以处理,是否有任何最佳实践来保持资产的质量并且不影响应用程序的性能。我正在为以下平台构建应用程序,OSX、Windows、Android 和 iOS。

【问题讨论】:

  • 错误的问题。问题是您的目标设备可以处理什么? (我只知道 HoloLens 1 的限制,例如,如果你真的想要 60 FPS,它是最大 300.000 verts)与每个 GameEngine 一样,最佳实践是尽可能降低模型的质量。它还取决于材质/着色器,当然还有你的游戏逻辑(和物理)
  • 这个问题有点宽泛,正如@derHugo 所指出的那样,它的某种形式(即更具体地针对目标设备功能)会更适合gamedev.stackexchange.com,因为它不是专门针对编程的。
  • 谢谢你们,宝贵的意见。将专注于目标设备。也许我需要与客户沟通目标设备而不是讨论代码细节。

标签: unity3d 3d-model


【解决方案1】:

除了每个网格 65k 顶点(如果使用默认值,16 位索引)之外,没有硬性技术限制,但我认为网格数没有限制,如果您要重复使用网格,您可以使用 Graphics.DrawMeshInstanced 绘制它们,或者如果你喜欢一些缓冲工作,Graphics.DrawMeshInstancedIndirect。

使用相对现代的显卡、足够的内存等,您可以轻松地在百万范​​围内工作。你可以进一步推动(数千万?数亿?),但在某些时候,性能不可避免地会下降。

所以基本上答案是:任何适合你的 RAM 的数字,如果你想要它实时,次要约束取决于你的硬件(如果它没有用完内存,unity 将渲染任意数量的多边形,但是可笑的多边形可能需要几秒钟才能渲染)

【讨论】:

  • 实质上,材质对渲染速度的影响比网格更大。
【解决方案2】:

如果您想要详细的对象和高性能,您可以使用详细级别,您可以在此处找到更多信息:https://docs.unity3d.com/560/Documentation/Manual/LevelOfDetail.html#:~:text=and%20OpenGL%20Core-,Level%20of%20Detail%20(LOD),on%20it%20is%20greatly%20reduced.&text=An%20optimisation%20technique%20called%20Level,its%20distance%20from%20camera%20increases

对于 Android 设备,建议将场景的多边形数保持在 90k 以下,在 PC 设备中,这个数字可以增加到 1 或 200 万。

但也有诸如遮挡剔除之类的技术可以提高游戏性能。 请参阅此链接:https://docs.unity3d.com/Manual/OcclusionCulling.html

【讨论】:

    猜你喜欢
    • 2016-01-20
    • 1970-01-01
    • 1970-01-01
    • 2016-07-30
    • 1970-01-01
    • 1970-01-01
    • 2013-01-14
    • 1970-01-01
    • 2011-03-06
    相关资源
    最近更新 更多