Объект Stream-Output

Объект stream-output — это шаблонный объект, который передает данные из этапа геометрического шейдера. Используйте следующий синтаксис для объявления объекта stream-output.

inout StreamOutputObject<DataType>Name;

 

Параметры

StreamOutputObject<Datatype>Имя

Объявление объекта stream-output (SO).

Типы объектов Stream-Output Описание
PointStream Последовательность точечных примитивов
LineStream Последовательность примитивов строк
TriangleStream Последовательность примитивов треугольников

 

DataType — тип выходных данных; может быть любым типом данных HLSL. Должен быть заключен в угловые скобки.

Name — имя переменной; Строка ASCII, однозначно идентифицирующая объект .

Пример

Это пример объявления объекта типа stream-output, которое передает поток примитивов треугольников, данные которых определяются 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