ЛЕНТА СОБЫТИЙ
GLFW Trickrig
Закончил перенос базового функционала графического движка Trickrig на работу с библиотекой GLFW. В целом, затея по переходу была не напрасной. В результате полной переработки всего приложения модуль формирования трехмерной графики стал более гибким и быстрым.
Пришло более ясное понимание методов работы с OpenGL, растет опыт написания кода на С++. Есть уверенное продвижение в плане производительности. Если раньше у меня 1 миллион вершин (250 тысяч текстурированных прямоугольников по 4 вершины) забирали больше гига оперативки и “убивали” программу под Linux, то... [ продолжение ]
SFML + Linux
Месяц назад решил переписать код с использования библиотеки SDL2 на SFML. Меня не устроило отсутствие в SDL2 нативной поддержки текста, а только через сторонний, слабо развиваемый, плагин. Да и сама библиотека SDL2 “ванильная”, а SFML “плюсовая”. Конечно, я придирался, но решение было принято. Поддержка вывода 2D текстовых сообщений в SFML оказаласть действительно гораздо удобнее. Еще в ней очень удобная работа со звуком (хотя и не без шероховатостей).
Но в процессе работы выяснил что, во-первых, SFML очень хорошо заточена под работу... [ продолжение ]
AutoFS
Долго мучился с проблемой зависания файловой системы на точках монтирования к сетевым шарам мастдая. Блокировка возникает при сетевых сбоях, когда сервер на какое-то время оказывается недоступен по сети. Пробежал по “тусовкам” в интернете и выяснил, что этой проблеме подвержены все основные Linux-дистрибутивы - Arch Linux, Gentoo, Ubuntu, Centos.
Особенно четко проблема проявляется при монтировании сетевых дисков через файл “fstab” c использованием cifs. При этом система блокирует точку монтирования настолько глухо, что не помогает даже команда “umount -f …” от имени... [ продолжение ]
Cmake
После тестов с Clang остался установленный свежий Cmake. Мне понравился его разноцветный вывод во время сборки тестовых проектов. Попробовал настроить конфигурационный файл для сборки моего проекта в MS-Windows. После почти двух часов борьбы с мануалами и общения с поисковыми системами мой интерес к этой софтине немного поостыл. Конечно, по факту (возможно) Cmake может избавить сторонних специалистов от некоторых проблем со сборкой моего проекта. Но для этого, по-хорошему, надо потратить немало времени на изучение возможностей Cmake, синтаксиса его файлов, подбор модулей.... [ продолжение ]
Clang
Решил попробовать заточить компиляцию проекта в Clang. Что-то много о нем хвалебных постов попадается в последнее время. Но, как сказал Козьма Прутков: “Зри в корень”.
Проект Trickrig мультиплатформенный - под MS-Windows для компиляции используется MinGW- w64, из-за этого, к сожалению, со Шлангом пока не все гладко. Как написано на сайте разработчика совместимость гарантируется только с инструментами MS-Visual. Что касаемо MinGW-w64 то есть недоработки и баги (http://clang.llvm.org/docs/UsersManual.html#mingw-w64). Но пробовать будем - надо по возможности внедрять новые технологии.
Не стал заморачиваться со... [ продолжение ]
Антиспам
Окончательно закрыл форму регистрации на сайте. Теперь регистрироваться можно только через сообщение администратору из контактной формы. Причина банальна: в 99.99% случаях регистрируются аккаунты, которые через сервис https://cleantalk.org/spambots-check уверенно определяются как спамеры.
Первые проблемы
Началось. Вчера закончил работу над проектированием базовых классов, необходимых для работы графического движка - шейдерная программа, элементы пространства, рендер картинки, взаимодействие с пользователем, математика управления камерой. Для проверки всего в комплексе сгенерировал поле из 500х500 = 250 000 прямоугольников с текстурой. Соответственно
- один миллион вершин. Каждый прямоугольник использует отдельный Vertex Array Object (VAO). Все значения VAO хранятся в структуре “list”’ для покадрового вызова методов отрисовки каждого элемента (VAO). Понятно, что ТАК делать нельзя. По крайней мере правильнее будет загружать... [ продолжение ]
Управление в трехмерном окружении.
Вчера закончил работу над системой управления положением в трехмерном окружении. Система получилась удивительно компактной - всего двадцать строк в сумме в трех модулях, и удобной. Модульная архитектура приложения предоставляет большую гибкость кода, удобство анализа и модификации.
Информация о нажатиях клавиш управления и движения мышкой принимается через обработчик событий модуля графического окна. Этот модуль анализирует ввод только на наличие нажатия клавиши “Esc” (смена режима работы/выход) и после этого все полученные данные передает в каждом кадре в модуль промежуточного интерфейса. В интерфейсном... [ продолжение ]