Estou tentando renderizar um terreno suave com o Direct3D. Eu tenho uma grade 50 * 50 com todos os valores de y = 0 e um conjunto de pontos 3D que indicam a localização na grade e a profundidade ou altura do "vale" ou "colina". Eu preciso aumentar ou diminuir os valores y dos vértices da grade, dependendo de quão próximos eles estejam de cada ponto 3D. Assim, no final, eu deveria ter um renderizador de terreno suave.
Não tenho certeza de que maneira eu posso fazer isso. Eu tentei alterar a altura dos vértices com base na distância de cada ponto usando apenas esta fórmula básica:
dist = sqrt(a² + b² + c²)
onde a, bec são as distâncias x, ye z de um vértice a um ponto 3D. O resultado que recebo com isso não é nada fácil.
Estou pensando que provavelmente existe uma maneira melhor.
Aqui está uma captura de tela do que eu tenho no momento: https://dl.dropbox.com/u/2562049/terrain.jpg
$dist = \sqrt{a^2 + b^2 + c^2}$
.