Задать вопрос
Ответы пользователя по тегу 2D
  • 2.5D изометрия, как отсортировать спрайты?

    @MarkusD
    все время мелю чепуху :)
    Самым простым, и самым ненадежным, методом сортировки объектов в изометрии является рядная сортировка.
    При такой сортировке вся локация выводится по вертикальным или горизонтальным рядам сверху-вниз.
    Проблемы с такой сортировкой начинаются буквально сразу же, как только объекты сцены перестают занимать полностью весь тайл.
    Например в Red Alert 2 или Tiberian Sun пехота занимает четверть тайла. При вертикальной или горизонтальной рядной сортировке пехота по бокам тайлов будет накрываться тайлами соседних рядов.
    В тех же RA2 и TS есть очень высокие здания. При горизонтальной рядной сортировке такие здания будут накрываться другими тайлами.

    Более сложным методом сортировки будет топологическая сортировка. Чтобы выполнить эту сортировку, сперва надо построить граф затенения, в которым учитывается высота и положение по оси Z объектов на сцене.
    В изометрии оси координат развернуты таким образом, что их проекции образуют между собой равные углы по 120°. Этот момент показывает сравнительно простой механизм определения затенения.
    Любой объект сцены достаточно описать своим AABB и посчитать пересечения многоугольника проекции этого AABB с такими же многоугольниками проекций AABB других объектов сцены дальше от камеры.
    Получается, что в графе затенения записаны все отношения между объектами сцены, кто кого затеняет. И объекты, которые никого не затеняют, являются первыми в списке вывода на экран. Дальше выводятся те объекты, которые затеняют уже выведенные объекты.

    Больше деталей можно найти в самых разных статьях на приведенную тему. Например: [1], [2], [3].
    Ответ написан
    Комментировать
  • Генерация 2d ландшафта в unity Как реализовать?

    @MarkusD
    все время мелю чепуху :)
    Какое благородное у тебя занятие. Похвально будет если дети вырастут настоящими разработчиками игр. :)

    А на счет генерации - смотри в сторону алгоритма Square-Diamond. Мне кажется, это именно то, что тебе поможет.

    Ссылки по теме:
    https://habrahabr.ru/post/111538/
    https://habrahabr.ru/post/249027/
    https://habrahabr.ru/post/226635/ - на 3D-шность не смотри, это в целом поможет тебе вникнуть в механики.
    https://habrahabr.ru/post/128368/

    А еще вот тут мой хороший знакомый и бывший коллега соорудил маленькую поделку. Возможно, это тоже будет тебе полезно. :)
    www.gamedev.ru/projects/forum/?id=181167

    Обращайся за дополнениями.
    Ответ написан
    1 комментарий