O que significa voxelização "6-separando" e "26-separando"?

11

Eu estava lendo este artigo sobre o Voxelpipe, uma biblioteca de voxelização da NVIDIA e encontrei na seção 2 Voxelização os termos 6-separando e 26-separando

Encontrei este site que tenta explicar as idéias básicas sobre voxelização, mas não foi muito útil para entender os termos mencionados.

Alguém pode explicar ou apontar para outro recurso que possa me ajudar a entender?

BRabbit27
fonte

Respostas:

17

Os termos têm a ver com a "espessura" da voxelização. Ilustrarei com a ajuda de um diagrama sobre rasterização de linha 2D ( desta pergunta não relacionada ).

insira a descrição da imagem aqui

À direita está a rasterização de linha típica: o algoritmo encontra o pixel mais próximo da linha em cada linha (ou coluna, dependendo da inclinação). Isso produz o que geralmente consideramos uma linha com "1 pixel de espessura". À esquerda, há uma rasterização conservadora, que encontra todos os pixels cujo retângulo é tocado pela linha e produz uma linha mais espessa.

A voxelização com 6 separações é como a linha fina à direita e a separação 26 é como a linha grossa à esquerda, mas em 3D. Se você imagina que a linha é realmente um triângulo visualizado na borda, isso é análogo ao que seria a voxelização.

Diferentes tipos de voxelização podem ser melhores, dependendo do que você fará com os dados voxelizados posteriormente. Se você estiver usando os voxels como uma hierarquia espacial para encontrar triângulos que cruzam uma determinada região, provavelmente desejará a voxelização espessa, pois é conservadora. A voxelização espessa também pode ser preferível para marchar com raios, pois a voxelização fina pode ser perdida por um raio diagonal. Por outro lado, a voxelização fina é uma representação mais fiel da superfície original, o que provavelmente é melhor para testes de visibilidade, detecção de colisão, simulação de fluidos e similares.

A terminologia "n-separating" é um pouco lamentável, mas aqui está o que está chegando. Imagine que você está fazendo um preenchimento 3D na grade de voxel, mas no preenchimento você olha apenas para os 6 vizinhos diretos de cada voxel (± 1 passo ao longo de cada eixo). A voxelização (fina) de "6 separações" interromperá o preenchimento: basta separar os dois lados da superfície, se apenas 6 vizinhos forem considerados. Por outro lado, suponha que o preenchimento de sua inundação também possa ir para vizinhos diagonais - 26 vizinhos no total (bairro 3 × 3 × 3 de voxels). Então a voxelização com 6 separadores não interromperia o preenchimento, mas a 26 (espessa) separaria.

Nathan Reed
fonte
Agradável ! Sua explicação me dá a intuição sobre isso. Você tem algumas fontes nas quais posso ler um pouco mais sobre rasterização? Suponho que esse material de separação n vem do 2D, onde é mais fácil de entender e, em seguida, posso pensar melhor para entender a separação de 6 e 26 em 3D.
precisa saber é o seguinte
1
@ BRabbit27 Acho que a terminologia "n-separating" é muito usada na rasterização 2D; Eu só vi isso quando discutimos voxelização. Apenas se refere ao número de vizinhos. Vou acrescentar um pouco à resposta sobre isso.
Nathan Reed