设置渲染材质

Kanzi 中您可以使用这些渲染通道来设置渲染材质:

创建夜视模式

您可以使用用材质渲染通道绘制对象 (Draw Objects With Material Render Pass) 以特定材质渲染场景 (Scene) 节点下的所有节点。例如,您可以创建夜视模式。

要创建夜视模式:

  1. 创建要在夜视模式下渲染的内容:
    例如,使用出厂内容 (Factory Content) 中的汽车 (Car)。请参阅使用出厂内容 (Factory Content) 资产
  2. 创建并应用您需要用于在夜视模式下渲染内容的渲染通道:
    1. 素材库 (Library) > 渲染 (Rendering)按下 Alt 并右键点击渲染通道 (Render Passes),选择组渲染通道 (Group Render Pass) 并命名为 Night Vision
      使用组渲染通道 (Group Render Pass) 收集应用夜视模式到内容的渲染通道。
    2. 工程 (Project) 中选择您要在夜视模式渲染内容的场景 (Scene) 节点,并在属性 (Properties) 中将渲染通道 (Render Pass) 属性设为Night Vision 渲染通道。
      通过这种方式,您可以设置 Kanzi 来使用Night Vision 渲染通道渲染场景 (Scene) 节点。Night Vision 渲染通道没有任何子渲染通道,这就是为什么预览 (Preview) 不显示任何内容。
    3. Night Vision 渲染通道中创建:
      1. 清除渲染通道 (Clear Render Pass)
      2. 用材质渲染通道绘制对象 (Draw Objects With Material Render Pass)
      您可以使用用材质渲染通道绘制对象 (Draw Objects With Material Render Pass) 渲染通道以用材质渲染通道绘制对象 (Draw Objects With Material Render Pass) 中设置的特定材质渲染场景 (Scene) 节点下的所有节点。
      因为您尚未在用材质渲染通道绘制对象 (Draw Objects With Material Render Pass) 中设置材质 (Material) 属性,Kanzi 使用默认材质渲染使用Night Vision 渲染通道的场景 (Scene) 节点中的内容。
  3. 创建用于夜视模式的材质。
    例如,在素材库 (Library) > 材质和纹理 (Materials and Textures) > 材质类型 (Material Types) 按下 Alt 并右键点击 VertexPhong 中选择材质 (Material) 并命名材质Night Vision Material
    这样即可创建使用 VertexPhong 材质类型的材质。
  4. 素材库 (Library) > 渲染 (Rendering) > 渲染通道 (Render Passes) 中选择 用材质渲染通道绘制对象 (Draw Objects With Material Render Pass) 并在 属性 (Properties) 中将 材质 (Material) 属性设置为在上一步中创建的材质。
    Kanzi 现在渲染场景 (Scene) 节点中的所有节点,这会使用Night Vision 渲染通道,使用您创建的材质。

  5. 属性 (Properties) 中点击材质 (Material) 属性旁的 ,以打开您创建的材质属性,并设置材质属性,以达到您想要的外观。

  6. 素材库 (Library) > 渲染 (Rendering) > 渲染通道 (Render Passes) 中选择清除渲染通道 (Clear Render Pass),并在属性 (Properties)中添加清除颜色 (Clear Color) 属性并将亮度 (Lightness) 属性字段设为 0。
    这样即可用黑色清除颜色缓冲区,让您的场景背景在夜视模式下成为黑色。
  7. 控制白天和夜视模式之间的切换。
    例如,创建状态机 (State Manager),您可以在其中以下模式的定义状态:

    请参阅创建状态机

    现在当您在创建的状态之间切换,Kanzi 在正常渲染内容和夜视模式之间交替。

创建无限镜射

材质设置渲染通道 (Material Setup Render Pass) 允许您设置材质属性,以便使用该材质的所有后续渲染使用您在本渲染通道中设置的属性值。例如,您可以使用材质设置渲染通道 (Material Setup Render Pass) 创建无限镜射效果。

