У меня всегда есть какая-то странная симметрия в моем перлин-шуме. Это происходит всегда, и я пробовал использовать множество решений.
Я пытался немного сместить свой код, но что бы я ни делал, я всегда получал странную форму симметрии.
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
Почему в моей функции шума Перлина в Unity С# всегда присутствует симметрия ⇐ C#
Место общения программистов C#
1767399296
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);
}
}
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78037128/why-is-there-always-a-symmetry-in-my-perlin-noise-function-in-unity-c-sharp[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия