在 Autodesk Forge 中使用 Corona 渲染器渲染模型

Posted

技术标签:

【中文标题】在 Autodesk Forge 中使用 Corona 渲染器渲染模型【英文标题】:Use Corona renderer for rendering models in Autodesk Forge 【发布时间】:2021-10-19 14:05:39 【问题描述】:

我们正在尝试使用 forge 为家具模型渲染 360 度视图图像。不幸的是,我们需要为此使用电晕插件。但是,在附加我们在文档中看到的 dll 文件时 - 我们仍然看到一个问题。

[2021 年 8 月 17 日 15:07:15] 2021 年 8 月 17 日下午 15:07:15; DLL 未能正确初始化 - 未加载。 [08/17/2021 15:07:15] 8/17/2021 15:07:15 PM; DLL 未能正确初始化 - 未加载。 [2021 年 8 月 17 日下午 15:07:30] 2021 年 8 月 17 日下午 15:07:30;初始化 Python 版本:3.7.6 [2021 年 8 月 17 日下午 15:07:30] 2021 年 8 月 17 日下午 15:07:30; 警告 缺少 dll:coronamaxutils2021.dlt - CoronaMtl [2021 年 8 月 17 日下午 15:07:30] 2021 年 8 月 17 日下午 15:07:30; 警告 缺少 dll:coronamaxutils2021.dlt - CoronaLayeredMtl [2021 年 8 月 17 日下午 15:07:31] 2021 年 8 月 17 日下午 15:07:31; 警告 缺少 dll:coronamaxutils2021.dlt - CoronaColor [2021 年 8 月 17 日下午 15:07:31] 2021 年 8 月 17 日下午 15:07:31; 警告 缺少 dll:coronamax2021.dlr - CoronaRenderer [2021 年 8 月 17 日下午 15:07:32] 2021 年 8 月 17 日下午 15:07:32; MAXScript ExecuteMAXScriptScript Exception: -- 运行时错误:无法打开渲染器,可能递归;匿名代码块发生错误;文件名:t:\aces\applications\7b3e91f490aad59bb1502fc04a07ae97.ngrdh8rpmufavx5peithdvrycazwjxfq.renderall_1629212808[1].package\renderingtools.bundle\content\RenderingTools.ms;位置:442;行:15

显然,没有任何渲染。我包含文档中描述的插件文件。

<?xml version="1.0" encoding="utf-8"?>
<ApplicationPackage SchemaVersion="1.0" AutodeskProduct="3ds Max" ProductType="Application" ProductCode="3ds Max Rendering Tools Plugin" UpgradeCode="My UpgradeCode">
    <CompanyDetails />
    <Components Description="post-start-up scripts parts">
        <RuntimeRequirements OS="Win64" Platform="3ds Max" SeriesMin="2020" SeriesMax="2023" />
        <ComponentEntry AppName="RenderingTools" Version="1.0.0" ModuleName="./Content/RenderingTools.ms" />
    </Components>
    <Components Description="plugins parts">
        <RuntimeRequirements OS="Win64" Platform="3ds Max" SeriesMin="2020" SeriesMax="2021" />
        <ComponentEntry AppName="CoronaRenderer" ModuleName="./Content/2021/CoronaMax2021.dlr" />
        <ComponentEntry AppName="CoronaUtils" ModuleName="./Content/2021/CoronaMaxUtils2021.dlt" />
    </Components>
    <Components Description="light icon paths parts">
        <RuntimeRequirements OS="Win64" Platform="3ds Max" SeriesMin="2020" SeriesMax="2021" />
        <ComponentEntry ModuleName="./Content/2021/UI/Icons/" />
    </Components>
    <Components Description="dark icon paths parts">
        <RuntimeRequirements OS="Win64" Platform="3ds Max" SeriesMin="2020" SeriesMax="2021" />
        <ComponentEntry ModuleName="./Content/2021/UI/IconsDark/" />
    </Components>

</ApplicationPackage>

【问题讨论】:

【参考方案1】:

首先,Corona 是第三方渲染器,从许可的角度来看,您可能需要仔细检查这是可接受的用例。特别是如果他们使用某种“在线”许可,因为设计自动化环境不允许模块通过互联网检查许可。只要它可以自动化(不需要任何 UI 交互)并且许可不是问题,它就可以工作。

接下来,我建议首先尝试使用内置的 3ds Max 渲染器来处理这些步骤(可能是 ART 或 Arnold)。不要担心材料等问题,但让您的脚本在没有电晕的情况下工作,以确保您已经完成了自动化。

然后,您可以尝试解决 Corona 问题(并且不能保证它可以工作,因为它又是第三方工具。)这可能很明显,但可以肯定...从 ApplicationPackage 看来像应用商店捆绑包一样设置。对于 3ds Max Design Automation,您还需要发送所有必要的模块,并确保正确设置路径以在您的应用程序包 zip 中找到它们。一个例子在这里:https://learnforge.autodesk.io/#/designautomation/appbundle/engines/max(参见 PackageContents 部分)。请注意,同样,应用程序包设置为从“内容”文件夹加载,但模块也必须在应用程序包 zip 中的正确位置提供。此处提供了另一个示例:https://github.com/kevinvandecar/design.automation.3dsmax-csharp-meshoptimizer(使用 deploy01 分支)。您可以在此处找到此示例的捆绑包:https://github.com/kevinvandecar/design.automation.3dsmax-csharp-meshoptimizer/tree/deploy01/forgesample/wwwroot/bundles。请注意,zip 包含文件夹结构和插件所需的所有模块。

【讨论】:

【参考方案2】:

Design Automation 不会加载界面插件,即任何带有图标、表单、用户交互的东西。

从输出中,CoronaMax2021.dlr 加载失败。

【讨论】:

以上是关于在 Autodesk Forge 中使用 Corona 渲染器渲染模型的主要内容,如果未能解决你的问题,请参考以下文章

如何在 nuxt js Autodesk forge 查看器中使用 IconMarkupExtension?

Autodesk forge 查看器 js 依赖项存储在本地项目中

在 Autodesk Forge 中使用 Corona 渲染器渲染模型

如何使用 BIM 360 Web 查看器 (Autodesk Forge)

Autodesk-forge 查看器:访问令牌

如何在 Forge Viewer 中激活“Autodesk.MemoryLimited”扩展?