Skip to content

V-Ray 常见事件

常见事件

在后台运行的渲染过程中,V-Ray 会发出许多可供 App SDK 用户使用的事件 。你可以通过主 v-rayRenderer 类订阅这些 事件 。

V-Ray Application SDK 提供了附加回调的方法,这些回调在事件发生时执行自定义客户端逻辑。回调的代码在与主 V-Ray 渲染线程不同的单独线程中执行。这种设计允许 V-Ray 渲染过程保持快速,而不会增加额外的开销,并确保客户端回调代码中的缓慢作不会影响总渲染时间。请记住,缓慢的用户回调可能会延迟其他回调的执行。每个回调都包含一个时间“即时”参数,该参数为您提供事件发生的确切时间。由于排队和异步,回调本身可能会在明显不同的时刻执行。

这些 事件 大致可以分为三种类型: 所有渲染模式通用的事件 、 特定于存储桶渲染的事件 和 特定于渐进式渲染的事件 。本部分介绍 无论采样类型如何都会发出的事件 。

常见的渲染事件发生在以下情况下:

  • 渲染器状态更改(例如开始渲染、停止渲染)
  • V-Ray 在渲染之前和渲染期间输出文本消息
  • V-Ray 切换当前任务(例如加载、渲染)并报告进度百分比

状态更改事件

每次渲染器从一种状态转换到另一种状态时,例如开始渲染时、图像完成时或发生错误并停止时,都会发出状态更改事件。这是实现与启动和完成渲染相关的用户逻辑的要点。

除非使用 startSync() 而不是异步 start() 方法,否则在转换出场景和渲染器之前,在处于 PREPARING 状态时不应对场景和渲染器进行任何更改。尝试进行更改将被拒绝。

renderer_state.png

当渲染器进入 IDLE_DONE 状态时,最终图像可用。中间图像在渲染过程中也可用。

日志消息事件

输出消息由 V-Ray 引擎在场景加载和渲染过程中生成,可以通过订阅消息日志事件来捕获。记录消息时可用的回调数据是消息文本和日志级别类型(信息、警告或错误)。

进度事件

每当当前任务发生更改以及完成的工作量增加时,都会发出进度事件。它们包括一条短信,其中包含当前任务名称和两个数字,分别表示要完成的总工作量和已完成的工作。