Anonymous
11/29/2020 (Sun) 14:42:54
No.8165
del
Почему тут ограничение в 4096 символов? Было б 20000 хотя бы, было б нормально
И, наконец, вершина софта. Графический движок и ГУИ-библиотека. Я уже пишу их, правда на C++, так как Лайси ещё не готов. Графический движок заниматься преобразованием мешей, света, частиц и некоторых других вещей в растровое изображение на экране монитора или в буфер в памяти. Предназначен прежде всего под рейтрейсинг, но будет и неполноценный OpenGL-бекенд. Так же в нём должна быть поддержка анимаций. Анимации текстурно-цветовые и коллбечные. Получается, в архитектуре моего движка основа объекта это меш, а меш имеет в себе вертексы и аттрибуты для каждого вертекса. Аттрибуты это как бы разные свойства вертекса, которые интерполируются на полигоне. Например, если задать разные цвета вертексу, то они проинтерполируются и будет цветной полигон. А текстурные координаты соответственно дадут текстуру на полигоне. И текстуры + цвета должны быть не только цветовыми, но и всякие спекулары, металличность, степень отражения и преломелния и прочее. Правда с PBR я пока плохо знаком и даже не знаю, что вводить. Так вот, эти самые текстуры это на самом деле не картинки, а видео, а цвета это массивы цветов или однопиксельное видео. И анимировать это всё передавая переменную времени в функцию.
А коллбечная анимация это просто коллбек, который немного меняет матрицу или ещё что-то у объекта.
ГУИ-библиотека работает поверх графического движка и SDL2. Похожа на обычные ГУИ (как Qt, GTK+ и другие), но более гибкая. Если в Qt надо задавать стили, а в стилях всякие бордеры, шрифты, то тут немного подругому и более гибко. Примитивные виджеты — рект, суперэллипс, полигон и т.д. образуют более сложные такие как кнопка, слайдер, скроллбар, прогрессбар, список, графики, плоты и прочее.
К сожалению, до сих пор очень мало из этого реализовано. Недавно писал библиотеку io, вроде несложно для линукс-интерфейса. Но надо задуматься на Лайсишными модулями. То есть есть библиотеки, но у них могут быть подбиблиотеки. Например для video такие могут содержать кодек для чтения нового формата файлов. И надо, чтобы эта подбиблиотека могла во внешнюю библиотеку записать некоторые свои константы, чтобы главная библиотека смогла абстрагированно взаимодействовать с подбиблиотекой как и со всеми.
А вот чтобы написать библиотеку repr, мне надо ввести "..." в темплейты, чтоб передавать переменное кол-во аргументов.