Pergunta

Há muita literatura sobre detecção de colisão, e tenho lido pelo menos uma parte grande o suficiente para ser bastante familiarizado com a maioria das técnicas. No entanto, há algo que me tem escapado por um tempo, e eu percebi, desde StackOverflow permite o acesso a um grande grupo de mentes brilhantes ao mesmo tempo, eu ia perguntar aqui primeiro antes de cavar em torno da estante.

Neste dia e idade, mais e mais trabalho está sendo delegada a GPU em vez de CPU, e em muitos casos, isso é uma coisa boa. Por exemplo, existem shaders de geometria para criar nova geometria, ou vertex shaders (um pouco menos nova, mas ainda muito fascinante) para o qual você pode através de um grupo de vértices em, e algo elegante vai sair dela. O que eu estava considerando, porém, como essas primitivas existe apenas no hardware de gráficos, como você iria realizar a detecção de colisão de confiança com essas primitivas? Vamos supor que eu tenho algum tipo de malha extremamente simplificada que é deslocado em um shader de vértice (eu não tenho um problema concreto, estou mais jogando com a idéia, e eu não ter começado muito profundo em shaders de geometria ainda).

O que eu considerada até agora é separado 'rendering' passa a partir de ângulos adequados com sombreamento mais ou menos desligados, e talvez mais baixa resolução de malha, tornando o interior (com rostos capotou para dentro) de meu segundo primitivo junto com a malha Eu quero testar contra, e executar uma consulta de oclusão para a malha. Se a malha está completamente obstruída não haveria cruzamento. Isto é claro que a minha segunda primitiva é convexo.

De alguma forma, tenho a sensação de que este tipo de teste será extremamente caro como o número de primitivas aumentar (mesmo se uma grande parte pode ser abatidos diretamente). Alguém tem outra idéia ou técnica? Estou mais familiarizado com OpenGL e cg do DirectX, mas se você tem alguns exemplos mais ou menos no DirectX, eu acho que eu vou ser capaz de descobrir as contrapartidas OpenGL.

Todas as idéias são bem-vindas, brainstorm então por favor. :)

Foi útil?

Solução

Parece que o artigo de Dan Horn “Fluxo operações de redução para aplicações GPGPU” em GPU Gems 2 é exatamente o que você quer. Como todos os capítulos, é livremente disponíveis online.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top