Corona Rendering Core

大多数渲染设置可以使用 Maxscript 进行设置。您可以使用 show renderers.current 命令列出设置。

有几个已发布的函数可以使用该 CoronaRenderer.CoronaFp 接口调用。您可以通过执行 showInterface CoronaRenderer.CoronaFp 命令列出它们。大多数函数返回一个整数,成功时为零,失败时非零。


(官方文档纯机翻,有错请跟客服说! 谢谢)


主要功能函数

功能参数描述
showVfb<boolean>show显示或隐藏 VFB 窗口。当参数为真时,调用它与单击 UI 中的“显示 VFB”按钮相同。
resumeRender
恢复上次渲染。与单击“操作”选项卡中的“上次恢复”按钮相同。
loadAndResume<string>filename与 相同resumeRender,但从给定的先前转储的 EXR 文件加载最后一次渲染。
dumpVfb<string>filename将当前 VFB 内容保存到给定文件,以便以后可以使用loadAndResume.
setDisplayedChannel<integer>channel如果使用 Corona VFB,它会设置当前显示的频道。0 是美颜通道,1 是 alpha,更高的值是额外的渲染通道。
getVfbContent<integer>channel <boolean>toneMapping <boolean>renderStamp从当前帧缓冲区返回具有一个渲染通道的位图。可以选择包括色调映射和渲染图章。不返回整数代码,而是直接返回位图(如果调用失败,则返回 null)。
resetSettings
将渲染设置重置为默认值。与单击“操作”选项卡中的“重置设置”按钮相同。
renderElements<boolean>useAntialiasing[已弃用]仅渲染额外的渲染元素,没有主着色(因此速度要快得多)。某些元素取决于阴影,使用此选项时不会显示。有一个参数来启用/禁用抗锯齿。与单击“操作”选项卡中的“仅渲染元素”或“仅渲染元素(无 AA)”相同。在 1.5 版中删除并替换为启用仅渲染元素复选框的常规渲染。
exportScene<string>filename <bool>renderImmediately将场景导出到给定文件,以便可以将其加载到 Corona 独立应用程序中。如果renderImmediately为 true,则应用程序还将查找独立的可执行文件并尝试立即运行它。
getCoronaVersion
[已弃用]返回格式化为人类可读字符串的当前 Corona 版本。它仍然可用,但将在未来版本中删除,以支持getVersionString提供相同的字符串。
getStatistic<int>statisticId以双精度浮点格式返回下表中的统计信息之一。返回当前活动渲染或上次渲染的结果。如果会话中尚未发生渲染,或者 3dsmax 在上次渲染后被重置/渲染器更改,则结果未定义。
getBlackbodyColor<float>temperature返回具有指定温度(以开尔文为单位)的黑体发射器的颜色。返回值在 HDR 线性 sRGB 颜色空间中(无伽马校正)。结果归一化——最亮的颜色通道总是等于1,颜色的绝对亮度不符合现实(只有不同颜色通道之间的比率才有意义)。输入颜色必须在 1000-99000K 范围内
loadDrIpFile<string>filename将每行包含 1 个 IP 的文本文件加载到 DR 节点列表中。与单击 UI 中的“来自文件...”按钮并选择提供的文件相同。
startInteractive
在 Corona 弹出式 WX VFB 中启动交互式渲染。
startInteractiveDocked
在 Corona 视口停靠的 VFB 中启动交互式渲染。视口(扩展视图)需要存在且处于非活动状态,此方法才能工作
stopRender
停止当前正在进行的任何渲染
isRendering
如果 Corona 当前正在渲染,则返回 true。在 1.5 版中添加 在 1.6 版中删除,替换为 getRenderType
reparseInteractive
在交互式渲染会话中,重新解析整个场景并重新启动交互式渲染。在 1.5 版中添加
getRenderType
如果当前没有进行渲染,则返回 0,离线(非交互式渲染)返回 1,使用停靠 VFB 进行交互式渲染返回 2,常规 Corona VFB 中的交互式渲染返回 3。在 1.6 版中添加。
saveAllElements<string>filename将所有渲染元素保存到指定位置 - 与使用 Corona VFB 按钮功能时相同。提供的参数是美容频道的文件名,其他文件名由它派生而来。
showLightMixSetupDialog
如果当前未渲染,则显示 LightMix 设置对话框。在版本 2 中添加。
getVersionNumber
返回编码为单个可比较的 64 位整数版本号的当前 Corona 版本。早期版本中返回的版本号总是低于后期版本中返回的版本号。在第 3 版中添加。
getVersionString
返回格式化为人类可读字符串的当前 Corona 版本。适合呈现给用户。在第 3 版中添加。
getVersionMajorNumber
返回当前 Corona 版本的主要编号。在第 3 版中添加。
getVersionMinorNumber
返回当前 Corona 版本次要编号。在第 3 版中添加。
getVersionBuildType
返回格式化为字符串的当前 Corona 版本构建类型。即“StableRelease”、“ReleaseCandidate”和“DailyBuild”之一。在第 3 版中添加。
showListerDialog<integer>tab打开 Corona Lister 对话框窗口。该tab参数确定打开对话框时将选择哪个选项卡,其中0表示最后一个活动选项卡,1表示“灯光”选项卡,2表示“散布”选项卡。在第 3 版中添加。
bakeLightMix
将当前的 LightMix 配置烘焙到场景中。这与在 VFB 中单击相应的烘焙按钮相同。在第 7 版中添加。
getScriptsDirectory
返回存储与 Corona(例如 Corona Converter 或 Corona Proxy Exporter)捆绑的 MAXScript 脚本的目录的路径。在第 7 版中添加。
getDefaultRoughnessMode
返回 Corona PhysicalMtl 粗糙度模式的默认模式,如 Corona 系统设置中所设置。0 = 使用粗糙度,1 = 使用光泽度。在第 7 版中添加。
getDefaultIorMode
返回 Corona PhysicalMtl IOR 模式的默认模式,如 Corona 系统设置中所设置。0 = 使用 IOR,1 = 使用 Disney Specular。在第 7 版中添加。
showErrorWindow
显示版本 8 中添加的 Corona 错误窗口。


