Pregunta

Hay mucha literatura sobre detección de colisiones, y he leído al menos una parte lo suficientemente grande como para estar bastante familiarizado con la mayoría de las técnicas. Sin embargo, hay algo que me ha eludido por un tiempo, y pensé que, dado que StackOverflow proporciona acceso a un gran grupo de mentes brillantes a la vez, preguntaría aquí primero antes de buscar en la estantería.

Hoy en día, cada vez se delega más trabajo a la GPU que a la CPU, y en muchos casos esto es algo bueno. Por ejemplo, hay sombreadores de geometría para crear geometría nueva, o sombreadores de vértices (un poco menos nuevos, pero aún bastante fascinantes) a los que puede acceder a través de un montón de vértices, y saldrá algo elegante. Sin embargo, lo que estaba considerando, dado que estas primitivas solo existen en el hardware de gráficos, ¿cómo realizaría una detección de colisión confiable con estas primitivas? Supongamos que tengo algún tipo de malla extremadamente simplificada que se desplaza en un sombreador de vértices (no tengo un problema concreto, estoy jugando más con la idea y todavía no he profundizado en los sombreadores de geometría).

Lo que he considerado hasta ahora es pasar por separado 'renderizar' desde ángulos adecuados con sombreado más o menos apagado, y quizás una malla de menor resolución, renderizando el interior (con las caras volteadas hacia adentro) de mi segundo primitivo junto con la malla Quiero probar y ejecutar una consulta de oclusión para la malla. Si la malla está completamente ocluida, no habrá intersección. Por supuesto, esto requeriría que mi segunda primitiva sea convexa.

De alguna manera tengo la sensación de que este tipo de prueba será extremadamente costosa a medida que aumenta el número de primitivas (incluso si una gran parte se puede eliminar directamente). ¿Alguien más tiene otra idea o técnica? Estoy más familiarizado con opengl y cg que con directx, pero si tienes algunos ejemplos más o menos en directx, creo que podré averiguar las contrapartes de opengl.

Todas las ideas son apreciadas, así que por favor haga una lluvia de ideas. :)

¿Fue útil?

Solución

Suena como el artículo de Dan Horn & # 8220; Operaciones de reducción de flujo para aplicaciones GPGPU & # 8221; en GPU Gems 2 es exactamente lo que quieres. Como todos los capítulos, está libremente disponible en línea .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top