Estou tentando aprender mais sobre a malha de volume e decidi tentar implementar uma simples malha de volume. A estratégia que escolhi é subdividir meu espaço usando uma octree, refinada com base em alguns critérios. Verifiquei se meu octree está equilibrado, de modo que a diferença entre duas células vizinhas não seja maior que 1 (a chamada regra 2: 1).
Agora tenho que cortar minhas células em tetraedros. Eu li que o Cubo Centrado no Corpo (CBC) é uma maneira popular de fazer isso, mas infelizmente não encontrei nenhuma literatura que explique bem como lidar com as diferenças entre dois cubos vizinhos de níveis diferentes.
Também vi que é comum cortar cubos em 6 tetras, como mostrado abaixo, mas novamente não encontrei nada explicando como lidar com cubos de diferentes níveis:
http://www.ics.uci.edu/~eppstein/projects/tetra/sixcube.gif
Eu apreciaria se alguém pudesse explicar como os cubos de Octree devem ser cortados em tetras ou talvez me encaminhe para um artigo / apresentação sobre esse assunto.
fonte
Encontrei os seguintes documentos que descrevem claramente como fazer uma malha BCC e como lidar com os nós suspensos:
Geração de Malha Tetraédrica Adaptativa e de Qualidade
Isosurface Stuffing
A apresentação a seguir, além de descrever o CBC, também descreve o Cubo Centrado na Face (FCC): Malha Tetraédrica Ótima Não Ligada
fonte