Recientemente comencé a desarrollar el motor de vóxeles. Lo que necesito son solo vóxeles coloridos sin textura, pero en gran cantidad (mucho más pequeños que Minecraft) - y la pregunta es ¿cómo dibujar la escena muy rápido? Estoy usando C#/xna, pero esto en mi opinión no es muy importante en este caso, hablemos de casos generales. Mira estos dos juegos:Voxel Engine and Optimization
Especialmente creo número de vídeo 2 representa grandes métodos de optimización (mi tarjeta de GFX comienza asfixia solo a 192 x 192 x 64) ¿Cómo logran ¿esta?
lo que iba a tener en el motor:
- voxels de colores sin textura, pero la sombra
- muchos, muchos voxels, digamos mínima de 512 x 512 x 128 para lograr algo así como video # 2
- sombras (sombras suaves serán grandes, pero esto no es necesario)
- opcional: dinámica de iluminación (por ejemplo, de bolas de fuego que vuelan, que se encienden cerca de estructuras voxel)
- tasa de fotogramas mínimo 40 FPS
- cámara tener 3 formas de libertad (movimiento en el eje x, se mueven en el eje y, se mueven en el eje z), no se necesita rotación de la cámara
- característica finalmente opcional puede ser Profundidad de El campo (será dulce ^^)
lo optimización ya he saber:
- eliminar los voxels invisibles que reside dentro de la estructura del voxel (cubierto fr om seis direcciones por otros voxels)
- eliminar caras invisibles de los voxels - porque la cámara no tienen rotación y siempre se ven oblicuamente hacia delante como en los juegos de TPP, por lo que si dividimos la pantalla por corte vertical, a la izquierda voxels y voxels derecha mostrará sólo 3 caras
- mantienen voxels en el diccionario en lugar de la matriz de 3 dimensiones - saltando a través matriz de tamaño 512 x 512 x 128 toma milisegundos que es inaceptable - pero diccionario int: Color de donde int describe embalado posición 3D es mucho, mucho más rápido
- use instancing donde se puede aplicar
- oclusión? (Cómo hacer esto?)
- espacio de separación/octtree (¿es buena idea?)
estaré muy agradecido si alguien me da una propina cómo mejorar optimizaciones existentes, que aparecen por encima o puede compartir ideas de nuevas mejoras. Gracias
Tenga en cuenta que ambos videos muestran motores que no parecen ser compatibles con la rotación. Además, el segundo video probablemente use vallas publicitarias para los objetos desenfocados en lugar de los objetos voxel. – Skizz