Stream-Output 对象

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

inout StreamOutputObject<DataType>Name;

 

参数

StreamOutputObject<DataType>Name

流输出对象 (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