在Forge Viewer中,near和far计算是在内部updateCameraMatrices
方法中完成的。在那种方法中,有一个最终的启发式方法可以在31320线附近更好地微调近值:
// One more attempt to improve the near plane: make it 1/100,000 of the distance of the
// far plane, if that's higher.
// See https://wiki.autodesk.com/display/LMVCORE/Z-Buffer+Fighting for reasoning.
// 1e-4 is generally good below, but inside Silver Cross we get a lot of near clipping. So, 1e-5.
dMin = Math.max(dMin, dMax * 1e-5);
在一些BIM模型中,我在观察者中加载了我可以看到Z-fighting的某些视角。如果我将值从1e-5(1 / 100,000)更改为1e-4(1 / 10,000),如评论中所述,则z-fighting已消失。 对于大型模型(如建筑物)而言,这似乎也更合适。它可能不太适合3D CAD模型等小型模型。
如果我打算渲染的所有模型都是建筑物范围内的模型(来自Revit,Navisworks等),我可以安全地将此值更改为1e-4吗?
Forge Viewer是否允许在其API中配置near / far计算?
答案 0 :(得分:0)
我担心您不应该直接在MongoCollection<Document> collection = database.getCollection(nameOfCollection);
Bson filter = new Document("SearchKey", Value);
Bson newValue = new Document("UpdateKey1", "Value1").append("UpdateKey2", "Value2")....;
Bson updateOperationDocument = new Document("$set", newValue);
collection.updateMany(filter, updateOperationDocument);
文件中修改此值。不建议这样做。我知道也没有这样的API来修改这个值。
但是,您是否尝试更改查看器的界限?您可以参考以下类似案例:Adding a skybox
如果这与您的需求不匹配,您能否提供一些快照和更多详细信息向我展示此问题?如果您这样做,我很高兴将其传递给我们的工程团队进行进一步调查。如果无法公开发布,您可以将这些材料发送到viewer3D.js
。
<强> P.S。请从您发送给我们的任何内容中删除机密信息。