Autodesk forge 伪造查看器质量设置

Autodesk forge 伪造查看器质量设置,autodesk-forge,autodesk-viewer,Autodesk Forge,Autodesk Viewer,由于不同的最终用户有不同的硬件,GPU的使用有时会非常繁重,无法计算某些设备/计算机,这就是为什么我们希望在应用程序中添加一个下拉列表,使最终用户能够为其在线3D设计选择不同的质量设置 viewer.setOptimizeNavigation(true) viewer.setQualityLevel(false, false); viewer.setGroundShadow(false); viewer.setGroundReflection(false); viewer.setProgress

由于不同的最终用户有不同的硬件,GPU的使用有时会非常繁重,无法计算某些设备/计算机,这就是为什么我们希望在应用程序中添加一个下拉列表,使最终用户能够为其在线3D设计选择不同的质量设置

viewer.setOptimizeNavigation(true)
viewer.setQualityLevel(false, false);
viewer.setGroundShadow(false);
viewer.setGroundReflection(false);
viewer.setProgressiveRendering(true);
viewer.setOptimizeNavigation(false)
viewer.setQualityLevel(true, true);
viewer.setGroundShadow(false);
viewer.setGroundReflection(false);
viewer.setProgressiveRendering(true);
viewer.setQualityLevel(true, true);
viewer.setGroundShadow(true);
viewer.setGroundReflection(true);
viewer.setProgressiveRendering(false); (to display shaders correctly)
我们希望通过API打开/关闭查看器中的相关设置,对三个不同类别(低/中/高)的不同值进行分类

viewer.setOptimizeNavigation(true)
viewer.setQualityLevel(false, false);
viewer.setGroundShadow(false);
viewer.setGroundReflection(false);
viewer.setProgressiveRendering(true);
viewer.setOptimizeNavigation(false)
viewer.setQualityLevel(true, true);
viewer.setGroundShadow(false);
viewer.setGroundReflection(false);
viewer.setProgressiveRendering(true);
viewer.setQualityLevel(true, true);
viewer.setGroundShadow(true);
viewer.setGroundReflection(true);
viewer.setProgressiveRendering(false); (to display shaders correctly)
我们的目标是为“低”选项指定绝对最低质量/性能设置,为“高”设置指定绝对最佳渲染质量。以下是我们的建议:

viewer.setOptimizeNavigation(true)
viewer.setQualityLevel(false, false);
viewer.setGroundShadow(false);
viewer.setGroundReflection(false);
viewer.setProgressiveRendering(true);
viewer.setOptimizeNavigation(false)
viewer.setQualityLevel(true, true);
viewer.setGroundShadow(false);
viewer.setGroundReflection(false);
viewer.setProgressiveRendering(true);
viewer.setQualityLevel(true, true);
viewer.setGroundShadow(true);
viewer.setGroundReflection(true);
viewer.setProgressiveRendering(false); (to display shaders correctly)
低质量

viewer.setOptimizeNavigation(true)
viewer.setQualityLevel(false, false);
viewer.setGroundShadow(false);
viewer.setGroundReflection(false);
viewer.setProgressiveRendering(true);
viewer.setOptimizeNavigation(false)
viewer.setQualityLevel(true, true);
viewer.setGroundShadow(false);
viewer.setGroundReflection(false);
viewer.setProgressiveRendering(true);
viewer.setQualityLevel(true, true);
viewer.setGroundShadow(true);
viewer.setGroundReflection(true);
viewer.setProgressiveRendering(false); (to display shaders correctly)
中等质量

viewer.setOptimizeNavigation(true)
viewer.setQualityLevel(false, false);
viewer.setGroundShadow(false);
viewer.setGroundReflection(false);
viewer.setProgressiveRendering(true);
viewer.setOptimizeNavigation(false)
viewer.setQualityLevel(true, true);
viewer.setGroundShadow(false);
viewer.setGroundReflection(false);
viewer.setProgressiveRendering(true);
viewer.setQualityLevel(true, true);
viewer.setGroundShadow(true);
viewer.setGroundReflection(true);
viewer.setProgressiveRendering(false); (to display shaders correctly)
高质量

viewer.setOptimizeNavigation(true)
viewer.setQualityLevel(false, false);
viewer.setGroundShadow(false);
viewer.setGroundReflection(false);
viewer.setProgressiveRendering(true);
viewer.setOptimizeNavigation(false)
viewer.setQualityLevel(true, true);
viewer.setGroundShadow(false);
viewer.setGroundReflection(false);
viewer.setProgressiveRendering(true);
viewer.setQualityLevel(true, true);
viewer.setGroundShadow(true);
viewer.setGroundReflection(true);
viewer.setProgressiveRendering(false); (to display shaders correctly)

我们的问题是上面的列表是否有任何评论,或者我们应该考虑的任何其他设置。谢谢。

当setQualityLevel的两个参数都为false时,setOptimizeNavigation并不重要,因为它实际上会在导航时使它们为false。我建议使用setOptimizNavigation(true)来获得中等质量,甚至是高质量,因为它只在移动视图时才起作用。关闭它可能会中断平滑导航。这取决于你认为高质量意味着什么

viewer.setOptimizeNavigation(true)
viewer.setQualityLevel(false, false);
viewer.setGroundShadow(false);
viewer.setGroundReflection(false);
viewer.setProgressiveRendering(true);
viewer.setOptimizeNavigation(false)
viewer.setQualityLevel(true, true);
viewer.setGroundShadow(false);
viewer.setGroundReflection(false);
viewer.setProgressiveRendering(true);
viewer.setQualityLevel(true, true);
viewer.setGroundShadow(true);
viewer.setGroundReflection(true);
viewer.setProgressiveRendering(false); (to display shaders correctly)

此外,显然,当模型较大时,setProgressiveRendering(false)将导致导航模型的性能问题

您好,@Torbjorn,我不确定这些选项会对GPU的使用产生多大的影响,但很明显,当模型较大时,setProgressiveRendering(false)在导航模型时会导致性能问题。我正在与我们的工程师团队核实您的问题。我们工程师团队的评论作为答案发布。希望能解释。谢谢@Xiaodong。这是巨大的投入。我们实际上体验到了GPU的高使用率,尤其是在移动模型时,为了使最终用户的用户体验更加顺畅,优化导航似乎是关键。
viewer.setOptimizeNavigation(true)
viewer.setQualityLevel(false, false);
viewer.setGroundShadow(false);
viewer.setGroundReflection(false);
viewer.setProgressiveRendering(true);
viewer.setOptimizeNavigation(false)
viewer.setQualityLevel(true, true);
viewer.setGroundShadow(false);
viewer.setGroundReflection(false);
viewer.setProgressiveRendering(true);
viewer.setQualityLevel(true, true);
viewer.setGroundShadow(true);
viewer.setGroundReflection(true);
viewer.setProgressiveRendering(false); (to display shaders correctly)