Import 仅在左正交视图中渲染的对象

Import 仅在左正交视图中渲染的对象,import,viewport,mesh,3dsmax,3ds,Import,Viewport,Mesh,3dsmax,3ds,加载文件后视口的外观: 我遇到了一个问题,是我从游戏中导入的非常大的对象(从物理尺寸而不是多峰等方面来说),我使用ninjaripper(一个用于从游戏中提取3d模型的脚本)。当我打开包含这些大型对象的文件时,这些对象仅在“左正交”视口中渲染。无论我在所述视口上选择了哪种渲染模式(线框、边、面等),所有其他视口/视图都不会显示几何体。这些对象在透视视图中也不可见。当我取消隐藏单个对象(正常大小)之外的所有项目时,我可以在所有视口(包括透视视口)中看到该对象。当我再次解开所有隐藏的东西时,以前可

加载文件后视口的外观:

我遇到了一个问题,是我从游戏中导入的非常大的对象(从物理尺寸而不是多峰等方面来说),我使用ninjaripper(一个用于从游戏中提取3d模型的脚本)。当我打开包含这些大型对象的文件时,这些对象仅在“左正交”视口中渲染。无论我在所述视口上选择了哪种渲染模式(线框、边、面等),所有其他视口/视图都不会显示几何体。这些对象在透视视图中也不可见。当我取消隐藏单个对象(正常大小)之外的所有项目时,我可以在所有视口(包括透视视口)中看到该对象。当我再次解开所有隐藏的东西时,以前可以看到的物体消失了。当这些超大对象出现时切换到透视视图时,“viewcube”会因未知原因消失。在透视视口中放大或缩小也会导致viewcube消失。这是我到目前为止看到的唯一一个显示这些问题的场景,我所有的图形驱动程序都是最新的(规格如下所列)。场景包含3602个对象,具有1957286个多边形和1508550个顶点

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

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

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

我尝试重置场景,然后将包含所有“正常大小对象”的场景合并到一个空场景中。这将导致所有视口正确渲染对象。但是,在保存文件并重新打开保存的文件后,4个视口中的2个在删除了除“正常大小”对象以外的所有对象后,没有像刚才那样渲染对象

我的问题是:我应该如何处理这些非常大的导入对象,以修复它们导致的视口渲染问题

我编写了一个简单的maxscript代码来打印场景中最大对象的最大大小,结果得到的值为2.6*10^38[通用单位],根据我的计算,该值对应于6.6*10^36[米],总之:非常大。(我怀疑ninjaripper脚本或将ninjaripper生成的文件导入3ds max的脚本存在某种错误,导致某些顶点的位置值非常大)。当我切换到“实用程序”中的“测量”点击并按Ctrl+A选择场景中的所有对象(包含所有对象的场景,包括超大对象)时,3ds max会因对象尺寸过大而崩溃(错误消息:“应用程序错误-发生错误,应用程序现在将关闭。自上次保存后,未发生任何场景更改。”)

我可以编写一些maxscript代码来删除大于某个大小的所有对象(例如:10^5[米])。但是,正如前面提到的,出于某种原因,这并不能完全解决问题(保存只有“正常大小”对象的场景并重新打开场景后,4个视口中只有2个正确渲染了对象。删除所有超大对象后,我再次运行代码测量场景中最大对象的最大大小,以检查我是否确实跳过了其中一个大对象,结果是t的值为:121.28[通用单位](对应于对象:“Mesh_3598”),这是一个相对正常的大小,但我的4个视口中有2个即使在删除大对象后也不会渲染我的对象(仅当选择了左正交视图时,才能在部分时间不渲染的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场景文件,请参见以下链接:

任何建议/帮助都将不胜感激。非常感谢!

系统规格:

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)
-Autodesk 3ds max 2018 x64

-Windows 10 PRO x64

-i5 6600k@3.5ghz

-msi z170a游戏m7-插座1151-atx

-coolermaster g750m-750瓦

-msi radeon r9-390x游戏-8gb

-诺克图亚NH-D15


-金斯顿hyper-x fury黑色16gb-pc-21300-dimm-4x4gb@2666mhz

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