XNA Quadtree com LOD


7

Estou procurando criar um ambiente bastante amplo e, como tal, gostaria de implementar um quadtree e usar o LOD nele. Examinei vários exemplos e recebo a idéia básica de um quadtree. Comece com um nó raiz com 4 vértices que cobrem o mapa inteiro e divida em 4 nós filhos até que eu atenda a alguns critérios (número máximo de triângulos)

Estou procurando algum algoritmo ou explicação muito, muito básica, com relação ao desenho da quadtree. Quais vértices precisam ser armazenados por iteração? Quando eu determino quais vértices desenhar? Quando atualizar índices e vértices? Espero integrar o frustum delimitador? Incluo vértices pai e filho?

Estou procurando instruções muito simples sobre o que fazer. Vasculhei a Internet há dias, mas todo mundo adiciona código extra e uma mudança diferente sem explicação.

Eu entendo quadtrees, mas não no que diz respeito à renderização 3D e lod. Um link para uma fonte externa provavelmente já terá sido lido por mim e não ajudará.

Atenciosamente, Byron.


11
O que você descreveu não é o método usado para desenhar um terreno com eficiência usando uma quadtree. Você não particiona o terreno no nível do vértice no quadtree. Você particiona o terreno em blocos contendo muitos vértices e cada bloco é atribuído a um nó quadtree. Existem muitas maneiras de fazer isso. Há vários exemplos de terreno árvore quad na net escrito em XNA, mas você disse que não quer que eu link para aqueles tão ...
Olhovsky

@Olhovsky, isso provavelmente deve ser listado como uma resposta
Joel Martinez

@ Joel - Não é uma resposta, porque não responde à pergunta.
Bob

Respostas:


2

A maneira "moderna" de renderizar terreno é usar LOD em blocos .

Nas últimas gerações de hardware, digamos nos últimos 5 a 10 anos, mexer com as primitivas de geometria no nível por quadro (conforme necessário, por exemplo, para ROAM) é contraproducente, pois gera um desempenho horrível. Você é muito melhor construindo toda uma gama de pedaços imutáveis ​​e selecionando os adequados com base na distância etc.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.