Campos de Distância com Sinal Assados

EN NL ES PT-BR


Um campo de distância com sinal assado é uma grade pré-calculada de amostras de distância que aproxima uma forma cuja função de distância não pode ser expressa como uma fórmula compacta. Em vez de avaliar uma expressão analítica em cada ponto de consulta, você amostra a distância real uma vez em cada célula da grade, armazena as amostras e reconstrói uma distância aproximada em tempo de execução por meio de interpolação. A grade se torna a representação do campo.

Esta é a abordagem padrão sempre que a geometria de origem não é uma primitiva matemática: glifos de fontes, terreno destrutível, modelos 3D digitalizados e malhas poligonais criadas por artistas. Para formas que possuem SDFs analíticos, consulte o tutorial completo sobre campos de distância com sinal .

Como o Assamento Funciona

A ideia central é direta. Coloque uma grade regular sobre a geometria de origem. Em cada ponto da grade, calcule a distância com sinal real até a superfície mais próxima. Registre esses valores. Quando você precisar da distância em uma posição arbitrária, leia as amostras circundantes da grade e interpole entre elas.

Inside Outside Surface

A visualização percorre esse processo passo a passo. Uma forma poligonal está sob uma grade de amostragem. Cada ponto da grade armazena a distância com sinal até a borda poligonal mais próxima, colorido em vermelho no interior, azul no exterior e branco na fronteira. Pressione play para acompanhar a avaliação célula por célula em ordem de varredura. Uma linha tracejada se estende do ponto atual da grade até sua borda mais próxima, para que você veja exatamente como cada distância é calculada.

A sobreposição colorida mostra a interpolação bilinear reconstruindo o campo a partir dessas amostras discretas. Observe o contorno poligonal tracejado sobreposto à camada colorida: ele revela onde a interpolação se desvia das bordas reais. Em baixas resoluções, o contorno zero reconstruído arredonda cantos e desfoca detalhes finos. Conforme você aumenta a resolução, o campo se ajusta mais firmemente às bordas originais e a perda de informação diminui.

Resolução e Precisão

A compensação é entre memória e precisão, e é acentuada. Dobrar a resolução da grade em 2D multiplica o número de amostras por 4; em 3D multiplica por 8. Uma grade de volume 32³ armazena 32.768 amostras. Uma grade 256³ armazena mais de 16 milhões. A maioria das aplicações escolhe uma resolução que cabe em seu orçamento e aceita o erro de aproximação resultante.

Passe o mouse sobre qualquer ponto da grade na visualização para ver suas coordenadas e a distância com sinal calculada. A diferença entre o valor amostrado em um ponto da grade e o valor interpolado em uma posição intermediária próxima é onde o erro de aproximação vive.

Os cantos são sempre o caso mais difícil. A distância com sinal real até um canto muda abruptamente de direção de inclinação quando você cruza a bissetriz. A interpolação bilinear só pode produzir misturas suaves dos quatro valores de amostra circundantes, então ela inevitavelmente arredonda o canto. Resolução mais alta reduz a região de arredondamento, mas nunca a elimina completamente. Esta é uma limitação fundamental da amostragem uniforme em grade.

Campos Amostrados e o Pipeline de SDF

Uma vez que um campo é assado, ele se encaixa no mesmo pipeline downstream que um SDF analítico. Operações CSG como união, interseção e subtração consomem apenas valores escalares em cada ponto, portanto funcionam de forma idêntica em campos amostrados. As normais de superfície ainda podem ser estimadas com diferenças finitas entre amostras vizinhas da grade. O ray marching ainda pode percorrer o campo.

A única diferença prática é a segurança do passo. Um SDF analítico garante a distância até a superfície mais próxima, o que torna o sphere tracing seguro com tamanhos de passo iguais ao valor do campo. A interpolação bilinear de amostras da grade não preserva essa garantia de distância exata, então os ray marchers precisam de margens de segurança mais amplas ao percorrer campos amostrados. A distância interpolada deve ser tratada como um limite inferior conservador em vez de um valor exato.

Aplicações

A Valve introduziu campos de distância com sinal assados na computação gráfica convencional com seu artigo da SIGGRAPH 2007 sobre ampliação de texturas vetoriais testadas com alpha. Glifos de fontes são assados uma vez em uma textura de distância, e a interpolação bilinear por hardware reconstrói bordas nítidas e anti-aliasing em qualquer ampliação sem armazenar bitmaps de alta resolução. A mesma técnica é agora padrão em renderização de texto e interface de alta qualidade.

Em 3D, a Unreal Engine 5 gera campos de distância com sinal a partir de malhas de triângulos estáticas em grades de voxels esparsas. Esses campos de distância de malha impulsionam sombras de campo de distância, oclusão ambiente e detecção de colisão em todo o motor. A etapa de assamento é executada offline durante a criação de conteúdo, então o custo em tempo de execução é apenas de consultas à grade e interpolação.

Motores de física também usam SDFs assados para consultas de colisão entre malhas complexas. A grade é tipicamente assada em uma resolução mais grossa do que as grades de renderização, trocando precisão espacial por velocidade de computação, e reassada a cada quadro para objetos deformáveis.

Além das Grades Uniformes

Duas extensões comuns abordam as limitações da amostragem uniforme.

Campos de distância amostrados adaptativamente (ADFs) substituem a grade uniforme por uma octree que concentra amostras perto das características da superfície e usa células mais grossas em regiões planas. Isso reduz o desperdício de memória enquanto preserva detalhes onde importa. A compensação é a complexidade de percurso: consultar um ADF requer navegar por uma estrutura de árvore em vez de indexar um array plano, o que é mais difícil de acelerar em hardware GPU de função fixa.

Campos de distância com sinal multicanal (MSDFs) armazenam distâncias a múltiplas bordas próximas por célula da grade, usando canais de cor extras em uma textura. Durante a interpolação, cada canal fornece um candidato de distância a uma borda diferente, e a distância final é o mínimo entre os canais. Isso preserva cantos afiados que um SDF de canal único arredondaria, ao custo de 3× ou 4× a memória de textura. MSDFs são padrão em renderização de texto de alta qualidade e são cada vez mais usados para gráficos vetoriais em GPUs.

Ambas as técnicas se baseiam no mesmo princípio de assamento: amostrar a distância real quando possível, armazenar o resultado e reconstruir em tempo de execução. Uma vez que a base da grade uniforme está clara, essas extensões são passos naturais.