Я хочу написать инструмент на Python, который поможет мне создавать изометрические плитки из 3D-моделей. Видите ли, я не очень умелый художник, а бесплатных 3D-моделей много, и создать что-то вроде стола или стула гораздо проще в 3D, чем в живописи.
Этот скрипт загрузит 3D-модель в ортографической проекции и сделает снимки с четырех сторон, чтобы ее можно было использовать в игре. Я пробовал делать это в Blender, но результаты непоследовательны, очень трудно контролировать и требуется очень много времени для создания простых спрайтов.
Написание собственного скрипта, вероятно, позволит мне делать более интересные вещи, особенно пакетное генерирование, возможно, изменение текстуры, затенение и т.д. Сама игра, вероятно, будет сделана на Python tpp, так что, возможно, я смогу генерировать на лету. (Edit: и автоматически создавать вырезанные прозрачные стены для тех, кто стоит лицом к камере)
Теперь мой вопрос, какие библиотеки Python могут сделать что-то подобное? Я проверил и Pyglet и Panda3D, но я не смог даже загрузить модель, не говоря уже о том, чтобы установить ее в ортографическую проекцию.
Я нашел этот код:
www.pygame.org/wiki/OBJFileLoader
Он позволил мне легко загрузить и отобразить .obj файл куба из Blender. Он запускает PyOpenGL, так что он должен позволить мне делать все, что может OpenGL. Никогда не знал, что OpenGL настолько низкоуровневый, не думал, что мне придется писать собственные загрузчики и все такое.
В любом случае, я уверен, что смогу модифицировать его для изометрического проецирования, поворота объекта, захвата снимков и объединения их в спрайты. Спасибо вам, ребята!
Поскольку вы посмотрели Panda3D - если вы можете преобразовать вашу модель в формат 'egg' (что может сделать blender/maya), то вы сможете импортировать ее.
https://www.panda3d.org/manual/index.php/Loading_Models
https://www.panda3d.org/manual/index.php/Models_and_Actors
http://www.panda3d.org/manual/index.php/Converting_from_Blender
Примечание: источники этого были 'python 3d mesh loader' в популярной поисковой системе - это выглядит жизнеспособным для меня. Теперь мне нужно попробовать установить его и некоторый код...