No ruído Perlin, por que precisamos de vetores e como usá-los exatamente?

5

Estou lendo este tutorial sobre o ruído do Perlin: link que parece ser o mais claro, mas ainda não é perfeito. Muitos detalhes são ignorados e muito código inexplicado.

Minha pergunta geral é: por que precisamos de vetores para ruído de Perlin (em vez de apenas valores de ruído em coordenadas específicas), por que eles precisam ser vetores unitários e como combiná-los com as coordenadas de ponto de entrada?

Além disso, o artigo fornece este pedaço de código como cálculo vetorial, que parece tentar descobrir coordenadas de células quadradas (exceto que 1 é subtraído em vez de ser adicionado por algum motivo):

// Computing vectors from the four points to the input point
float tx0 = x - floorf(x);
float tx1 = tx0 - 1;

float ty0 = y - floorf(y);
float ty1 = ty0 - 1;

Isso não parece com nenhuma operação vetorial.

    
por Val 08.01.2016 / 15:53
fonte

1 resposta

1

Perlin Noise é um conceito em matemática. Se você puder imaginar uma seção de uma cadeia de montanhas, você obteria um movimento relativo e suave, como uma onda de pecado distorcida. O conceito é que cada posição, (x, y) localização é relativa ao seu "vizinho". Essa é a ideia com os vetores. Vetores são uma direção, não um ponto estático. Assim, o vetor é usado para fornecer uma transição suave entre os pontos. Ele fornece uma direção geral das linhas. Caso contrário, você acabaria com algo que se parece com um gráfico do mercado de ações. Um bitmap com valores gradientes aleatórios provavelmente não terá transições - não faria sentido.

Imagine como esse bitmap de valor de gradiente aleatório seria semelhante a um mapa de altura. Verticies de uma malha será caótica. Enormes aumentos e diminuições sem fluxo geral.

    
por 17.08.2018 / 05:36
fonte

Tags