D3D12_VIEW_INSTANCING_DESC 结构 (d3d12.h)

指定在视图实例化配置期间使用的参数。

语法

typedef struct D3D12_VIEW_INSTANCING_DESC {
  UINT                               ViewInstanceCount;
  const D3D12_VIEW_INSTANCE_LOCATION *pViewInstanceLocations;
  D3D12_VIEW_INSTANCING_FLAGS        Flags;
} D3D12_VIEW_INSTANCING_DESC;

成员

ViewInstanceCount

指定要使用的视图数,最多D3D12_MAX_VIEW_INSTANCE_COUNT。

pViewInstanceLocations

内存位置的地址,其中包含 ViewInstanceCount 视图实例位置结构,这些结构指定视区/scissor 的位置并呈现每个视图实例的目标详细信息。

Flags

使用其他选项配置视图实例化。

注解

使用此结构在 PSO 中声明视图实例化。 在 PSO 中设置视图实例计数,以允许基于视图数进行全管道优化。

如果未在 PSO 中声明视图实例化,或者 ViewInstanceCount 设置为 0,则禁用该实例化。 禁用后,呈现的行为就像启用视图实例化一样,并将 ViewInstanceCount 设置为 1;着色器在 SV_ViewID 中只能看到值 0,并且只生成一个视图实例。 这允许在禁用视图实例的 PSO 中使用识别视图实例的着色器。 某些适配器可能支持着色器模型 6.1 (该模型公开SV_ViewID) 但不公开视图实例;这些适配器必须仍支持在将 ViewInstanceCount 声明为 0 或 1 的 PSO 中输入SV_ViewID着色器。

光栅化前的着色器可以输出SV_RenderTargetArrayIndex和SV_ViewportArrayIndex值,这些值不必依赖于SV_ViewID。 为了计算将发送基元的视口和呈现目标的最终有效索引,这些值(如果存在)将添加到 PSO 中声明的视图实例位置的 ViewportArrayIndex 和 RenderTargetArrayIndex 值。 如果计算索引超出范围 (即当索引大于其各自数组中视区或呈现目标元素的数目时) 则有效索引变为 0。

对于动态选择视区或呈现目标索引的着色器,应用程序可以将 PSO 中声明的所有视图实例位置设置为单个值, (例如 0) ,以充当动态选择的SV_RenderTargetArrayIndex和SV_ViewportArrayIndex值的统一基索引。

要求

要求
Header d3d12.h

另请参阅

核心结构