要创建无限镜射:

  1. 工程 (Project) 中创建:
  2. 创建您用于渲染镜子中的 3D 内容的材质:
    1. 创建纹理材质。
      例如,在素材库 (Library) > 材质和纹理 (Materials and Textures) > 材质类型 (Material Types) 按下 Alt 并右键点击 Textured (纹理化) 中选择材质 (Material) 并命名材质Mirror Material
    2. 工程 (Project) 中选择用作镜子的节点,并在属性 (Properties) 中将网格材质 (Mesh Material) 属性设置为在上一步中创建的材质。
  3. 渲染镜子中的 3D 内容:
    1. In the 素材库 (Library) 按下 Alt 并右键点击 渲染 (Rendering), and select Compose and Blit Pass.
      Compose and Blit Pass template contains the render pass structure that enables you to blit to the screen 合成目标渲染通道 (Composition Target Render Pass) render passes or textures using a specific material. The template contains these render passes:
      • 合成目标渲染通道 (Composition Target Render Pass) 将自身及其子渲染通道渲染成合成目标。
        • 清除渲染通道 (Clear Render Pass) clears some or all of the buffers of the current render context. By default the 清除渲染通道 (Clear Render Pass) in the Compose and Blit Pass template clears the color buffer with transparent black color and the depth buffer with value 1.
          For example, to clear the color buffer with a different color, set the 清除颜色 (Clear Color) property to the color that you want to use as the background color of the content that Kanzi renders to the 合成目标渲染通道 (Composition Target Render Pass).
        • 绘图对象渲染通道 (Draw Objects Render Pass) allows you to set a 摄像机 (Camera) node to render a specific object source and to control frustum culling. By default the 绘图对象渲染通道 (Draw Objects Render Pass) uses the default 摄像机 (Camera) node to render all nodes in a 场景 (Scene) node.
      • 位块传送渲染通道 (Blit Render Pass) 使用某种特定材质在屏幕上位块传送一个或多个渲染通道或纹理。 By default this 位块传送渲染通道 (Blit Render Pass) draws on the screen the content rendered by the 合成目标渲染通道 (Composition Target Render Pass).
    2. In the 素材库 (Library) select the Compose and Blit Pass > 合成目标渲染通道 (Composition Target Render Pass) > 清除渲染通道 (Clear Render Pass) and in the 属性 (Properties) set the 清除颜色 (Clear Color) property to the color that you want to use as the background color of the scene in the mirror.
    3. 工程 (Project) 中选择要在镜子中渲染的内容的场景 (Scene) 节点,并在属性 (Properties) 中将渲染通道 (Render Pass) 属性设为Compose and Blit Pass
      通过这种方式,您可以设置 Kanzi 来使用Compose and Blit Pass 渲染场景 (Scene) 节点。
    4. Compose and Blit Pass 中的素材库 (Library) 中创建第二个合成目标渲染通道 (Composition Target Render Pass) 并拖动位块传送渲染通道 (Blit Render Pass) 至该合成目标渲染通道 (Composition Target Render Pass)
      使用第二个合成目标渲染通道 (Composition Target Render Pass) 将第一个合成目标渲染通道 (Composition Target Render Pass) 渲染通道渲染为合成目标。
      您将创建两个合成目标渲染通道 (Composition Target Render Pass) 渲染通道,因为并未定义渲染行为是否从相同的渲染通道写入和读取。

    5. Compose and Blit Pass 中创建一个 默认渲染通道 (Default Render Pass)
      默认渲染通道 (Default Render Pass) 创建一组基本的渲染通道,先渲染不透明节点,然后再渲染透明节点。
      您使用此渲染通道在屏幕上渲染场景 (Scene) 节点的内容。
    6. Compose and Blit Pass 中创建材质设置渲染通道 (Material Setup Render Pass) 并在属性 (Properties) 中添加和设置:
      • 材质 (Material) 设为您在此过程第 2 步创建的材质。
        例如,将其设为Mirror Material
      • 纹理 (Texture) 设为您创建的第二个合成目标渲染通道 (Composition Target Render Pass)
        例如,将其设为Composition Target Render Pass 2
        在这里设置您所创建材质的纹理 (Texture) 属性值,以便在使用您所创建的Compose and Blit Pass 渲染内容时Kanzi 使用该值。
      通过这种方式,您可以设置 Kanzi 来使用Mirror Material 渲染Composition Target Render Pass 2 节点。

Kanzi现在递归渲染镜子中场景的内容。

另请参阅

渲染

使用材质