Этот вопрос, скорее всего, больше касается правильной терминологии и тем, которые нужно искать больше всего на свете.Это похоже на достаточно простую концепцию до такой степени, что инструменты должны быть доступны в Python / NumPy для этого, но я просто не знаю, что искать.
Я недавно смотрел видео на SpaceВырезание , и я хотел бы реализовать основную концепцию, используя спрайты видеоигр, чтобы попытаться вокселизировать их.У меня есть спрайты символов из 8 одинаково расположенных углов (спереди, камера 45, вправо, полностью вправо, сзади и т. Д.)
Я не нашел библиотеку, посвященную этой концепции, но я думаю, что это должно быть довольно просто реализовать.Я думаю, я могу создать трехмерный массив, который является максимальным размером спрайта во всех измерениях, который представляет собой сплошной блок «глины».Затем мне нужно двухмерное представление этого трехмерного массива под каждым углом поворота.Для каждого пикселя в этом представлении мне нужно иметь возможность перебирать в трехмерном массиве каждый блок, в который попадал бы «лазер» из этой позиции.Первым шагом будет удаление глины, где спрайт является просто альфа-слоем (иначе говоря, значение bool равно false).Следующим будет «рисование» формы, где это возможно.
Проблема в том, что я просто не знаю, какие математические или программные термины связаны с этими понятиями.Я мог бы сделать так, чтобы сделать 3D-блок из глины.Но как мне получить 2D-представления трехмерного массива под несколькими повернутыми углами вокруг одной оси, на которых я могу по существу запустить лазеры?