Почему в моей функции шума Перлина в Unity С# всегда присутствует симметрияC#

Место общения программистов C#
Ответить
Anonymous
 Почему в моей функции шума Перлина в Unity С# всегда присутствует симметрия

Сообщение Anonymous »

У меня всегда есть какая-то странная симметрия в моем перлин-шуме. Это происходит всегда, и я пробовал использовать множество решений.
Я пытался немного сместить свой код, но что бы я ни делал, я всегда получал странную форму симметрии.
int verticesx = (cubeAmountX) + 1;
int verticesy = (cubeAmountY) + 1;
for(float x = ((chunkX) * (cubeAmountX/3)); x < verticesx + ((chunkX) * (cubeAmountX/3)); x++){
for(float y = ((chunkY) * (cubeAmountY/3)); y < verticesy + ((chunkY)* (cubeAmountY/3)); y++){
float perlinNoiseResult = Mathf.PerlinNoise((x + 0.1f) / 100 * scale + 132765, (y + 0.2f) / 100 * scale + 38789);
perlinNoiseResult *= (Mathf.PerlinNoise((x + 0.3f) / 100 * scale * (x + 0.4f) / 100 * scale + 132765, (y + 0.5f) / 100 * scale * (y + 0.6f) / 100 * scale + 38789)) / 5 + 1;
float biomeDecider = (Mathf.PerlinNoise(Mathf.Sqrt(Mathf.Abs(x + 0.7f) / 100 * scale) + 132765, Mathf.Sqrt(Mathf.Abs(y + 0.8f) / 100 * scale) + 38789));
biomeDecider = 1/(1+Mathf.Pow(2,(-16*(biomeDecider - 0.5f))));
perlinNoiseResult *= biomeDecider + 0.1f;

vertices.Add(new Vector3(x * lengthBetweenVertices, perlinNoiseResult * maxheight - 10, y * lengthBetweenVertices));
uv.Add(new Vector2(x/verticesx,y/verticesy));
for(int ix = 0;ix < detail * lengthBetweenVertices;ix++){
for(int iy = 0; iy < detail * lengthBetweenVertices;iy++){
Color color = CalculateColor(Mathf.PerlinNoise((x + ix/detail/lengthBetweenVertices)/ 100 * scale, (y + iy/detail/lengthBetweenVertices) / 100 * scale) * biomeDecider * maxheight - 10, maxheight);
texture.SetPixel((int)x * (int)detail * (int)lengthBetweenVertices + ix,(int)y * (int)detail * (int)lengthBetweenVertices + iy,color);
}
}
}
}



Подробнее здесь: https://stackoverflow.com/questions/780 ... ty-c-sharp
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»