Criação de ativos para renderização de campo de distância assinado?

9

Na computação gráfica tradicional, a maioria dos modelos 3D é renderizada por rasterização ou traçado de raios contra uma malha subdividida de primitivas, geralmente triângulos ou quads. Mais recentemente , algumas técnicas em tempo real foram baseadas no rastreamento de raios em relação aos campos de distância assinados (SDFs). Intuitivamente, esses campos de distância não podem ser os mesmos triângulos e quadríceps da renderização tradicional e devem ser algo como primitivas geométricas 3D (cubos, esferas etc.) para obter o sombreamento adequado. Isso é verdade? Caso contrário, cenas complexas de modelos 3D "tradicionais" podem ser representadas usando SDFs? Se for verdade, como os artistas criam modelos de alto detalhe usados ​​nos renderizadores SDF?

Mokosha
fonte

Respostas:

7

Os campos de distância assinados são populares em aplicações gráficas mínimas, como a cena de demonstração, onde objetos interessantes podem ser sintetizados a partir de poucas primitivas analíticas simples, como esferas ou cubos. No entanto, os campos de distância assinados não estão restritos a esses objetos simples e não precisam necessariamente ser projetados por humanos. Por exemplo, você pode sintetizar o campo de distância analítica assinada de uma malha de triângulo sem nenhuma interação do artista - o SDF é apenas a distância assinada até o triângulo mais próximo, o que pode ser facilmente calculado. Isso permite que você continue usando seu pipeline de malha tradicional enquanto também usa SDFs em segundo plano.

No caso do Unreal Engine, o SDF é pré-computado automaticamente uma vez para todas as malhas estáticas e, em seguida, é amostrado em uma textura 3D de baixa resolução. Em seguida, ele pode ser avaliado de forma barata em qualquer lugar usando uma simples pesquisa de textura, permitindo que eles façam sombras suaves e similares em tempo de execução. Esta apresentação irreal na GDC 2011 menciona brevemente as texturas 3D (slide 27).

Benedikt Bitterli
fonte
11
Também é fácil gerar um SDF a partir de um modelo voxel.
Nathan Reed
Há um artigo no GPU Gems 3 sobre a construção de campos de distância assinados para malhas arbitrárias usando a GPU, disponível gratuitamente aqui: http.developer.nvidia.com/GPUGems3/gpugems3_ch34.html
Matteo Bertello