VER A DEMODOWNLOAD O CÓDIGO
Em 3D aplicações nível de detalhe, ou LOD para breve, refere-se a um processo que altera a densidade de polígonos de uma malha, geralmente reduzindo o polígono contar o mais uma malha está fora da câmara. A idéia é que apenas os objetos próximos à câmera precisam ser processados com todos os detalhes, e que a redução da contagem de polígonos para objetos menores e mais distantes aumenta o desempenho sem sacrificar muito na maneira de apelo visual.
Há um certo número de maneiras isto pode ser feito.
Muitas vezes nos motores 3D comerciais (e, normalmente, C ++) o LOD de malha pode ser reduzida na mosca. Papervision suporta um sistema menos complicado do que são visualizadas de uma malha predeterminada dada a distância objectos a partir da câmara. Ele não tem completamente a mesma flexibilidade de um sistema de LOD dinâmica, mas no final do dia, produz o mesmo efeito.
A classe SimpleLevelOfDetail é utilizado para exibir a partir de uma matriz de malhas fornecido, trocando entre eles de forma linear de acordo com a distância do objecto é a partir da câmara.
Você simplesmente fornecer o construtor SimpleLevelOfDetail com a variedade de malhas, e dar-lhe um mínimo e máximo de distância. Quando o objecto é mais estreita do que a distância mínima que mostra a primeira malha na matriz, e quando é mais do que a distância máxima que mostra a última malha. Para distâncias em entre ele vai pegar uma das malhas no meio da matriz.
O exemplo de aplicativo cria cinco esferas que saltam ao redor dentro de uma caixa invisível. Cada esfera tem quatro malhas associados, que representam quatro níveis de detalhe.
Como as esferas se aproximar da câmera que você vai notar que eles usam uma malha mais detalhada, e mudar progressivamente para uma malha detalhe inferior como eles se afastam. As malhas são texturas-se com um material wireframe para que você possa ver facilmente a densidade polígono de cada modelo.
De volta para Tutoriais Papervision