| Разработка и ромхакинг > Ромхакинг и программирование |
| SGDK |
| << < (28/40) > >> |
| megavolt85:
SeregaZ, да кириллица в пути не должна мешать, если винда не кривая |
| SeregaZ:
ну на том то скрине явно было видно ???? вместо букв. впрочем это может быть из-за самого батника. то есть в каком виде туда вписывались буквы. если это был скажем анси формат, а потом винда будет юзать юникод, то все поплывет. английские то что там что там одинаковые, а вот наши - будут каракули. |
| ALKOSHA:
--- Цитата: megavolt85 от 03 Июль 2019, 00:33:48 ---pip install numpy и будет тебе счастье --- Конец цитаты --- Вместо щастья получил попаболь. Или я шото не так делою... o_0 |
| megavolt85:
открой консоль в директории с установленным pip у меня так у тебя наверно где то в Program Files C:\путь_к_python\Scripts |
| Skay:
ALKOSHA, у тебя похоже python не прописался в переменные среды при установке. |
| ALKOSHA:
--- Цитата: Skay от 03 Июль 2019, 22:46:06 --- у тебя похоже python не прописался в переменные среды при установке. --- Конец цитаты --- аааааааааааааааааааа Ну там был чекбокс с надписью PATH но он был снят по-умолчанию. Я и решил не трогать. Добавлено позже: Так-с... numpy модуль установил. Но всё равно. |
| megavolt85:
переустанови питон и не забудь отметить чтоб PATH прописался P.S. под виндой проверял на python2.7, под линуксом на 2.7 и 3.6, скрипт везде работает |
| Skay:
megavolt85, меня смущает что у него там пытается произвестись запуск как на линуксе: --- Код: ---/bin/env python --- Конец кода --- ALKOSHA, попробуй как нибудь из разряда --- Код: ---"C:\Program Files\Python37\python.exe" obj2mesh.py -f dd2.obj > meshs.h --- Конец кода --- или --- Код: ---cd "C:\Program Files\Python37\" python.exe *полный_путь*\bj2mesh.py -f *полный_путь*\dd2.obj > *полный_путь*\meshs.h --- Конец кода --- |
| megavolt85:
--- Цитата: Skay от 04 Июль 2019, 10:22:52 ---меня смущает что у него там пытается произвестись запуск как на линуксе: --- Конец цитаты --- это нормально, открой любой питоновский скрипт и первое что ты увидишь #!/bin/env python путь к питону берётся из переменной среды, в винде это %PATH%, в никсах env дословный перевод ошибки: невозможно создать процесс используя /bin/env python путь/к/скрипту/скрипт параметры /bin/env возвращает содержимое %PATH%, так что ошибка логична при условии что: --- Цитата: ALKOSHA от 03 Июль 2019, 22:49:42 ---Ну там был чекбокс с надписью PATH но он был снят по-умолчанию. Я и решил не трогать. --- Конец цитаты --- |
| ALKOSHA:
--- Цитата: Skay от 04 Июль 2019, 10:22:52 ---попробуй как нибудь из разряда --- Конец цитаты --- И так, и сяк (питона деинсталлировал, и поставил уже галочкой напротив PATH ) |
| ALKOSHA:
Попробовал в выполнении скрипта поставить в начале строки py -3 Оно вроде бы чуток продвинулось ноо... pip проапгрейдил, если что. |
| Sharpnull:
ALKOSHA, скрипт же для Python 2, он встретил print без скобок. С помощью 2to3 можно автоматически исправить. Вот обновлённый скрипт. -------- Я исправил ещё раз, чтобы можно запускать просто: --- Код: ---obj2mesh.py -f dd2.obj 1>meshs.h --- Конец кода --- Ошибка была в shebang, нужно писать так: --- Код: ---#!/usr/bin/env python3 --- Конец кода --- -------- То есть путь был нестандартный, поэтому не запускалось. А py -3 переопределял эту настройку. Для Python 2 следовало написать так же, но с python2 в строке. (stackoverflow) -------- Кстати, чтобы обновить все установленные пакеты в pip, в командной строке выполнить: --- Код: ---for /F "delims===" %i in ('pip freeze -l --all') do pip install -U %i --- Конец кода --- Добавил --all чтобы обновить всё. Если установлен Python 2 и Python 3, то нужно использовать pip2 и pip3, а не просто pip. |
| ALKOSHA:
Sharpnull, благодарствую! Скрипт пашет. 339 полигонов в кадре с плоскостным освещением = 4..5 фпс. Сежка не вывезет моих амбиций, мистеры скептики ? ;) Но дальнейший ход событий всё равно не гладко проходит: Затестить я решил на своей давнишней сценке,которую ещё пилил для Pmmx под софтвар рендерер. https://vk.com/wall-145919754_156 (ныне затекстурил, если кому интересно: https://vk.com/wall-145919754_521) Так вот. Из макса -> в 3ds, затем в блендер, а оттуда-> в obj + mtl (цвета в максе/блендере отображаются как и положено). Перегнал скриптом в хэдер. Скомпильнул - индексы цветов пока не смог наладить, всё однородное. Словно всем материалам модели присвоен один индекс. (в хэдере mesh.h пустой массив присвоения цветов почему-то. const u16 Box07_face_color[338] = {}; ) И ещё.. тут деревцо в кизяк скукожило, тоже непонятно почему. Такие дела |
| Sharpnull:
--- Цитата: ALKOSHA от 24 Август 2019, 00:56:14 ---в хэдере mesh.h пустой массив присвоения цветов почему-то --- Конец цитаты --- Вы указывали материал в командной строке? Я скинул версию из tags\linux_gendev_v1\. А там ещё есть branches (такой же файл) и trunk где файл кажется поновее и сам находит mtl, а в этой версии нужно указывать через -m. Из trunk такой код: --- Код: ---# First parse material files for filename in file_list: material = "%s.mtl" % (os.path.splitext(filename)[0]) if os.path.isfile(material): self.read_materials(material) if DEBUG: print "COLORS:", self.colors --- Конец кода --- Судя по всему, только этим и отличается и мелочью. Вот снова исправленный скрипт, теперь должны цвета добавляться. Используйте код из trunk. -------- Примеры (examples) и большинство файлов одинаковые во всех 3 версиях. -------- В этом скрипте поновее ещё можно указать несколько моделей и они добавятся в один заголовок: --- Код: ---obj2mesh.py -f dd2.obj -f space_ship2.obj > meshs.h --- Конец кода --- |
| ALKOSHA:
Ок. Вечером гляну. А ещё хотел такой момент уточнить. Там же все полики описаны трианглами (ведь современные видеокарты ничего кроме трианглов и не знают) Но ведь для увеличения КПД на сеге можно описать тот же шестиугольник шестью вершинами, а то получается 6 трианглов. Ну или четырёхугольник состоит из двух трианглов, хотя для сеги это могло быть и одним четырёхугольником. То есть кол-во поликов сократилось бы в несколько раз. Можно это как-то автоматически переформатировать? |
| Sharpnull:
ALKOSHA, я не знаю как у MD устроен рендеринг, но в SGDK функция u16 BMP_drawPolygon(const Vect2D_s16 *pts, u16 num, u8 col) принимает любое (?) количество вершин. Пример из trunk/examples/3d_example как раз должен отображать (я не компилировал) space_ship2.obj полигонами от 3 до 5 вершин. Импортируйте в Blender и увидите. Так что ваш вопрос к тому, как в Blender объединить треугольники в один полигон? Там есть Face -> Triangulate Faces чтобы превратить в треугольники, Face -> Tris to Quads чтобы треугольники сделать четырёхугольниками, можно удалить рёбра через X -> Dissolve Edges, но получается жуть, потому что вершины не в одной плоскости. Полигоны с 5+ вершинами ещё называются n-gon (ngon). В общем нужно поискать. (вроде этого) |
| ALKOSHA:
Цвета на поликах появились. Но почему скукоживает в хлам часть сцены (двери окна одно деревцо), я так и не понял. В режиме WireFrame даже ILLEGAL INSTRUCTION выбивает, вертексы уходят далеко за пределы. |
| Sharpnull:
ALKOSHA, там же FIX16 от -512 до 512 на целую часть и 6 бит на дробь. В коде наверно нет нормализации, стоит попробовать увеличить сцену через 3D-редактор или уменьшить. Также попробовать сохранить всё в треугольниках без многоугольников. |
| ALKOSHA:
Для теста набросал. Всё ок. https://sun9-37.userapi.com/c858216/v858216914/51750/VGmBhe47WyA.jpg Добавлено позже: модельку-то набросать могу. А вот FPS-камера и коллизии... :hang: |
| worm:
--- Цитата: ALKOSHA от 24 Август 2019, 22:15:12 ---набросал --- Конец цитаты --- Классная ракета) |
| Навигация |
| Главная страница сообщений |
| Следующая страница |
| Предыдущая страница |