ПрограммированиеФорумГрафика

Равномерно-случайно расположить точки на ландшафте. (3 стр)

Страницы: 1 2 3 4 Следующая »
#30
21:41, 9 июля 2024

Salamandr
> А современным игрокам подавай приключений заскриптованных, заренее продуманных и прошедших через геймдиза.
Это ты прям за всех высказался ?
Salamandr
> Лучше меньше, но качественный опыт. Поэтому инди и выживают, ну.. те что делают так.
Меньше чего ? Приведи что ли пример таких игр и сколько человек в этой инди конторе принимали участие в разработке

#31
21:55, 9 июля 2024

endeavour_pr
> Это ты прям за всех высказался ?
делайте как хотите, нормальную то игру тяжело продать. А то что какашка продастся, дык это ошибка выжившего.

endeavour_pr
> Приведи что ли пример таких игр и сколько человек в этой инди конторе принимали участие в разработке
это не столь важно, актуальная информация стоит времени. Не вижу смысла приводить примеры своей "насмотренности". Мне просто лень искать сейчас эти примеры тратя и без того своё драгоценное время отведенное случайным числом.
Просто возьмите любую старую игру, саму небольшую, самую лоупольную и сравните с продакшеном современности. Вот прям такая деградация что ппц, все учатся, это понятно. Для тех кто учится это простительно. Во всех направлениях очень низкий уровень стал доступен общественности. Главное чтобы хорошие игры доходили до потребителя среди этого всего. Очень много кто работает над этим и я надеюсь они доведут нужные проекты к продаже и не выгорят, и не сломаются, и спонсоры(издатели) найдутся.

#32
21:59, 9 июля 2024

Если равномерная сетка из квадов, то можно попробовать что-то такое:

int quad_sx = ...; // ширина текущего квада в шагах
int quad_sy = ...; // длина текущего квада в шагах
float step_x = ...; // задаем шаг для рандома по x (чем меньше шаг, тем кучнее будут объекты на карте)
float step_y = ...; // задаем шаг для рандома по y (чем меньше шаг, тем кучнее будут объекты на карте)
for (int x = 0; x < quad_sx; ++x)
{
  for (int y = 0; y < quad_sy; ++y)
  {
    if (dice(2) == 1) quad.objects.put(x * step_x, y * step_y); // если бросок кости от 1 до 2 выдал 1, помещаем объект на карту
    // координаты объектов в локальной СК квада
  }
}

Для квада, не лежащего на плоскости xz, нужно найти уголы поворота относительно плоскости xy,
построить по ним матрицу поворота и помножить позиции всех объектов на нее.
Алгоритм не проверял, сочинил на коленке, возможно нужны будут корректировки.
С ходу еще можно добавить небольшое рандомное смещение к координатам объектов на квадах, чтоб они выглядели более случайно.
Ну и возможно dice(2) имеет смысл заменить каким-то более качественным рандомом.

#33
22:01, 9 июля 2024

nes
Дайс сделала фростбайт :)

#34
22:05, 9 июля 2024

innuendo
Это хорошо или плохо?

#35
22:07, 9 июля 2024

nes
Лучше расскажи про конченные разности и градиент :)

#36
22:11, 9 июля 2024

innuendo
Разности конечны, а градиент плавный.

#37
22:30, 9 июля 2024

nes
Можно и ротор посчитать

#38
22:40, 9 июля 2024

innuendo
Зачем?

#39
22:48, 9 июля 2024

nes
Садить травинки через вихрь :)

#40
22:51, 9 июля 2024

innuendo
переголова.

#41
(Правка: 23:00) 22:53, 9 июля 2024

innuendo
> Садить травинки через вихрь :)
ааа, карта ветров. она же карта векторов или vector fields
windmap 2 | Равномерно-случайно расположить точки на ландшафте.
Изображение

#42
23:15, 9 июля 2024

Salamandr
Кто-нибудь и дивергенцию прикрутит

#43
3:31, 10 июля 2024

0xFFFFFFFF
> Собственно  да, хочу сделать автоматическую рассадку кустиков, камушек и прочего на ландшафте в своем движке
Звучит так, что здесь подойдёт "неравномерный пойсон-диск", точное название не помню. Гугли код, видел статью с ним, там еще на картинках неравномерно растущие ромашки нарисованы если я правильно помню.

#44
12:13, 10 июля 2024

0xFFFFFFFF
Почему бы не сделать случайные точки в плоскости треугольника? Вам всего лишь нужно найти матрицу поворота треугольника, повернуть треугольник так, чтобы он оказался в 2D и  найти прямоугольник описывающий треугольник. А потом разбросать рандомно точки внутри прямоугольника и оставить только те, что попали в треугольник. Все точки повернуть обратной матрицей и, voila, готово.

Страницы: 1 2 3 4 Следующая »
ПрограммированиеФорумГрафика