Estructura para almacenamiento de fotones GPU

Estructura para almacenamiento de fotones GPU

de Andres Jorge Kent Longo -
Número de respuestas: 1

Buenas,

En base a lo que nos sugirió José el día de la preentrega intentamos acceder desde GPU a la estructura del KDTree generada en CPU, pero debido a que la búsqueda en el árbol es recursiva nos estuvo dando problema (no estamos seguros si por CUDA o por Optix). Intentamos buscar implementaciones de otras estructuras pero lo poco que encontramos no hemos podido integrarlo a nuestro proyecto. El otro grupo que usa Optix encontró alguna otra solución o convendrá implementar nosotros una estructura tipo grilla de cero? En caso de implementarlo nosotros, qué método convendría utilizar?

Gracias!

En respuesta a Andres Jorge Kent Longo

Re: Estructura para almacenamiento de fotones GPU

de Jose Pedro Aguerre -

Andrés,

Una opción es desarmar la recursión para que se transforme en un procedimiento iterativo. Para eso tienen que usar un stack propio que vaya guardando las "llamadas" que aun quedan por ejecutar.

Si no quieren meterse en eso, una opción "fuerza bruta" es hacer un for que recorra todos los fotones y cuente los que caen en el radio especificado. Esta cuenta la hacen para cada pixel, por lo que va a ser lento. Pero debería ser fácil de implementar y dar resultados coherentes.

La tercera opción es armar una subdivisión uniforme del espacio y guardar los fotones dentro de ella (pueden hacerlo como un array de arrays). Luego, a la hora de consultar el mapa, se fijan solo en el cubo correspondiente y adyacentes. Así se acelera bastante el algoritmo "fuerza bruta" mencionado anteriormente.

Saludos,

José