CG World

Заметки о компьютерной графике

Не могу соединиться с базой данных

Новая жизнь «Новой реальности»

Ни для кого не секрет, что ретрогейминг сегодня на пике популярности: геймеры запускают свои любимые игры прошлого в эмуляторах, разработчики портируют их на современные платформы, а разнообразные римейки и переиздания пользуются бешеным спросом. На этой волне появились видеообзоры старых игр и консолей — вспоминаем творчество Kinaman’a. Думаем, что всех поклонников этого жанра заинтересует и новый проект Фархада Гафарова, казанского продюсера, автора мультфильма «Мишка» и блога RetroZine.

10 лет назад Фархад выпускал на Rutube интернет-шоу о компьютерных играх «В мире TOF», которое было стилизовано под культовую телепрограмму «Денди — Новая реальность» Сергея Супонева (название же отсылало к электронному журналу о ретрогейминге «TOF», выходившему в 2006-2010 годах). В 2020 году «В мире TOF» возродился в обновленном варианте и теперь носит то же название, что и передача Супонева — «Новая реальность». Содержание не поменялось, но стилизация вышла на новый уровень — были даже воссозданы оригинальные анимационные заставки со спецэффектами в духе телевидения 90-х.

От автора: «Итак, перед вами 1 выпуск новой Новой реальности! Я постарался сделать его в стиле 90х с различными фишками, отремастеренными заставками и присущим тем временам несколько наивным стилем ведения обзоров игр. В выпуске несколько обзоров игр NES (Dendy), Sega Mega Drive и Super Nintendo. В будущем будут и другие приставки! А также, возможно, если будет на это запрос — отдельно выпущенная версия выпуска (или отдельно обзоров), сделанная полностью под VHS! Приятного просмотра!»

Remini: нейросеть улучшает фотографии

Искусственный интеллект сегодня применяется в самых разных областях информационных технологий, и компьютерная графика не является исключением. Так, уже существуют нейросети, натренированные на имитацию художественных стилей (style transfer), а пользователям мобильных устройств давно знакомо приложение FaceApp, пропускающее фотографии людей через различные фильтры.

Отдельной сферой применения ИИ является фоторетушь — и приложение Remini стало в ней очередным крупным прорывом: оно способно удваивать разрешение фотографий со значительным улучшением четкости, превосходя по результатам все популярные алгоритмы апскейлинга в графических редакторах! При помощи Remini вы можете улучшить старые фото из семейного альбома, а также снимки с плохой фокусировкой и зашумленностью — приложение может стать незаменимым инструментом для подготовки снимков к печати или, например, для создания иллюстраций. Единственным существенным ограничением является то, что нейросеть «понимает» только человеческие лица — одежда, пейзаж и прочие неживые предметы на фотографии улучшаются при помощи обычных методов повышения четкости, не показывающих столь эффектные результаты. Приложение также поддерживает видео.

Remini позволяет бесплатно улучшить до 4 снимков в день с просмотром рекламы. Месячная подписка, снимающая все ограничения, стоит 398 руб.

День Благодарения в Lords Mobile

Lords Mobile — одна из лучших онлайн-стратегий современности для платформ PC, Android и iOS, которая органично совмещает сразу несколько жанровых направлений от классической стратегии до MMORPG, с размахом отмечает День Благодарения. Удивительный проект, релиз которого состоялся еще 26 февраля 2016 года, не только не теряет популярности, но и продолжает пополнять список активных геймеров. Лишь в Google Play игра была установлена более 100 млн раз. С пользователями iOS и Steam армия активных геймеров Lords Mobile составляет десятки миллионов человек.

Ветераны виртуальных фронтов, прошедшие горнила эпических сражений на полях Lords Mobile, с 23 по 30 ноября 2020 года отмечают День Благодарения. За верность Lords Mobile разработчики отблагодарят ветеранов ценными внутриигровыми призами и ускоренным набором опыта. Ценность призов будет возрастать в прямой зависимости от того, сколько игроков примет участие во внутриигровом ивенте. Так, первый приз игрок сможет получить за репост о Дне Благодарения в Lords Mobile в социальных сетях, второй — за присоединение к ивенту, а остальные призы будут сыпаться на голову геймера в арифметической прогрессии как из рога изобилия после того, как к игре последовательно присоединяются 250 тыс., 500 тыс., 750 тыс., 1 млн игроков и далее.

