Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Uma lista de triângulos é uma lista de triângulos isolados. Eles podem ou não estar perto um do outro. Uma lista de triângulos deve ter pelo menos três vértices e o número total de vértices deve ser divisível por três.
Use listas de triângulos para criar um objeto composto por peças desarticuladas. Por exemplo, uma maneira de criar uma parede de campo de força em um jogo 3D é especificar uma grande lista de triângulos pequenos e não conectados. Em seguida, aplique um material e textura que aparece para emitir luz à lista de triângulos. Cada triângulo na parede parece brilhar. A cena atrás da parede torna-se parcialmente visível através das lacunas entre os triângulos, como um jogador pode esperar ao olhar para um campo de força.
Listas de triângulos também são úteis para criar primitivos que têm bordas afiadas e são sombreados com sombreamento Gouraud. Consulte vetores normais de face e vértice (Direct3D 9).
A ilustração a seguir ilustra uma lista de triângulos renderizados.
O código a seguir mostra como criar vértices para essa lista de triângulos.
struct CUSTOMVERTEX
{
float x,y,z;
};
CUSTOMVERTEX Vertices[] =
{
{-5.0, -5.0, 0.0},
{ 0.0, 5.0, 0.0},
{ 5.0, -5.0, 0.0},
{10.0, 5.0, 0.0},
{15.0, -5.0, 0.0},
{20.0, 5.0, 0.0}
};
O exemplo de código abaixo mostra como renderizar essa lista de triângulos no Direct3D 9 usando IDirect3DDevice9::D rawPrimitive.
//
// It is assumed that d3dDevice is a valid
// pointer to a IDirect3DDevice9 interface.
//
d3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, 2 );
Você também pode usar tiras de triângulo para renderizar triângulos que não estão conectados uns aos outros. Para fazer isso, especifique um triângulo degenerado (ou seja, um triângulo com tamanho zero) na lista; isso criará uma linha entre os dois triângulos que não serão exibidos durante a renderização. Por exemplo, para renderizar apenas o primeiro e o último triângulo do exemplo anterior, inicialize o buffer de vértice com os seguintes vértices:
CUSTOMVERTEX Vertices[] =
{
{-5.0, -5.0, 0.0},
{ 0.0, 5.0, 0.0},
{ 5.0, -5.0, 0.0},
{ 5.0, -5.0, 0.0}, // degenerate triangle
{10.0, 5.0, 0.0}, // degenerate triangle
{10.0, 5.0, 0.0},
{15.0, -5.0, 0.0},
{20.0, 5.0, 0.0}
};
Tópicos relacionados