Table of Contents

渲染特性

@'Stride.Rendering.RenderFeature' 负责绘制给定类型的 @'Stride.Rendering.RenderObject'。

渲染阶段(Phases)

渲染特性包含若干阶段。

Collect(收集)

collect 阶段决定需要处理和渲染的内容。它通常由图形合成器驱动。

collect 阶段:

  • 创建渲染视图,并用视图矩阵、投影矩阵等最新数据更新它们
  • 创建并设置渲染阶段
  • 执行可见性剔除和排序

Extract(提取)

extract 阶段将先前收集的对象的游戏状态数据复制到生存期很短的渲染专用结构中。它通常由 @'Stride.Rendering.RenderSystem' 和 @'Stride.Rendering.RenderFeature' 驱动。

由于游戏更新和脚本会被阻塞,这一步应尽可能快,避免繁重的计算。繁重的计算应推迟到 Prepare 阶段。

Note

目前,Stride 不会并行化游戏更新和脚本,因此在 prepare 和 draw 阶段完成之前,它们不会恢复执行。

示例任务:

  • 复制对象矩阵
  • 复制材质参数

Prepare(准备)

prepare 阶段准备 GPU 资源并执行繁重的计算。这通常由 @'Stride.Rendering.RenderSystem' 和 @'Stride.Rendering.RenderFeature' 驱动。

示例任务:

  • 计算光照数据和结构
  • 填充常量缓冲区和资源表

Draw(绘制)

draw 阶段填充 GPU 命令列表。

示例任务:

  • 设置渲染纹理
  • 绘制渲染阶段与渲染视图的组合

示例

在 collect 阶段创建、并在 draw 阶段使用的视图和阶段的典型示例:

media/render-features-draw-example.png

管线处理器

**管线处理器(Pipeline processors)**是在创建管线状态时调用的类。这让你可以在特定渲染阶段中实现诸如启用透明度混合或线框渲染之类的功能。

Stride 包含若干预定义的管线处理器。你也可以创建自己的管线处理器。

另请参阅