Разработчики рассчитывают, что День Благодарения 2020 в Lords Mobile станет одним из самых масштабных внутриигровых ивентов в истории проекта и заложит добрую традицию на будущее.

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

Игра снискала высокую популярность во всем мире за счет органичного сочетания различных игровых механик, таких как стратегия в реальном времени, экономическая стратегия, а также экшн-RPG открытых пространств. В основе геймплея Lords Mobile лежат масштабные PvP-сражения между огромными массами игроков и PvE-сражения со внутриигровыми противниками. Особо эпичные битвы разворачиваются в игре между членами вражеских гильдий (кланов). Параллельно с обычными сражениями, которые можно вести во множестве различных игровых форматов, пользователи смогут принять участие в конкурсах, целью которых является захват новых земель и получение бонусов.

Коммуникации игроков за пределами игровых чатов осуществляются в основном на странице игры в VK.

Новость предоставлена компанией IGG

NeoAxis открыт

Этим летом популярный российский игровой движок NeoAxis перешел в разряд открытого ПО под собственной лицензией (EULA). Движок и его исходники можно использовать в любых проектах, в том числе коммерческих, при условии указания ссылки на NeoAxis. Также особенностью лицензии является то, что она, как и GPL, распространяется на измененный код (если вы распространяете модифицированную версию NeoAxis, любые изменения могут быть использованы правообладателями NeoAxis, с сохранением ваших прав на эти изменения). Кроме того, требуется пометка, что это модифицированный код.

NeoAxis — это 3D/2D-игровой движок с интегрированной средой разработки, предназначенный для игр, симуляторов, систем виртуальной реальности и т. д. Рендеринг основан на библиотеке Bgfx, есть встроенный физический движок (Bullet) и поддержка воспроизведения звука. Программирование логики осуществляется на C# (есть встроенный редактор кода и поддержка Visual Studio). Движок и редактор расширяются при помощи DLL-библиотек.

https://www.neoaxis.com/
https://github.com/NeoAxis/NeoAxisEngine

Dev-C++ — история продолжается

В 2015 году мы писали о том, что среда разработки Bloodshed Dev-C++ продолжает развиваться в виде форка Orwell Dev-C++ 5. К сожалению, этот проект довольно быстро заглох, и долгое время казалось, что полюбившаяся многим IDE безвозвратно канула в лету. Однако этим летом пользователей ждал сюрприз: продолжением разработки Dev-C++ занялась компания Embarcadero!

Для тех, кто не в курсе: Dev-C++ — это свободная IDE под Windows, работающая с компилятором GCC, легковесная и интуитивная в использовании, прекрасная альтернатива Visual Studio для работы над небольшими проектами (или если вы просто не хотите использовать тулчейн от MS). Новость весьма порадовала: в руках Embarcadero, нынешнего владельца Delphi, проект просто обязан получить второе дыхание.

Как и форк Orwell, форк Embarcadero основан на TDM-GCC 4.9.2 и полноценно поддерживает компиляцию в 64-битном режиме. Среда официально поддерживает Windows 10. Из ключевых изменений стоит отметить обновленные пакетный менеджер Packman и линтер AStyle, также были улучшены локализации на некоторые языки.

На момент написания этого текста мы протестировали Embarcadero Dev-C++ 5.50. Мы не рекомендуем устанавливать программу в Program Files — многолетняя практика показала, что среда лучше всего работает из C:\Dev-Cpp. После установки вы можете увидеть ошибку при попытке запуска, но не пугайтесь: запускать нужно не devcpp.exe, а devcppPortable.exe. В остальном IDE работает как обычно, никаких существенных изменений в интерфейсе мы не заметили.

Скачать форк можно в GitHub-репозитории: https://github.com/Embarcadero/Dev-Cpp

