Pull to refresh

Алгоритм Order-Independent Transparency c использованием связных списков на Direct3D 11 и OpenGL 4

Reading time16 min
Views32K
imageРеализацию порядко-независимой прозрачности (order-independent transparency, OIT), наверное, можно считать классической задачей программирования компьютерной графики. По сути, алгоритмы OIT решают одну простую прикладную задачу – как нарисовать набор полупрозрачных объектов так, чтобы не беспокоиться о порядке их рисования. Правила смешивания цветов при рендеринге требуют он нас, чтобы полупрозрачные объекты рисовались в порядке от дальнего к ближнему, однако этого сложно добиться в случае протяженных объектов или объектов сложной формы. Реализация одного из самых современных алгоритмов, OIT с использованием связных списков, была представлена AMD для Direct3D 11 еще в 2010 году. Скажу откровенно, производительность алгоритма на широко доступных графических картах тех лет не произвела на меня должного впечатления. Прошло 4 года, я откопал презентацию AMD и решил реализовать алгоритм не только на Direct3D 11, но и на OpenGL 4.3. Тех, кому интересно, что получилось из этой затеи, прошу под кат.
Читать дальше →
Total votes 64: ↑64 and ↓0+64
Comments18

Мониторинг СУБД Firebird с помощью Zabbix

Reading time4 min
Views6.1K

Примерно 20 лет назад была установлена СУБД Firebird, если не ошибаюсь, версии 1.0.3, на сегодняшний день база все еще жива и нужна, размер ее перевалил за 30ГБ, что по сегодняшним меркам очень мало, но и основной рост базы пришелся на начало века.

С повсеместным внедрением средств мониторинга захотелось снимать минимальную статистику и определять работоспособность СУБД и самой БД. Для мониторинга использую Zabbix установленный на Ubuntu 20.04 LTS, а сама СУБД находится на виртуальной машине с Windows 2008 Server. Версии на которых был использован метод мониторинга описанный ниже для СУБД Firebird 2.5.9, версия Zabbix 6.0. Но думаю что и с другими версиями проблем быть не должно.

Читать далее
Total votes 5: ↑5 and ↓0+5
Comments11

Как рендерится кадр Middle Earth: Shadow of Mordor

Reading time15 min
Views11K

Middle Earth: Shadow of Mordor была выпущена в 2014 году. Сама игра стала большим сюрпризом, и то, что она была спин-оффом сюжетной линии вселенной «Властелина кольца» оказалось довольно неожиданным. Игра обрела большой успех, и на момент написания статьи компания Monolith уже выпустила сиквел — Shadow of War. Графика игры очень красива, особенно учитывая то, что она была выпущена для разных поколений консолей, в том числе Xbox 360 и PS3. Версия для PC довольно хорошо отполирована, содержит дополнительные графические опции и пакеты текстур высокого разрешения, полностью раскрывающие потенциал игры.

В игре используется относительно новый отложенный рендерер DX11. Я воспользовался Renderdoc, чтобы глубоко изучить приёмы рендеринга игры. При работе использовались максимально возможные параметры графики (ultra) и были включены все возможные «примочки», такие как независимая от порядка прозрачность, тесселяция, окклюзия в экранном пространстве и различные motion blur.
Читать дальше →
Total votes 40: ↑40 and ↓0+40
Comments4

Deep Dive Into Deep Link. Часть 1. Введение и исходная задача

Reading time11 min
Views25K

Давно хотели разобраться, как работают Deep Link-и? Мы стартуем новый цикл статей, который посвящен работе Deep Link в Android. В первой части мы зафиксируем основные понятия: ​​Deep Link, Web Link, App Link. Разберем особенности каждого вида Deep Link-ов и разницу между ними.

Читать лонгрид
Total votes 4: ↑4 and ↓0+4
Comments2

Авторизация из приложения C# на портале BlaBlaCar.ru

Reading time8 min
Views4.7K

Из кода Вашего приложения Вы можете авторизоваться на любом web-портале. Это может быть нужно когда Вы хотите получить доступ к ресурсам Вашего аккаунта. Например, из кода Вашего приложения Вы получите список выполненных Вами поездок или список поездок на портале из одного города в другой на любую дату.

Читать далее
Total votes 10: ↑5 and ↓5+4
Comments5

Learn OpenGL. Урок 4.3 — Смешивание цветов

Reading time11 min
Views31K
OGL3

Смешивание цветов


Смешивание в OpenGL (да и других графических API, прим. пер.) является той техникой, которую обычно связывают с реализацией прозрачности объектов. Полупрозрачность объекта подразумевает, что он не залит одним сплошным цветом, а сочетает в себе в различных пропорциях оттенок своего материала с цветами объектов, находящихся позади. Как пример, можно взять цветное стекло в окне: у стекла есть свой оттенок, но в итоге мы наблюдаем смешение оттенка стекла и всего того, что видно за стеклом. Собственно, из этого поведения и возникает термин смешивание, поскольку мы наблюдаем итоговый цвет, являющийся смешением цветов отдельных объектов. Благодаря этому, мы можем видеть сквозь полупрозрачные объекты.
Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments0

3D Graphics Rendering Cookbook

Reading time2 min
Views7.5K

В августе этого года, после полутора лет напряженной работы, наконец-то вышла наша третья книга (про первую и вторую уже были посты на Хабре) ориентированная на разработку игр: 3D Graphics Rendering Cookbook: A comprehensive guide to exploring rendering algorithms in modern OpenGL and Vulkan.


Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments17

История одной проблемы с отключением пользователей Ejabberd после обновления 2.1.13->15.07

Reading time14 min
Views4.4K
В связи с тем, что гугль мало помог в решении возникшей проблемы — пусть это останется тут, может кому из коллег-админов поможет сэкономить некоторое количество времени и нервов.
Имеем ejabberd 2.1.13 из портов freebsd (10), полторы сотни зарегистрированных пользователей внутри организации, и некоторую потребность в его обновлении.
Пересобираем (portmaster) erlang (с R16 до R18), перезапускаем ejabberd — имеющиеся в онлайне в вечернее время полтора десятка пользователей успешно переподключились.
Собираем ejabberd, бекап, portmaster ejabberd, рестарт. Конвертируем конфиг в yaml.
Сервер поднимается, полтора десятка клиентов подключились, sendxmpp работает, zabbix тоже заработал, спокойно уходим домой.

С утра выясняется, что у одного из сотрудников не работает клиент (Miranda IM).
То есть происходит подключение, грузится список контактов и тут же — уход в офлайн.
Пробуем шаманства — обновить клиента, поменять на Miranda NG, поменять клиентский комп…
Потом выясняется, что проблема не только у одного пользователя.
У другого пользователя — подключение удается с… дцатой попытки.
Читать дальше →
Total votes 11: ↑5 and ↓6-1
Comments0