Stream-Output 对象

流输出对象是一个模板化对象,用于将数据流式传输到 几何着色器阶段。 使用以下语法声明流输出对象。

inout StreamOutputObject<DataType>名称;

 

参数

StreamOutputObject<DataType>名字

流输出对象 (SO) 声明。

Stream-Output 对象类型 说明
PointStream 点基元的序列
LineStream 行基元序列
TriangleStream 三角形基元的序列

 

DataType - 输出数据类型;可以是任何 HLSL 数据类型。 必须用尖括号括起来。

名称 - 变量名称;唯一标识对象的 ASCII 字符串。

示例

这是流输出对象声明的一个示例,该声明流式传输出其数据由 PS_CUBEMAP_IN 结构定义的三角形基元。 几何着色器仅限于生成 18 个顶点。

struct PS_CUBEMAP_IN
{
    float4 Pos : SV_POSITION;     // Projection coord
    float2 Tex : TEXCOORD0;       // Texture coord
    uint RTIndex : SV_RenderTargetArrayIndex;
};

[maxvertexcount(18)]
void main( inout TriangleStream<PS_CUBEMAP_IN> CubeMapStream, triangle PS_CUBEMAP_INT[3] )
{
    ...
}

这是 CubeMapGS 示例中的代码片段。

Stream-Output 对象方法

使用以下语法调用 stream-output-object 方法。

Object.Method

实现以下方法。

方法 说明
追加 将输出数据追加到现有流。
RestartStrip 结束当前基元条带并启动新的基元条带。

 

最小着色器模型

以下着色器模型中支持此对象。

着色器模型 支持
着色器模型 4 和更高着色器模型

 

着色器模型 4