Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O Direct3D 10 e superior suporta vários tipos primitivos (ou topologias) que são representados pelo D3D_PRIMITIVE_TOPOLOGY tipo enumerado. Esses tipos definem como os vértices são interpretados e renderizados pelo pipeline.
- Tipos primitivos básicos
- Adjacência Primitiva
- Direção de enrolamento e posições de vértice de liderança
- Geração de várias tiras
- Tópicos relacionados
Tipos primitivos básicos
Os seguintes tipos primitivos básicos são suportados:
Para obter uma visualização de cada tipo primitivo, consulte o diagrama mais adiante neste tópico em Direção do enrolamento e Posições do vértice à esquerda.
O estágio de montagem de entrada lê dados de buffers de vértice e índice, monta os dados nessas primitivas e, em seguida, envia os dados para os estágios de pipeline restantes. (Você pode usar o método ID3D11DeviceContext::IASetPrimitiveTopology para especificar o tipo primitivo para o estágio de montagem de entrada.)
Adjacência Primitiva
Todos os tipos primitivos Direct3D 10 e superiores (exceto a lista de pontos) estão disponíveis em duas versões: um tipo primitivo com adjacência e um tipo primitivo sem adjacência. Primitivos com adjacência contêm alguns dos vértices circundantes, enquanto primitivos sem adjacência contêm apenas os vértices do primitivo alvo. Por exemplo, a primitiva da lista de linhas (representada pelo valor D3D_PRIMITIVE_TOPOLOGY_LINELIST) tem uma primitiva de lista de linhas correspondente que inclui adjacência (representada pelo valor D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ).
As primitivas adjacentes destinam-se a fornecer mais informações sobre sua geometria e só são visíveis por meio de um sombreador de geometria. A adjacência é útil para sombreadores de geometria que usam deteção de silhueta, extrusão de volume de sombra e assim por diante.
Por exemplo, suponha que você queira desenhar uma lista de triângulos com adjacência. Uma lista de triângulos que contém 36 vértices (com adjacência) produzirá 6 primitivos completos. Primitivos com adjacência (exceto tiras de linha) contêm exatamente o dobro de vértices do que o primitivo equivalente sem adjacência, onde cada vértice adicional é um vértice adjacente.
Direção de enrolamento e posições de vértice de liderança
Como mostrado na ilustração a seguir, um vértice à esquerda é o primeiro vértice não adjacente em um primitivo. Um tipo primitivo pode ter vários vértices principais definidos, desde que cada um seja usado para um primitivo diferente. Para uma tira de triângulo com adjacência, os vértices principais são 0, 2, 4, 6 e assim por diante. Para uma faixa de linha com adjacência, os vértices principais são 1, 2, 3 e assim por diante. Um primitivo adjacente, por outro lado, não tem vértice principal.
A ilustração a seguir mostra a ordenação de vértices para todos os tipos primitivos que o montador de entrada pode produzir.
Os símbolos na ilustração anterior são descritos na tabela a seguir.
| Símbolo | Designação | Descrição |
|---|---|---|
|
Vértice | Um ponto no espaço 3D. |
|
Direção do enrolamento | A ordem do vértice ao montar um primitivo. Pode ser no sentido horário ou anti-horário; especifique isso chamando ID3D11Device1::CreateRasterizerState1. |
de vértice à esquerda |
Vertex líder | O primeiro vértice não adjacente em uma primitiva que contém dados por constante. |
Geração de várias tiras
Você pode gerar várias tiras através do corte de tiras. Você pode executar um corte de faixa chamando explicitamente o RestartStrip função HLSL ou inserindo um valor de índice especial no buffer de índice. Esse valor é –1, que é 0xffffffff para índices de 32 bits ou 0xffff para índices de 16 bits. Um índice de –1 indica um «corte» ou «reinício» explícito da faixa atual. O índice anterior completa a primitiva ou faixa anterior e o índice seguinte inicia uma nova primitiva ou faixa. Para obter mais informações sobre como gerar várias faixas, consulte Geometry-Shader Stage.
Observação
Você precisa de nível de recurso hardware 10.0 ou superior porque nem todo o hardware 10level9 implementa essa funcionalidade.
Tópicos relacionados
de vértice à esquerda