Geometry-Shader 物件
幾何著色器物件會處理整個基本類型。 使用下列語法來宣告 geometry-shader 物件。
[maxvertexcount (NumVerts) ] void ShaderName ( PrimitiveType DataType Name [ NumElements ], inout StreamOutputObject ) ;
參數
-
[maxvertexcount (NumVerts) ]
-
[in]要建立之頂點數目上限的宣告。
- [maxvertexcount () ] - required 關鍵字;括弧和括弧是正確語法的必要字元。
- NumVerts - 代表頂點數目的整數。
-
ShaderName
-
[in]ASCII 字串,其中包含 geometry-shader 函式的唯一名稱。
-
PrimitiveType DataType 名稱 [ NumElements ]
-
PrimitiveType - 基本 類型,決定基本資料的順序。
基本類型 Description 點 點清單 line 線條清單或線條帶狀 三角形 三角形清單或三角形帶狀 lineadj 具有相鄰或相鄰線帶的線條清單 三角形adj 具有相鄰或相鄰三角形帶狀的三角形清單 DataType - [in] 輸入資料類型;可以是任何 HLSL 資料類型。
名稱 - 引數名稱;這是 ASCII 字串。
NumElements - 輸入的陣列大小,視 PrimitiveType 而定,如下表所示。
基本類型 NumElements 點 [1]
您一次只能操作一個點。line [2]
線條需要兩個頂點。三角形 [3]
三角形需要三個頂點。lineadj [4]
lineadj 有兩個結尾;因此,它需要四個頂點。三角形adj [6]
三角形adj 會框線三個以上的三角形;因此,它需要六個頂點。 -
StreamOutputObject
-
資料流程輸出物件的宣告。
傳回值
無
備註
下圖顯示幾何著色器物件的各種基本類型。
下圖顯示幾何著色器調用。
範例
此範例來自 Direct3D 10 著色器模型 4.0 Workshop的練習 1。
[maxvertexcount(3)]
void GSScene( triangleadj GSSceneIn input[6], inout TriangleStream<PSSceneIn> OutputStream )
{
PSSceneIn output = (PSSceneIn)0;
for( uint i=0; i<6; i+=2 )
{
output.Pos = input[i].Pos;
output.Norm = input[i].Norm;
output.Tex = input[i].Tex;
OutputStream.Append( output );
}
OutputStream.RestartStrip();
}
最小著色器模型
下列著色器模型支援此物件。
著色器模型 | 支援 |
---|---|
著色器模型 4 和更新版本的著色器模型 | 是 |