¿Alguien puede sugerir un rápido, método eficiente para almacenar y acceder a un octree escaso?Almacenamiento eficiente para un octree escaso?
Preferiblemente algo que se puede implementar fácilmente en HLSL. (Estoy trabajando en una aplicación raycasting/voxel)
En este caso, el árbol se puede calcular previamente, por lo que me preocupa principalmente el tamaño y el tiempo de búsqueda.
actualización
para cualquiera que quiera hacer esto, una solución más eficiente puede ser para almacenar los nodos como octree lineal generado con un árbol curva de orden Z/Morton. Hacerlo elimina el almacenamiento de los nodos internos, pero puede requerir referencias cruzadas de la matriz de árbol lineal con una segunda "textura de datos" que contiene información sobre el vóxel individual.
Cuando dice escasa, ¿quiere decir que hay un vasto espacio 3D, y sólo unos pocos artículos, pequeños? –
@Kevin sí. Digamos, un tamaño de cubo de (2^10)^3 (1GB) elementos, probablemente un 20% completo. –
¿Es diferente de un octree normal, entonces? Lo siento, estoy familiarizado con quad y octrees, pero el octree escaso suena como algo nuevo para mí. –