Состоялся очередной релиз открытого игрового 3D-движка и инструментария Panda3D. Это довольно важный релиз, который содержит множество улучшений стабильности и исправлений ошибок, а также представляет множество интересных функций.
Исправлен ряд проблем, связанных с поддержкой macOS. Некоторые проблемы присутствовали на более новых компьютерах Mac на базе M1, таких как черный экран при переключении в полноэкранный режим, сбой при включении многопоточного конвейера рендеринга и ошибка при загрузке panda3d.vision модуля. Теперь эти вопросы должны быть решены. Кроме того, нажатие Command+Q больше не приводит к немедленному завершению приложения, но отправляет любые зарегистрированные события запроса на закрытие.
Panda3D содержит сложный генератор следов движения на основе геометрии, который позволяет легко создавать широкий спектр интересных эффектов, включающих выдавливание геометрии позади пути объекта. Доступна реализация как на Python, так и на C++. Однако эта функция вообще не была задокументирована, что создавало серьезные препятствия для ее использования. Теперь этот модуль был задокументирован в справочнике по API. Кроме того, были сделаны некоторые существенные оптимизации производительности. Пример программы включен в дистрибутив.
Инструмент мониторинга производительности PStats получил некоторые улучшения. Важно отметить, что исправлен сбой при запуске, который начал возникать после недавних обновлений в некоторых дистрибутивах Linux. Но самым важным улучшением является возможность интеграции с профилировщиком Python и измерения производительности всех функций, вызываемых кодом Python. Всё, что вам нужно сделать, это включить pstats-python-profiler в Config.prc, и вы сможете увидеть производительность своего кода на уровне каждого модуля, а затем перейти к отдельным классам и функциям.
Кстати, в Panda3D 1.11.0 последуют еще более значительные улучшения в PStats, которые сделают эту функцию еще более полезной, например, новые типы графиков, которые могут отображать сразу весь граф вызовов приложения, бесшовное чередование вызовов функций Python с существующими сборщиками PStats.
Внесен ряд улучшений build_apps. Во-первых, ранее код был скомпилирован с непостоянным уровнем оптимизации. Теперь весь код создается с уровнем оптимизации 2.
В Windows теперь можно принудительно выбрать выделенную видеокарту NVIDIA или AMD на ноутбуках, которые оснащены как встроенным, так и выделенным графическим процессором. Чтобы включить эту функцию, установите prefer_discrete_gpu параметр.
Улучшено автоматическое преобразование моделей в .bam. В настоящее время зарегистрирован обработчик по умолчанию, который автоматически вызывает egg2bam для любых включенных моделей .egg, но этот механизм может быть медленным (поскольку он не использует уже преобразованные модели в кэше) и не поддерживает расширения, отличные от .egg. Например, .gltf. Теперь вместо этого вы можете использовать новую bam_model_extensions опцию, представляющую собой список расширений, которые будут автоматически преобразованы с помощью нового механизма. Поддерживается любой формат модели, который может быть загружен подключаемым модулем загрузчика.
Приложения, которые используют CommonFilters для эффектов постобработки, теперь имеют более конкретный метод включения мультисэмплового сглаживания с помощью недавно добавленного фильтра MSAA. На самом деле это не фильтр, а удобный способ включения мультисэмплового сглаживания только для закадрового буфера, в который этот класс рендерит сцену. Раньше было необходимо включить MSAA для главного окна, что делало бы это автоматически включенным для буферов, созданных CommonFilters, но теперь вы можете включить его специально для внеэкранного буфера.
Так используется меньше видеопамяти, так как кадровый буфер главного окна не нуждается в хранении дополнительных сэмплов. Вы можете изменить настройку MSAA без повторного создания главного окна, что полезно при изменении этого на лету через меню настроек в игре. В дополнение к этому изменению была исправлена ошибка при использовании MSAA в сочетании с несколькими целями рендеринга.
Обновлен подключаемый модуль загрузчика Assimp, который использует библиотеку Assimp для поддержки импорта широкого спектра форматов ресурсов. Были исправлены некоторые ошибки и добавлены дополнительные функции, включая поддержку пользовательских свойств объектов, дополнительные карты текстур (в том числе основанные на PBR, совместимые с panda3d-simplepbr), преобразования текстур, касательные и бинормальные векторы и мн. др.
Теперь можно использовать формы капсул в качестве объекта при тестировании на коллизии с полигональными объектами. Но в настоящее время ещё не поддерживается механизм respect-prev-transform – коллизии не обнаруживаются, когда капсула движется так быстро, что никогда не вступает в прямой контакт с полигоном. Поэтому по-прежнему рекомендуется использовать сферу вместо капсулы, когда это возможно. Это ограничение может быть снято в версии 1.11.0.
В предыдущих версиях Panda3D к классу NodePath были добавлены методы replace_texture(), которые позволяют рекурсивно заменять текстуру или материал во всех базовых узлах графа сцены. Было внесено изменение, позволяющее None передавать в качестве второго аргумента replace_texture() и replace_material(). Это приведет к рекурсивному удалению данной текстуры или материала из всей ветви графа сцены.
Функции шифрования в Panda3D больше не будут работать при сборке с OpenSSL 3. Это связано с тем, что Panda3D использует bf-cbc шифрование Blowfish по умолчанию, но этот шифр устарел в OpenSSL 3 и должен быть специально включен путем загрузки устаревшего провайдера. Эта проблема исправлена, так как Panda3D теперь автоматически загружает устаревшего провайдера при использовании этой схемы шифрования.
Полный список можно найти в примечаниях к выпуску в официальном ченджлоге. Новая версия доступна для свободного скачивания и использования в разработке игр.
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:
Игровые объявления и предложения:
Если вас заинтересовал материал «Большое обновление Panda3D SDK 1.10.13», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела.
Предлагаются такие схожие материалы:
Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]