首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >复杂建筑CAD模型的统一与虚拟现实

复杂建筑CAD模型的统一与虚拟现实
EN

Stack Overflow用户
提问于 2019-01-25 20:30:28
回答 2查看 280关注 0票数 0

我在建筑行业工作,我们正在尝试使用Unity和Oculus Rift来可视化我们的项目。

基本上,我们所有的模型都是使用Revit创建的,我们将它们导出到fbx,然后将它们带到Unity中。对于我们拥有的每个模型(电气、机械、建筑、立面...)我们在Revit中生成fbx并将其带入Unity。

这些模型大约有3,000到60000个对象(网格)和大约300到4,000万个多边形。当我们尝试在Unity中可视化模型时,我们得到了非常低的FPS,大约2到3 fps,批量绘制调用大约15000到20000。

我认为问题是我们所有的模型都很复杂,我们把这些模型放在一起放到Unity中。我想知道是否有任何方法可以优化它,我已经尝试了抽取,禁用阴影,遮挡,但似乎什么都不起作用。将模型折叠到单个对象中不是一个选项,因为我们必须允许用户选择和检查单个元素。

EN

回答 2

Stack Overflow用户

发布于 2019-01-25 20:59:18

我正在做一些类似的工作,我可以与许多顶点或网格分享一些类似任务的经验。我正在尝试在Unity中可视化点云,这是一项非常具有挑战性的任务。然而,在我的例子中,我自己创建了点云,并且我没有对它们进行三角测量。这是有帮助的,但我仍然需要应用优化。

根据我的经验,如果你在一帧中渲染的顶点超过1000万,你就会出现fps问题。当然,这可能会根据您的硬件而有所不同。此外,我相信这将是更糟糕的三角网格。我所做的优化工作如下:

  1. 我首先从渲染Camera Frustum中的对象开始,为此我使用了一个名为IsVisibleFrom的函数,它是Rendererextension,如下所示:

使用UnityEngine;

GeometryUtility.CalculateFrustumPlanes(camera);静态类RendererExtensions { public static bool IsVisibleFrom(此渲染器渲染器,摄像头){ Plane[] planes = public return GeometryUtility.TestPlanesAABB(planes,renderer.bounds);} }

然后,可以像这样使用它,方法是遍历所有已有的网格:

代码语言:javascript
运行
复制
Renderer grid;
IEnumerator RenderVisibleGameObject()
{

    for (int i = 0; i < PointCloud.transform.childCount; i++)
    {
        grid = PointCloud.transform.GetChild(i).GetComponent<Renderer>();
        if (!grid.IsVisibleFrom(cam))
        {
            grid.gameObject.SetActive(false);
        }
        else
        {
            grid.gameObject.SetActive(true);
        }


        if (i == (PointCloud.transform.childCount - 1))
            yield return null;

    }

    StartCoroutine(RenderVisibleGameObject());
}

第二个选项是

  1. ,如果可能,并且可以使用Level of Detail创建细节较低的网格。基本上它所做的就是渲染离相机更远的低细节网格。
  2. 我推荐的最后一个选项是使用Occlusion Culling。这与第一个选项类似,但它还会处理遮挡问题,而我的情况并非如此,因为我只有点。
票数 2
EN

Stack Overflow用户

发布于 2019-01-26 17:45:14

您还可以找到感兴趣的Forge Unity AR/VR工具包:

正如您可能知道的,Forge针对大型CAD模型的专业可视化进行了高度优化。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54365389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档