Ускорьте изометрическую визуализацию трехмерного массива с помощью Pygame - PullRequest
0 голосов
/ 14 июня 2019

Я впервые задаю вопрос, поэтому не стесняйтесь поправлять меня, если я поступил неправильно.В свободное время я делаю небольшую игру, используя Pygame, и мне нужно ускорить рендеринг трехмерных плиток (включая прозрачные) на моей карте.Когда плитка удаляется / добавляется, то, что теперь делает программа, это снова визуализирует всю карту (три цикла, вложенные вместе), используя простой рендеринг спереди назад, который останавливает окно примерно на полсекунды.Моя текущая игровая карта только небольшая для целей тестирования с некоторой графикой-заполнителем.Очевидно, что любая карта больше текущего 10 * 10 * 10 куба просто не будет работать.

Я могу придумать два решения: 1) Использовать лучший движок, который может делать гораздо больше, чем изометрический рендеринг. 2) Найти лучшие алгоритмы.

Я не буду использовать первое, поскольку это толькомаленький проект, и я не собираюсь становиться разработчиком игр.Мне нужен лучший алгоритм.Должно быть что-то быстрее, чем n ** 3 скорости, верно?

Я пытался разделить изображение плитки на три ромбовидных изображения и рисовать их по мере необходимости, но поскольку есть прозрачные плитки, это простое решениене работалЯ читаю CLRS, которая содержит много алгоритмов, но ни один из них не выглядит многообещающим для этой проблемы рендеринга.

...