Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

А какой вы бы хотели игровой движок? хотели бы писать скрипты на русском языке?

Перистое облако Ученик (242), открыт 2 недели назад
4 ответа
Robot Fish Мыслитель (9515) 2 недели назад
да
Перистое облакоУченик (242) 2 недели назад
но все ровно был бы синтаксис, а если блок схемы?
Taleys Гуру (4643) 2 недели назад
Да
Перистое облакоУченик (242) 2 недели назад
напиши пример скрипта такого
@Synergyst Мыслитель (8916) 2 недели назад
Технический ответ.

Хочется легковесный 3D-движок с нативной поддержкой Vulkan для достижения полного контроля над оптимизацией - но таких нет. Заручился написанием собственного движка на Rust + ash (крейт для Vulkan API), как раз для этого. Дефакто он никуда и никогда не выйдет, - фактически, это проект для души.

Сейчас это, по факту, просто набор матриц и генератора мешей, причем временами довольно кривого. Но оно работает, и я для себя начал имплементацию полного контроля над движком:
  1. Асинхронизация операций диспатчера (диспетчера) для запуска графического конвейера. Грубо говоря - асинхронизация командора команд GPU, и включение этой шняги позволяет процессору продолжать работу, не дожидаясь завершения выполнения команд на GPU;
  2. Контроль тесселяции: возможность настройки hull-шейдеров, включая настройку патчей (на основе четырехугольников, треугольников и т.д), настройки шейдеров домена (шейдер, что вычисляет окончательное положение вершины).
  3. DMA-очередь, для передачи данных между оперативной памятью, GPU и процессора без участия самого процессора - хоть и недоступно без драйвера, но все же дает огромный буст к производительности, если работать с огромным количеством данных;
  4. Настройки количества очередей для каждого типа очередей (графическая, вычислительная, передача). Позволяет создавать несколько очередей каждого типа, что позволяет лучше распараллелить работу разных частей движка
  5. Множественные свопчейны для отложенного рендеринга с несколькими буферами для хранения промежуточных буферов (G-буфер, lighting buffer). Множественный свопчейн может легко упростить организацию отложенного рендеринга и улучшить производительность за счет уменьшения количества переходов между рендерингом и отображением.
И т.д. Грубо говоря, делаю ровно то, что сам считаю нужным и что нужно мне. Настройка очередей, компиляции шейдеров, тесселяции и так далее.
Похожие вопросы