Unigine — бесплатная версия!

3D-движок Unigine (развиваемый, кстати, российской компанией) всегда был дорогим удовольствием на фоне бесплатных Unity и UE. Но в этом году все изменилось: разработчики выпустили бесплатную версию движка для некоммерческого использования и студий с небольшим доходом — не выше $100000 в год. Unigine 2 Community Edition включает те же возможности, что и коммерческие редакции, за исключением поддержки координат двойной точности, прямого импорта данных CAD и GIS, а также некоторых других специфических функций. Минимальная стоимость лицензии без ограничений по доходам — Community Pro — составляет $150 в месяц.

Unigine — это профессиональный кроссплатформенный движок для разработки игр, симуляций и систем виртуальной реальности на основе DirectX 11/OpenGL 4.5, включающий поддержку практически всех современных технологий рендеринга — в том числе воксельный GI, SSR, PBR, сглаживание, постэффекты и пр. Движок обеспечивает реалистичный рендеринг ландшафта, воды и растительности, включает полнофункциональный WYSIWYG-редактор сцен, а также физический, звуковой и скриптовый движки. Поддерживаются все мейнстримовые форматы моделей: FBX, OBJ, COLLADA, PLY, 3DS, glTF.

https://unigine.com

Обзор возможностей WebGPU

После выхода Vulkan в 2015 году мы рассуждали о том, сможет ли новый графический API полностью заменить OpenGL, и сделали вывод, что в обозримом будущем этого не произойдет. Масса запутанного boilerplate-кода, непривычные для прикладной разработки концепции, множество вариантов неопределенного поведения, отсутствие нативной поддержки на macOS — все это делает Vulkan менее привлекательным выбором для написания типовых приложений. Vulkan более пригоден для машин, а не людей — он используется в бэкендах некоторых графических движков, но писать на нем напрямую слишком сложно и дорого. Отдельно стоял вопрос о судьбе Vulkan в браузерах — сейчас уже ясно, что WebVulkan не появится. Ну а после новости о том, что Apple прекращает поддержку OpenGL на macOS в пользу Metal, всем стало очевидно, что нужен новый абстрактный графический API, адаптированный под современные видеокарты, но при этом более дружественный к пользователю, чем Vulkan или Direct3D 12 — и, конечно, способный работать на всех платформах.

Стать таким API имеет все шансы WebGPU — новый веб-стандарт, предложенный W3C, основное применение которого — высокопроизводительный рендеринг и параллельные вычисления на GPU. В отличие от WebGL, WebGPU не является портом OpenGL или какого-то иного нативного API — по уровню абстракции он значительно выше Vulkan, но ниже OpenGL.

WebGPU создается, в первую очередь, для браузеров, и на момент написания этой статьи доступен лишь в Safari Technology Preview. Тем не менее, попробовать новый API вы можете уже сейчас в его нативной реализации в рамках проекта wgpu. Для сборки нужен тулчейн языка Rust, скомпилированную же библиотеку можно использовать в любом C-совместимом языке. wgpu работает на Windows, Linux и macOS, в качестве бэкенда используя Vulkan, Metal или Direct3D 12.

Особенности

Основным принципом WebGPU является сокращение вызовов API при изменении состояния конвейера и привязке ресурсов. Параметры конвейера создаются и валидируются заранее, что значительно снижает покадровую нагрузку. Заметна тенденция к сокращению числа функций в пользу больших и разветвленных инициализирующих структур, которые в терминологии WebGPU называются дескрипторами.

Важнейшая концепция WebGPU — группы биндинга (bind groups), которые похожи на descriptor sets в Vulkan. Это особые контейнеры, предназначенные для привязки данных к шейдерам — о них удобно думать как о наборах uniform-параметров. Вместо того, чтобы явно передавать значения каждому параметру, как это делалось в классическом OpenGL (до появления UBO), все данные в группе передаются единым буфером, что значительно быстрее и проще. Кроме того, можно заранее создать несколько готовых групп биндинга с разными данными, а потом просто переключаться между ними, что также очень эффективно.