统计编号意义
0经过的次数
1场景中的图元数量,不计算实例
2场景中具有实例化的图元数量
3每秒处理的平均光线数
4每个图像样本处理的平均光线数
5以毫秒为单位的总渲染时间
6渲染阶段花费的总时间(以毫秒为单位)。此时间用于决定何时停止设置时间限制的渐进式渲染。
7图片中的估计噪声量,以百分比为单位。如果没有可用的估计,则返回 0。(corona 1.7+)
8估计的剩余渲染时间(以毫秒为单位)。如果没有可用的估计,则返回 0。(corona 2.0+)
9当前由 Corona 分配的内存。(corona 6.0+)
10Corona 在上次渲染期间分配的峰值内存。(corona 6.0+)
11进程当前使用的虚拟内存。(corona 6.0+)
12进程当前使用的峰值虚拟内存。(corona 6.0+)
13系统使用的虚拟内存。(corona 6.0+)
14以毫秒为单位的场景解析时间。(corona 6.0+)
15置换基元(Corona 7.0+)


corona 代理 API

要调用代理对象上的方法[proxy],请使用CProxy.ProxyFp.[method_name] [proxy] [optional further args]

功能参数描述
getOriginalObjectName<node>proxy返回包含创建代理的原始对象名称的字符串。
getOriginalMaterialName<node>proxy返回包含创建代理的原始对象的材料名称的字符串。
fromScene<node>proxy <node>source <filename>filename从场景对象创建代理source,并将其保存到由filename
fromSceneAnimated<node>proxy <node>source <filename>filename <integer>frameFrom <integer>frameTo <integer>pointCloudSize <integer>samplesPerFrame与另一个相同fromScene,但允许指定附加参数 - 动画范围 ( frameFromframeTo)、要预先计算并存储在文件中的视口显示点云的大小以及要采用的运动模糊样本数
duplicateToMesh<node>proxy从代理创建 3ds Max 可编辑网格(不删除代理)。与单击UI 中的“复制到网格”按钮相同。


corona材质库 API

有几个已发布的函数可以使用该 CoronaMaterialLibrary.MaterialLibraryFp 接口调用。您可以通过执行列出它们 showInterface CoronaMaterialLibrary.MaterialLibraryFp

