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 和更高的着色器模型 | 是的 |
相关主题