Еще одной особенностью API является повсеместное использование буферов для обмена данными с приложением. WebGPU использует неструктурированные байтовые буферы, отображаемые в пользовательскую память, так что на стороне API даже не требуется уточнять типы uniform-данных — они задаются только в шейдере (но, разумеется, нужно следить за тем, чтобы структура в шейдере совпадала со структурой uniform-буфера). Также создание буфера необходимо для передачи данных в текстуру и для хранения вершинных атрибутов и индексов. Преимуществом API является единообразие — для хранения любых данных используется один и тот же тип буферного объекта (в отличие от того же OpenGL, где есть множество разных типов буферов).

Приложение WebGPU выглядит как предельно сжатый аналог приложения на Vulkan — инициализация устройства, определение лэйаутов групп биндинга, создание буферов и текстур, инициализация конвейера, свапчейна и аттачментов. В главном цикле — обновление uniform-буферов, установка текущих конвейера, группы биндинга, вершинного буфера — и, наконец, отрисовка. Все вызовы отрисовки (как и другие команды видеокарте) не выполняются немедленно, а заносятся в специальный command encoder, который затем отправляется в очередь на выполнение — таким образом, можно вызовы отрисовки определить заранее, до начала цикла (если, конечно, логика программы не предполагает изменений порядка рисования объектов).

Шейдерный язык WebGPU черновиком стандарта пока не определен, но существующие реализации используют SPIR-V, благодаря чему можно легко использовать готовые шейдеры на GLSL 4.5. Как и Vulkan, WebGPU не оперирует символьными именами и требует явного указания layout-спецификаторов set, binding и location для входных и выходных данных. Вероятнее всего, стандарт будет включать некий язык на основе HLSL — к примеру, Apple уже предложила Web High Level Shading Language (WHLSL).

Чего не будет в WebGPU

Серебряной пули не существует. Будучи переносимым, WebGPU неизбежно окажется более ограниченным, чем Direct3D и OpenGL. Вот несколько важных фич, которые, по всей видимости, не войдут в ядро стандарта: transform feedback, occlusion queries, тесселяция, сжатие текстур (только как расширение).

Итог

WebGPU — не только для более быстрых браузерных игр. Думаю, не будет преувеличением сказать, что нативные реализации WebGPU в будущем начнут частично занимать нишу десктопного OpenGL, а в совокупности с WebAssembly позволят писать единый код для нативных платформ и веба. Это означает, что графические приложения (3D-пакеты, графические и видеоредакторы, CAD-системы и пр.) можно будет запускать в браузере на всех платформах. WebGPU — это еще один шаг к стандартизации графических API, столь же значительный, каким в свое время стал OpenGL.

WebGPU — новый графический API

Консорциум W3C (Apple, Google, Mozilla, Microsoft и др.) работает над новым веб-стандартом WebGPU  — переносимым низкоуровневым API для рендеринга 3D-графики и параллельных вычислений на GPU. В отличие от существующего стандарта, WebGL, WebGPU не является портом OpenGL или какого-то иного нативного API — концептуально он основан на Vulkan, Metal и Direct3D 12.

Основным принципом WebGPU является сокращение вызовов API при модификации состояния конвейера (состояние меняется путем предварительного создания объектов pipeline state objects и переключения между ними в рантайме) и привязки ресурсов к шейдерам (аналогично используются объекты-группы привязки — bind groups). При этом WebGPU значительно проще и удобнее в использовании, чем тот же Vulkan, что сделает его отличным выбором для разработки игр.

Работа по реализации WebGPU ведется во всех основных браузерах, но на момент публикации этой новости API доступнен лишь в Safari Technology Preview. Тем не менее, попробовать новый API вы можете уже сейчас — в его нативной реализации в рамках проекта wgpu . Для компиляции нужен тулчейн языка Rust, скомпилированную библиотеку можно использовать в любом C-совместимом языке. wgpu работает на Windows, Linux и mscOS, в качестве бэкенда используя Vulkan, Metal или Direct3D 12.

Ранее Ctrl + ↓