TerraMath
Создавай собственный рельеф с помощью математических функций и формул для уникальной процедурной генерации мира.
- Загрузчики
- FabricNeoForgeForge
- Скачиваний на Modrinth
- 25 тыс.
- Подписчиков на Modrinth
- 148
- версии
- 33
- Обновлён
- 19 октября 202619 окт.
- Опубликован
- в 2024
Коротко о моде
Нужен на сервере; в игре — по желанию
Описание
TerraMath — мод для Minecraft 1.20 - 1.21.x, который позволяет настраивать генерацию мира с помощью математических функций. Создавайте уникальные ландшафты, задавая высоту рельефа математическими формулами! Также можете зайти на мой Discord, чтобы найти другие формулы или поделиться своими.
Возможности
- Настраиваемая генерация мира с помощью математических формул
- Регулируемые базовые параметры генерации (масштаб, высота, вариация, сглаживание)
- Настраиваемое наложение шума поверх вашей базовой формулы
- Поддержка математических констант в формулах
Как использовать на клиенте
terramath.json 3. Задайте нужные параметры вручную в файле или... 4. ...настройте мод на своём клиенте 5. Задайте параметры и сохраните конфиг 6. Перенесите файл конфига в папку config на сервере ### Важные замечания по серверу: - Чтобы конфиг применился к новому миру, убедитесь, что параметр useDefaultFormula в конфиге установлен в true - После изменения настроек конфига нужно удалить существующий мир и перезапустить сервер, чтобы новая формула рельефа заработала - Либо можно перенести всю папку мира с клиента на сервер — мир продолжит генерироваться по той же формуле без изменения конфига ### Примеры формул - Простой волнистый ландшафт: sin(x)
Острый вулканический рельеф с крутыми склонами: abs(sin(x/10))*exp(cos(z/15))*8 + tanh(sqrt(x^2 + z^2)/20)*15
Пологие горы: sin(x/8)*cos(z/8)*10 + abs(sin(x/20))*15 + sqrt(abs(x/10))*5
Что-то безумное и тяжёлое: round(sin(x/15))*10 + round(cos(z/15))*10 + sqrt(abs(sin((x+z)/20)))*15
Террасированный ландшафт с плато: floor(sin(x/20) * cos(z/20) * 5) * 4 + sqrt(x^2 + z^2)/10
Рельеф, усеянный кратерами: 10 * (1 - exp(-((x/30)^2 + (z/30)^2) / 2)) + 5 * perlin(x/50, 0, z/50)
Математические функции:
Тригонометрические:
- sin(x) — синус
- cos(x) — косинус
- tan(x) — тангенс
- csc(x) — косеканс
- sec(x) — секанс
- cot(x) — котангенс
- asin(x) — арксинус
- acos(x) — арккосинус
- atan(x) — арктангенс
- atan2(x,y) — арктангенс с двумя аргументами
- acsc(x) — арккосеканс
- asec(x) — арксеканс
- acot(x) — арккотангенс
Гиперболические:
- sinh(x) — гиперболический синус
- cosh(x) — гиперболический косинус
- tanh(x) — гиперболический тангенс
- asinh(x) — обратный гиперболический синус
- acosh(x) — обратный гиперболический косинус
- atanh(x) — обратный гиперболический тангенс
- csch(x) — гиперболический косеканс
- sech(x) — гиперболический секанс
- coth(x) — гиперболический котангенс
- acsch(x) — обратный гиперболический косеканс
- asech(x) — обратный гиперболический секанс
- acoth(x) — обратный гиперболический котангенс
Корни и степени:
- sqrt(x) — квадратный корень
- cbrt(x) — кубический корень
- root(x,n) — корень n-й степени из x
- pow(x,y) — x в степени y
- exp(x) — экспонента (e^x)
Логарифмы:
- ln(x) — натуральный логарифм
- lg(x) — десятичный логарифм
Округление и числа:
- abs(x) — абсолютное значение
- floor(x) — наибольшее целое, меньшее x
- ceil(x) — наименьшее целое, большее x
- round(x) — округление до ближайшего целого
- sign(x) — возвращает знак x (-1, 0 или 1)
- mod(x,y) — остаток от деления x на y
- gcd(x,y) — наибольший общий делитель
- lcm(x,y) — наименьшее общее кратное
- modi(x,y) — модульное обратное
Специальные функции:
- gamma(x) — гамма-функция
- erf(x) — функция ошибок
- beta(x,y) — бета-функция
Генерация случайных чисел:
- rand() — случайное число от 0 до 1
- randnormal(mean,stdev) — случайное число из нормального распределения
- randrange(min,max) — случайное число между min и max
Функции шума:
- perlin(x,y,z) — шум Перлина
- simplex(x,y,z) — симплекс-шум
- normal(x,y,z) — нормальный шум
- blended(x,y,z) — смешанный шум
- octaved(x,z,octaves,persistence) — октавный шум
Вспомогательные функции:
- max(x,y) — максимум из x и y
- min(x,y) — минимум из x и y
- sigmoid(x) — сигмоида (1/(1+e^-x))
- clamp(x,min,max) — ограничивает x между min и max
Константы:
- pi, π — 3.14159... (константа π)
- e — 2.71828... (число Эйлера)
- phi, φ — 1.61803... (золотое сечение)
- zeta3, ζ3 — 1.20205... (постоянная Апери)
- catalan, K — 0.91596... (постоянная Каталана)
- alpha, α, feigenbaum — 2.50290... (постоянная Фейгенбаума)
- delta, δ, feigenbaumdelta — 4.66920... (дельта Фейгенбаума)
- omega, Ω — 0.6889 (космологическая постоянная)
Переменные: x, y, z — координаты блока в мире
Операторы: +, -, *, /, ^, (), !
## Известные проблемы
- Экстремальные формулы, создающие ландшафты XXL, могут влиять на производительность (вероятно, это не до конца решаемая проблема)
- Функции генерации случайных чисел могут значительно влиять на производительность генерации мира при частом использовании. Используйте эти функции умеренно, особенно в сложных формулах рельефа, так как они могут вызывать падение частоты кадров или увеличение времени загрузки чанков
## Участие в разработке
Сообщайте об ошибках или предлагайте новые функции через трекер задач!Частые вопросы
Как установить TerraMath?
Установите Fabric под свою версию Minecraft, скачайте TerraMath под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть TerraMath?
У TerraMath есть сборки для Minecraft 1.20–1.21.4, 1.21.11, 26.1.2–26.2.
Нужен ли TerraMath на сервере?
Нужен на сервере; в игре — по желанию