Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
  • Страница:
  • 1
  • 2
  • 3
  • 4
  • 5

ТЕМА:

Реализация 3D графики на плате marsohod2 10 года 2 мес. назад #6163

Интересно. Да, такой подход существенно проще для понимания. Если бы я только начинал работу, я бы, возможно, пересмотрел концепцию.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Реализация 3D графики на плате marsohod2 10 года 2 мес. назад #6164

Здорово! Даешь квейк на марсоходе :) Ну или демосцену, хотя бы:)

Еще, конечно, очень интересен USB-host и чтение с флешки. В каком объеме и как реализовано? Обязательно нужен Ваш процессор или можно переделать под что-то иное, например переписав ассемблер? Вы писали поддержку FAT32 или FAT16 или чего-то еще? Можно ли писать на флешку?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Реализация 3D графики на плате marsohod2 10 года 2 мес. назад #6167

Chaosorg пишет: Здорово! Даешь квейк на марсоходе :) Ну или демосцену, хотя бы:)

Вообще я изначально и собирался стрелялку делать, но потом поленился. По вычислительной мощности должно хватить.
Даже не нужно будет код переписывать. Только добавить игровую логику к текущему визуализатору. :)

На данный момент визуализатор умеет:
- Преобразования координат, перспективное отображение
- Буфер глубины, отсечение невидимых граней
- Текстурирование (2 текстуры 64х64 или 1 64х64 + 4 32х32 или 8 текстур 32х32)
- Зачатки освещения

Есть импорт 3d объектов из FBX.
При 30-и кадрах в секунду вычислительной мощности хватает примерно на 50-100 полигонов (в зависимости от размера).
Этого достаточно, чтобы сделать лабиринт произвольной сложности. Нужно только, чтобы из каждой точки было видно не дальше соседней комнаты.

Управление с клавиатуры работает хорошо, управление мышкой почему-то глючит. Работа со звуком была в проекте, но на практике еще не реализована.

Но я не уверен, что когда-нибудь это продолжу. Моя цель (изучить verilog и понять, как проектирует микросхемы) уже выполнена. Не думаю, что стрелялка на марсоходе будет кому-то настолько интересна, сколько мне придется потратить на неё усилий.


Chaosorg пишет: Еще, конечно, очень интересен USB-host и чтение с флешки. В каком объеме и как реализовано? Обязательно нужен Ваш процессор или можно переделать под что-то иное, например переписав ассемблер? Вы писали поддержку FAT32 или FAT16 или чего-то еще? Можно ли писать на флешку?


На верилоге реализован только самый нижний уровень - установка соединения, прием и передача пакетов, отправка и проверка контрольных сумм. Поддерживаются и Low-speed и Hi-speed устройства. Это 329 строк верилога без комментариев и чуть меньше 10-и процентов от ПЛИС. Работает со стандартной платой расширения марсохода без каких-либо доработок.
Можно подключить к любому другому проекту. Частота должна быть кратна 12-и мегагерцам (если работать с Full-speed устройствами).

Остальное сделано на достаточно извращенном ассемблере. Еще около 300 строк. Файловые системы не реализовывал. Просто в загрузчике гружу 2 мегабайта с флешки в оперативную память и передаю туда управление. На этом надобность в usb заканчивается. Запись на флешку делается аналогично, нужно только поменять параметры USBMS запроса.

Теперь о багах:
- Работает не со всеми флешками. На простейшие команды вроде запроса дескриптора отвечают все флешки, но при отправке USBMS запросов начинается мистика. Я так и не понял где проблема, в верилоге или ассемблере. В конце концов подобрал одну флешку, с которой всё работает, и использую только её.
- Если считывать с флэшки большой кусок данных (скажем, 500 килобайт), состоящий сплошь из нулей, то с большой вероятностью случится сбой. Если там не только нули, то сбоев нет.
- После сбоя почему-то не удается вернуть флешку в исходное состояние программным ресетом (SE0 на 10ms). После этого флешка нормально выполняет get_descriptor, set_address и set_configuration, но не хочет делать usbms_reset. Помогает только сброс по питанию.

Изучил документацию вдоль и поперек, но разобраться так и не получилось. Если кто-нибудь даст совет, буду очень рад. Возможно дело в том, что в стандартной плате с разъемами сигнальные линии USB подключены непосредсвенно к ногам ПЛИС (по хорошему должно быть преобразование уровней на 5В и pull-down через 15КОм).

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Реализация 3D графики на плате marsohod2 10 года 2 мес. назад #6168

где исходник проект то? дай другим покрутить чтоли!! B)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Реализация 3D графики на плате marsohod2 10 года 2 мес. назад #6169

Сейчас причешу немного код и к вечеру выложу куда-нибудь на гитхаб. :)
Спасибо сказали: slonok

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Реализация 3D графики на плате marsohod2 10 года 2 мес. назад #6171

Вывалил всё как есть, привести в порядок пока не успел.
github.com/petrmikheev/miksys
Не уверен, что в этом сейчас реально разобраться. Потом сделаю инструкцию по сборке и запуску.

UPD. Написал короткую инструкцию. Отпишитесь потом, если будете пробовать запускать ;)
Спасибо сказали: slonok

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от petrmikheev.

Реализация 3D графики на плате marsohod2 10 года 1 мес. назад #6204

ого!

Если не секрет, сколько времени ушло на проект?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Реализация 3D графики на плате marsohod2 10 года 1 мес. назад #6205

alman пишет: ого!

Если не секрет, сколько времени ушло на проект?


Полтора года с момента покупки платы марсоход.
Если выкинуть изучение верилога и перерывы на основную работу ;) ,
то останется, наверное, месяца два.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Реализация 3D графики на плате marsohod2 10 года 1 мес. назад #6206

petrmikheev пишет: На верилоге реализован только самый нижний уровень - установка соединения, прием и передача пакетов, отправка и проверка контрольных сумм. Поддерживаются и Low-speed и Hi-speed устройства. Это 329 строк верилога без комментариев и чуть меньше 10-и процентов от ПЛИС. Работает со стандартной платой расширения марсохода без каких-либо доработок.
Можно подключить к любому другому проекту. Частота должна быть кратна 12-и мегагерцам (если работать с Full-speed устройствами).


Я бы позаимствовал для своего проекта, но он не совместим с GNU GPL. А воровать не хочется. Посему вопрос - лицензия GPL это принципиальное решение?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Реализация 3D графики на плате marsohod2 10 года 1 мес. назад #6207

alman пишет:

petrmikheev пишет: На верилоге реализован только самый нижний уровень - установка соединения, прием и передача пакетов, отправка и проверка контрольных сумм. Поддерживаются и Low-speed и Hi-speed устройства. Это 329 строк верилога без комментариев и чуть меньше 10-и процентов от ПЛИС. Работает со стандартной платой расширения марсохода без каких-либо доработок.
Можно подключить к любому другому проекту. Частота должна быть кратна 12-и мегагерцам (если работать с Full-speed устройствами).


Я бы позаимствовал для своего проекта, но он не совместим с GNU GPL. А воровать не хочется. Посему вопрос - лицензия GPL это принципиальное решение?


GPL там в том числе и потому, что github при создании репозитория предложил указать лицензию, а GPL была первым пунктом в списке.
Заимствуйте :) Хорошо бы при этом указать, что используется мой код.

Но я на всякий случай предупреждаю, что там практически нет документации и могут присутствовать ошибки.
Спасибо сказали: alman

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Страница:
  • 1
  • 2
  • 3
  • 4
  • 5
Время создания страницы: 0.148 секунд
Работает на Kunena форум