功能参数描述
isSupported
[已弃用]如果正在运行的 3ds Max 版本支持库,则返回 TRUE。否则返回 FALSE。除 2012 外,每个 3ds Max 版本都支持材质库。此功能仅在 Corona 1.7 中可用。
isInstalled
如果当前安装了库,则返回 TRUE。否则返回 FALSE(用户在 Corona 安装期间取消选择它)。
showBrowserIfPossible<boolean>show如果可能,显示或隐藏库的浏览器窗口。如果成功则返回 0,如果失败则返回非零。


corona CScatter API

每个CScatter对象上都有几个可调用的已发布方法。您可以通过执行列出它们 s = CScatter(); showInterfaces s 。在ScatterFpInterface那里寻找接口。它从 Corona 3 开始可用。

功能参数描述
update<interval>timeInterval <integer>referenceTime在给定的非空时间间隔内更新实例的分散。指定的参考时间决定了无法插值的散射参数。预计位于区间内。成功返回 0。如果用户没有有效的许可证,则返回 1。目前,仅支持 1 个时间帧长间隔。
clear
清除上次update调用创建的实例的分散。可以调用以释放分配的资源,但可能会错误地评估依赖于分散对象的映射。
getModelCount
返回所有模型对象的数量。这些是由分散对象实例化的原始对象。计数与上次update调用相关。
getModelNode<integer>index返回由给定索引选择的模型对象的节点。该节点与上次update调用相关。如果同时删除了节点,则返回 null。如果索引在 [0, N) 区间之外,其中 N 是 返回的计数getModelCount,它也会返回 null。
getInstanceCount
返回实例数。分散在为最后一次update调用指定的整个时间间隔内的所有实例都在此处计算。例如,如果在 2 个时间帧长间隔内更新散射,并且在第一帧中获得分散的实例 A、B、C,在第二帧中获得分散的实例 B 和 D,它将返回 4。
convertInstancesToGeometry<integer>time将在给定时间分散的所有实例转换(复制)为真正的几何对象。期望时间位于为上次update调用指定的间隔内。成功返回 0。请注意,对于大量实例,这可能代价高昂。

还有几个已发布的方法可以使用该 CScatter.StaticFpInterface 接口调用。您可以通过执行showInterface CScatter.StaticFpInterface 命令列出它们。

功能参数描述
getVersionNumber
返回编码为单个可比较的 64 位整数版本号的当前插件版本。早期版本中返回的版本号总是低于后期版本中返回的版本号。在第 5 版中添加。
getVersionString
返回格式化为人类可读字符串的当前插件版本。适合呈现给用户。在第 6 版中添加。



示例脚本

CoronaRenderer.CoronaFp.showvfb true

- 显示corona VFB

CoronaRenderer.CoronaFP.stopRender()

- 停止当前渲染(与按下 VFB 中的 STOP 按钮相同)

renderers.current.system_vfbRegions = #([1280,720,0], [0,0,0], [1280,720,0], [10,20,0], [100,200,0], [0,0] ,0])

- 在 VFB 中绘制渲染区域(我们假设输出分辨率为 1280×720)

renderers.current.system_vfbRegions_enabled=false

- 清除所有 VFB 区域(必须先关闭 VFB)

CoronaRenderer.CoronaFp.exportScene @"C:\Corona\myscene.scn" false

- 将当前场景从 3ds max 导出到 C:\Corona\ 作为 myscene.scn 并且不开始渲染它。

CoronaRenderer.CoronaFp.dumpVfb "D:/yourfilename.cxr"

- 将 VFB 的当前内容转储到指定的 CXR 文件。

CProxy.ProxyFp.fromScene (CProxy()) $Teapot001 @"C:\proxy\myproxy.cgeo"

- 将 Teapot001 转换为代理并将其保存为 C:\proxy\myproxy.cgeo

CProxy.ProxyFp.duplicateToMesh $my_proxy

- 将 my_proxy 转换回网格。


官方界面说明: https://corona-renderer.com/doc 




附: vray渲染器官方文档:https://docs.chaos.com/display/VMAX/V-Ray+for+3ds+Max+Help