Да, проверил. Производительность разочаровала. Но скорее всего, я чего то не понимаю на данном этапе. Получилось 528 полигонов 32x32, 16 бит на пиксель, без сжатия, деформированные - около 10-12FPS. Подозреваю что я что то не правильно делаю, потому что при уменьшении количества полигонов до 260 скорость увеличивается на пару FPS не более. В общем еще разбираюсь. Сейчас текстурирование и свет у меня по плану. Ну и дальнейшее развитие движка.
14 мар 2011, 10:36
nikk
Мегажитель
Группа: Разработчики Сообщения: 405 Регистрация: 01 мар 2010, 09:07 Откуда: Омск
Модель 3DO:Panasonic FZ-10 NTSC-J
Еще немного видео:
Простейший 3D движок
видео склеено из разных клипов в "Вегас Видео", так что транзишены не 3DOшные
Классно, что и говорить. А производительность низкая может потому, что не используешь 3dlib?
14 мар 2011, 19:17
nikk
Мегажитель
Группа: Разработчики Сообщения: 405 Регистрация: 01 мар 2010, 09:07 Откуда: Омск
Модель 3DO:Panasonic FZ-10 NTSC-J
Versus писал(а):
Классно, что и говорить. А производительность низкая может потому, что не используешь 3dlib?
Вряд ли. Движок простейший. Расчетов минимум. Что то я не учитываю. Но надеюсь разобраться. Кстати, эти проволочные модели сами по себе медленные, так как отрисовывается каждый полигон. В движке с текстурированием невидимые поверхности будут пропускаться в GPU. Так что скорость будет выше, я надеюсь.
14 мар 2011, 20:11
ross_nikitin
Супермодератор
Группа: Супермодераторы Сообщения: 7981 Регистрация: 04 дек 2009, 12:31 Откуда: Германия, г.Кобленц
Модель 3DO:Panasonic FZ-10 NTSC-J
К зиме ждём новые игры на панасе.
14 мар 2011, 20:22
nikk
Мегажитель
Группа: Разработчики Сообщения: 405 Регистрация: 01 мар 2010, 09:07 Откуда: Омск
Модель 3DO:Panasonic FZ-10 NTSC-J
Обновил 3D движок - добавил текстурирование, работу со светом пока не реализовал...
Простейший 3D движок
Как я и предполагал, при правильной обработке текстур (с отсечением невидимых поверхностей) производительность движка увеличилась.
... сколько полигонов в последнем "шарике"? Какова теперь производительность?
Движок девственно чист от игровой механики. Только обработка 3D изображения. Нет работы со светом. По мере развития думаю производительность упадет. Конечно буду стараться оптимизировать все и вся. Время покажет. Сколько полигонов в шарике - ХЗ . Я грохнул модель. Не много, думаю. Это из-за текстуры кажется что полигонов много. Оптический обман. Рендерил модель чайника в котором 300 полигонов - FPS упал до 13. Но я не применял никакой оптимизации.
Аха. Ни строчки кода из SDK. Полностью из головы. Зато движок буду знать "от и до".
19 мар 2011, 17:24
nikk
Мегажитель
Группа: Разработчики Сообщения: 405 Регистрация: 01 мар 2010, 09:07 Откуда: Омск
Модель 3DO:Panasonic FZ-10 NTSC-J
Ну, и добавил к движку обработку света...
Простейший 3D движок
Далее по плану оптимизация модуля рендеринга с целью минимизировать накладные расходы алгоритма, усложнение механики 3D сцены - работа с несколькими камерами и источниками света, работа со сложными моделями из 3D Max, создание простейшего 3D мира с механикой взаимодействия объектов... В общем работы много. Update(1): внес некоторую оптимизацию - модель из 150 полигонов при FPS:32-33
Последний раз редактировалось nikk 21 мар 2011, 09:38, всего редактировалось 5 раз(а).
Группа: Разработчики Сообщения: 405 Регистрация: 01 мар 2010, 09:07 Откуда: Омск
Модель 3DO:Panasonic FZ-10 NTSC-J
Добавил обработку сцены из нескольких 3D объектов -
Простейший 3D движок
Сцена состоит из 2х объектов. Каждый объект состоит из 150 полигонов, итого 300 полигонов в сцене - 18 FPS.
Update(1): По ходу разработки движка возникла необходимость в алгоритме создания текстуры из другой текстуры путем определения прямоугольной области. Такая процедура есть в SDK, но как выяснилось - нерабочая. Я ее подправил до рабочего варианта:
Здесь я создал две субтекстуры (128х128 и 32х32 из невидимой на экране текстуры 256х160) и манипулировал c PRE0 и PRE1 для создания эффекта скроллинга.
Последний раз редактировалось nikk 28 мар 2011, 10:35, всего редактировалось 4 раз(а).
Для трехмерной игры маловато производительности будет. Или я ошибаюсь?
26 мар 2011, 16:30
nikk
Мегажитель
Группа: Разработчики Сообщения: 405 Регистрация: 01 мар 2010, 09:07 Откуда: Омск
Модель 3DO:Panasonic FZ-10 NTSC-J
Versus писал(а):
Для трехмерной игры маловато производительности будет. Или я ошибаюсь?
Я пока не разобрался где грабли. Вроде как, консоль может отрисовывать 9-16 млн. пикселей в секунду, но я пока что максимум выжал из нее - 7 млн. Где остальные миллионы я не знаю. Читаю патенты на чипсет. А про FPS - в SDK есть указание, что для качественного программного продукта FPS должен быть не ниже 15. Да и по играм на 3DO можно судить. Многие игры имеют проседание FPS даже ниже 15 (см. Killing Time и проч.). ЗЫ: путем небольшой оптимизации алгоритма я добавил к FPS пару кадров. Сейчас на той же сцене - FPS = 20
Ясно. Я думаю, что нужно взять оптимизированную сцену (какой-нибудь интерьер скачать), посчитать количество полигонов. Закинуть в твой двиг и оптимизировать FPS до нужного значения.
26 мар 2011, 17:36
nikk
Мегажитель
Группа: Разработчики Сообщения: 405 Регистрация: 01 мар 2010, 09:07 Откуда: Омск
Модель 3DO:Panasonic FZ-10 NTSC-J
Versus писал(а):
Ясно. Я думаю, что нужно взять оптимизированную сцену (какой-нибудь интерьер скачать), посчитать количество полигонов. Закинуть в твой двиг и оптимизировать FPS до нужного значения.
Движок еще на начальном этапе развития. Только начал его проектировать. Оптимизировать надо сам алгоритм в принципиальных вещах - секции алгоритма нагруженные математикой, писать на asm, исключать операции деления и умножения, замещая их операциями сдвига и сложения-вычитания, активно использовать мат. сопроцессор, применять специальные алгоритмы уменьшения объемов расчетов (например LOD - уровни детализации объектов, причем подгружаемые, потому что памяти маловато) и т.д. Еще и не каждая сцена из 3D Max будет оптимальной, сцену для игры создавать надо с учетом того, что в консоли полигоны - четырехугольники, а не треугольники как например в плойке. В общем -
26 мар 2011, 18:07
nikk
Мегажитель
Группа: Разработчики Сообщения: 405 Регистрация: 01 мар 2010, 09:07 Откуда: Омск
Модель 3DO:Panasonic FZ-10 NTSC-J
Добавлю еще немного измерений математической скорости консоли. Данные операции применяются для конструирования 3D движков и можно судить об эффективности применения. Операции, где в скобках указано software - это математический аналог, без скобок соответственно вызов библиотечной функции. t0 - время выполнения 1000 циклов расчета данной функции или 1000 векторов для выполнения пакетной в микросекундах, t1 - время выполнения одного цикла функции или примерное время обработки одного вектора (t0 / 1000) в микросекундах, t2 - время выполнения одного цикла функции или примерное время обработки одного вектора (t1 * 12,5) в тактах ARM60. Удивительно, что ряд библиотечных функций оказались значительно медленнее чем программные аналоги, написанные с использованием математических формул. Единственный выигрыш при вызове этих функций - мизерная экономия памяти. Все параметры сняты с реальной консоли. Эмулятор вносит погрешность во времени вычислений до 20-25%.
В SDK есть два варианта 3D движка-конструктора 3Dlib и PGL. PGL это более новый движок, написанный с использованием однородных координат. По идее должен быть быстрее чем 3Dlib. Появился этот движок в SDK, начиная с версии Toolkit 1.5. В предыдущих версиях был 3Dlib. Здесь небольшая демка из SDK с использованием PGL движка. Сырая и ужасно тормозная. На эмуляторе надо настройку скорости ARM выкрутить на максимум и тогда можно полетать.
Значит не все ещё демки из СДК вынуть смогли? В смысле... я эту ещё ни разу не видел. Выглядит действительно достаточно реалистично.
А можно объяснить тем, кто небесный язык не понимает, в чём преимущества и недостатки этих двух движков по отношению друг к другу?
03 апр 2011, 18:35
nikk
Мегажитель
Группа: Разработчики Сообщения: 405 Регистрация: 01 мар 2010, 09:07 Откуда: Омск
Модель 3DO:Panasonic FZ-10 NTSC-J
Totaku писал(а):
... в чём преимущества и недостатки этих двух движков по отношению друг к другу?
Отличается механика ядра, примененные алгоритмы, векторная математика, применяется подобие механики из OpenGL и DirectX. В частности гомогенная система координат, где вектора имеют не 3 координаты X,Y,Z, а 4 и в связи с этим применяется перемножение матриц 4х4. В этих матрицах накапливаются сразу все изменения объектов - масштабирование, поворот вокруг осей, перемещение и трансформация перспективы. Для математики применяется только перемножение матриц трансформации с целью получить результирующую матрицу, которую используют как множитель для векторов. Я сначала использовал в движке как раз гомогенную систему координат, затем попробовал систему координат X,Y,Z. Далее я провел повторное тестирование консоли на производительность. Потери на дополнительные вычисления в не гомогенной системе - существенные. Так что сейчас буду переписывать снова. Вообще при создании 3D игры в консоли есть достаточное количество узких мест. Требуется серьезный опыт, знание эффективных и быстрых алгоритмов работы с 3D, чего у меня к сожалению нет. Поэтому пробую, экспериментирую на любительском уровне, накапливаю знания . Может что и получится...
Мне не хватает подобных знаний, поэтому подсобить не могу, а оччень хоцца! nikk, ты единственный сейчас, кто может сделать (и, что самое главное, делает) 3D движок на 3DO. Не бросай начатое! Мы с тобой!
04 апр 2011, 09:13
ПАУК
Ужас, летящий на крыльях ночи!
Группа: Разработчики Сообщения: 9069 Регистрация: 17 май 2010, 01:04
Модель 3DO:Panasonic FZ-10 NTSC-U
Да сам смотрю, сказать нечего Тему давно пора было переименовать в Nikk's 3DO SDK Я тут нарвался на интересную штуку "3DO Software Development Kit & Patents" Там уже установленный SDK на hfv дисках, различная докуметация, патенты, старая страница Александра Труша с софтом... Отсюда, чтоль, это всё
04 апр 2011, 11:10
Horde
Nikk безусловно молодчина, приклоняюсь перед его настойчивостью, терпением и энтузиазмом.
Totaku писал(а):
Значит не все ещё демки из СДК вынуть смогли?
Все и еще очень давно,несколько лет назад Мнемоник и Атла делали все демки тесты и давали информацию о том 3Dдвижке, библиотеке и даже о программе OFI , которая конвертирует 3D объеты и модели для 3do и о многом еще и выкладывали свои демки и тесты игр, так никто не интересовался
Группа: Разработчики Сообщения: 9069 Регистрация: 17 май 2010, 01:04
Модель 3DO:Panasonic FZ-10 NTSC-U
Надо же, Horde, как много вопросов появилось. Я думал, Атла отсюда начал демки лепить А вообще он заходит.
Последний раз редактировалось ПАУК 05 апр 2011, 08:00, всего редактировалось 1 раз.
05 апр 2011, 07:44
nikk
Мегажитель
Группа: Разработчики Сообщения: 405 Регистрация: 01 мар 2010, 09:07 Откуда: Омск
Модель 3DO:Panasonic FZ-10 NTSC-J
Ребята спасибо за поддержку. Постараюсь, по мере сил и возможностей, продолжать работу по SDK. Может что путнее в результате и получится. Энтузиазма пока хватает. Или мы не фанаты 3DO?! Horde, мне кажется, ты чуток погорячился.
Народ у меня вопрос....а есть ли возможность создать программу-конвертер? Чтоб видео из 3do конвертировать в более понятный для компьютера формат....Ну и обратная конвертация назад в формат 3do.