仅在左正交视图中呈现的对象

Objects only rendered in Left orthographic view

加载文件后视口的外观:

我遇到了一个问题,该问题是由我使用 ninjaripper(一种用于从游戏中提取 3d 模型的脚本)从游戏中导入的超大对象(就物理尺寸而非多边形计数等而言)引起的。当我打开包含这些大对象的文件时,这些对象仅在左侧正交视口中呈现。所有其他 viewports/views 不显示几何体,无论哪种渲染模式(线框、边面等)我在所述视口上 selected。这些对象在透视图中也不可见。当我取消隐藏单个对象(正常大小)之外的所有项目时,我能够在所有视口(包括透视视口)中看到该对象。当我再次取消隐藏时,之前可以看到的对象消失了。当存在这些非常大的物体时切换到透视图时,'viewcube' 会因未知原因消失。在透视视口中放大或缩小也会导致视立方体消失。这是迄今为止我遇到的唯一一个显示这些问题的场景,我所有的图形驱动程序都是最新的(下面列出了规格)。该场景包含 3602 个对象,具有 1,957,286 个多边形和 1,508,550 个顶点。

这是我在 3ds max 中可以缩小的最远距离:

Viewcube 在右上角和右下角的视口中消失了:

我尝试手动移除所有非常大的对象,之后可以在 2 个视口中看到剩余的(正常大小)对象(左上角和右上角视口正确渲染)。 删除所有超大对象后的视口:

我尝试重置场景,然后我将包含所有 'normal sized objects' 的场景合并到一个空场景中。这导致所有视口正确渲染对象。但是,在保存文件并重新打开保存的文件后,4 个视口中有 2 个没有渲染对象,就像刚刚删除 'normal sized' 对象以外的所有对象后的情况一样。

我的问题是:我应该如何处理这些非常大的导入对象才能解决它们导致的视口渲染问题?

我写了一段简单的 maxscript 代码来打印出场景中最大物体的最大尺寸,得到的值为 2.6*10^38 [generic units],根据我的计算对应值为 6.6*10^36 [米],总而言之:非常大。 (我怀疑 ninjaripper 脚本或将 ninjaripper 生成的文件导入 3ds max 的脚本有某种错误导致某些顶点具有非常大的位置值)。当我切换到 'utilities' 中的测量点击并按 Ctrl+A 到 select 场景中的所有对象(包含所有对象(包括非常大的对象)的场景),3ds max 由于对象大小过大而崩溃(错误消息:"Application error- An error has occured and the application will now close. No Scene changes have occured since your last save.")。

我可以编写一些 maxscript 代码来删除所有大于特定大小(例如:10^5 [米])的对象。但是,如上所述,出于某种原因,这并不能完全解决问题(在仅使用 'normal sized' 对象保存场景并重新打开场景后,4 个视口中只有 2 个正确渲染对象。我 运行 删除所有非常大的物体后再次测量场景中最大物体的最大尺寸的代码,以检查我是否确实没有跳过这些大物体之一,结果值为:121.28 [通用单位] (对应于对象:"Mesh_3598")这是一个相对正常的大小,但是我的 4 个视口中有 2 个即使在删除大对象后也没有渲染我的对象(只有当左正交视图被 selected 他们可以在部分时间不渲染的2个视口中看到。

检查最大对象的代码(同时打印出该对象的最大大小):

global_max=0
largest_obj=undefined
for obj in geometry do(
    obj_max_x = (obj.max.x-obj.min.x)
    obj_max_y = (obj.max.y-obj.min.y)
    obj_max_z = (obj.max.z-obj.min.z)
    local_max = amax(#(obj_max_x, obj_max_y, obj_max_z ))
    if local_max > global_max do 
        global_max = local_max ; largest_obj = obj
        )
messagebox ("global max = " + global_max as string)
messagebox ("largest obj = " + largest_obj as string)

有关我提到的 3ds max 场景文件,请参阅以下链接: https://drive.google.com/open?id=1bAilmaHAXDr4WuD8gGS4piQfPzzJM9MH

任何 suggestions/help 将不胜感激。非常感谢!

系统规格:

-Autodesk 3ds max 2018 x64

-Windows 10 PRO x64

-i5 6600k @3.5ghz

-msi z170a gaming m7 - 插槽 1151 - atx

-酷冷至尊 g750m -750watt

-msi radeon r9-390x gaming -8gb

-猫头鹰NH-D15

-kingston hyper-x fury black 16gb-pc-21300-dimm-4x4gb@2666mhz

事实证明,非常大的物体确实导致了视口渲染错误。删除所有最大尺寸为 100000 [通用单位] 的对象后,视口渲染错误消失了。我怀疑这个问题是由于对象尺寸非常大而导致对象不在视口的远平面和近平面之间造成的。