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 |