Em 1983, Ken Perlin inventou um tipo especial de ruído chamado ruído de Perlin. Esse tipo de ruído tem uma ampla gama de aplicações em computação gráfica, especialmente na geração de cenas naturais e animações, onde pode efetivamente ajudar a criar efeitos físicos realistas. O ruído Perlin pode ser usado para gerar terreno, fornecer alterações pseudoaleatórias em variáveis e atualizar texturas de imagem. Esta postagem abordará o contexto, os usos e a importância do ruído Perlin.
A inspiração de Ken Perlin para a criação veio de sua frustração com a sensação mecânica das imagens geradas por computador (CGI) na época. Em 1985, ele publicou formalmente um artigo intitulado "Um sintetizador de imagem" na conferência SIGGRAPH, que detalhou o ruído de Perlin. Seu desenvolvimento foi inspirado em parte por seu trabalho no filme de ficção científica de animação computadorizada da Disney, Tron, de 1982. Após o desenvolvimento de sua técnica, Perlin recebeu um Oscar em 1997 por suas contribuições à arte de criar texturas de aparência natural em superfícies geradas por computador.
“Desde o desenvolvimento do ruído de Perlin, os artistas de computação gráfica têm sido capazes de representar de forma mais realista a complexidade dos fenômenos naturais.”
Ruído de Perlin é um elemento de textura procedural usado como ruído de gradiente que aumenta gradualmente o realismo dos gráficos de computador. Embora esse recurso tenha uma natureza pseudoaleatória, todos os detalhes visíveis são de tamanho consistente. Essa propriedade torna a operação muito controlável; os artistas podem conectar várias cópias em escala do ruído Perlin em expressões matemáticas para criar uma ampla variedade de texturas procedimentais. Texturas sintéticas geradas usando ruído Perlin são frequentemente usadas em CGI para ajudar elementos visuais gerados por computador, como superfícies, fogo, fumaça ou nuvens, a parecerem mais naturais.
O ruído de Perlin geralmente é implementado em duas, três ou quatro dimensões, mas pode ser definido em qualquer dimensão. A implementação normalmente envolve três etapas: definir uma grade de vetores de gradiente aleatórios, calcular o produto escalar dos vetores de gradiente com seus deslocamentos e interpolar entre esses valores.
Defina uma grade n-dimensional onde cada interseção da grade é associada a um vetor gradiente aleatório de comprimento unitário n-dimensional. Essa aleatoriedade ajuda a criar um efeito de textura natural.
Para calcular o valor de qualquer ponto candidato, primeiro encontramos a célula de grade exclusiva onde o ponto está localizado, então identificamos os 2^n cantos da célula e seus vetores de gradiente associados e então calculamos o vetor de deslocamento para cada canto e calculamos o vetor de gradiente para cada canto. A influência de cada canto da grade aumenta com a distância, o que significa que a operação de normalização no vetor de deslocamento pode introduzir mudanças bruscas significativas, por isso é mais importante levar em conta a distância na etapa de interpolação.
A etapa final é interpolar esses produtos DOT. Isso é feito usando uma função que tem zero derivadas de primeira ordem em 2^n nós da grade, então, perto de cada nó da grade, a saída se aproximará do produto escalar do vetor gradiente do nó e do vetor de viés.
Complexidade"O ruído de perlin é caracterizado pelo fato de passar por 0 em todos os nó, o que lhe dá sua aparência distinta."
Para cada avaliação da função de ruído, o produto escalar da posição e do vetor gradiente deve ser calculado em cada nó que contém uma célula de grade. Portanto, a complexidade do ruído de Perlin é O(2^n) à medida que a dimensão aumenta e o contexto aumenta. Embora o ruído Perlin ainda tenha seu lugar na computação, novas alternativas, como Simple Noise e OpenSimplex Noise, surgiram e fornecem resultados semelhantes com eficiência computacional aprimorada.
A invenção do ruído de Perlin não apenas mudou a maneira como os efeitos visuais são criados, mas continua a influenciar nossa compreensão de imagens geradas por computador. No futuro, como a tecnologia aumentará ainda mais nossa capacidade de recriar fenômenos naturais no mundo digital?