Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Um objeto de sombreador de geometria processa primitivos inteiros. Use a sintaxe a seguir para declarar um objeto de sombreador de geometria.
[maxvertexcount(NumVerts)] void ShaderName ( PrimitiveType DataType Name [ NumElements ], inout StreamOutputObject );
Parâmetros
-
[maxvertexcount(NumVerts)]
-
[em] Declaração para o número máximo de vértices a criar.
- [maxvertexcount()] - palavra-chave necessária; colchetes e parênteses são caracteres obrigatórios para a sintaxe correta.
- NumVerts - Um número inteiro que representa o número de vértices.
-
ShaderName
-
[em] Uma cadeia de caracteres ASCII que contém um nome exclusivo para a função de sombreador de geometria.
-
PrimitiveType DataType Name [ NumElements ]
-
PrimitiveType - Tipo primitivo, que determina a ordem dos dados primitivos.
Tipo primitivo Descrição ponto Lista de pontos linha Lista de linhas ou faixa de linhas triângulo Lista de triângulos ou faixa de triângulo lineadj Lista de linhas com adjacência ou faixa de linha com adjacência triangleadj Lista de triângulos com adjacência ou faixa de triângulo com adjacência DataType - [in] Um tipo de dados de entrada; pode ser qualquer tipo de dados HLSL.
Nome - Nome do argumento; esta é uma cadeia de caracteres ASCII.
NumElements - Tamanho da matriz da entrada, que depende do PrimitiveType conforme mostrado na tabela a seguir.
Tipo primitivo NumElements ponto [1]
Você opera em apenas um ponto de cada vez.linha [2]
Uma linha requer dois vértices.triângulo [3]
Um triângulo requer três vértices.lineadj [4]
Um lineadj tem duas extremidades; portanto, requer quatro vértices.triangleadj [6]
Um triânguloadj faz fronteira com mais três triângulos; portanto, requer seis vértices. -
StreamOutputObject
Valor de retorno
Nenhum
Comentários
O diagrama a seguir mostra os vários tipos primitivos para um objeto de sombreador de geometria.
O diagrama a seguir mostra invocações de sombreador de geometria.
Exemplos
Este exemplo é do exercício 1 do Direct3D 10 Shader Model 4.0 Workshop.
[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();
}
Modelo de sombreamento mínimo
Este objeto é suportado nos seguintes modelos de sombreador.
Modelo Shader | Suportado |
---|---|
Shader Model 4 e modelos de sombreador superior | Sim |