• О создании бюджетных стереоизображений на пальцах (стереограмма, анаглиф, стереоскоп)

    • Tutorial
    Пришли очередные выходные, надо написать пару десятков строк кода и нарисовать картинку, да лучше не одну. Итак, на прошлых и позапрошлых выходных я показал, как делать трассировку лучей и даже взрывать всякое. Это многих удивляет, но комьпютерная графика — очень простая вещь, пары сотен строк голого C++ вполне хватает на создание интересных картинок.

    Тема сегдоняшнего разговора — бинокулярное зрение, причём сегодня даже до ста строк кода не дотянем. Умея рендерить трёхмерные сцены, было бы глупо пройти мимо стерепар, сегодня будем рисовать примерно вот такое:


    Читать дальше →
  • Мой путь начинающего разработчика игр

    Доброго времени суток, уважаемые пользователи!


    Хочу поделиться с Вами своей маленькой историей создания своей маленькой игры.

    Ну, начнем с того, что я — школьник. На носу у меня ЕГЭ, надо бы к нему готовиться, а меня все тянет и тянет в эту какую-то заблудшую степь. Но меня это ни сколько не останавливает. Еще в детстве мечтал делать игры, вот почему бы и не начать именно сейчас.

    Что ж, начнем, пожалуй.

    Наступил 2019 год, и я решил: «Пора заняться чем-то новым!» Сел на диван первого января, открыл YouTube, как обычно, и включил фоном какой-то видос, параллельно размышляя чем бы заняться. И вот мне в голову пришла великолепная мысль, которой я решил сразу же заняться. Я решил выучить новый язык программирования! До этого знал только Python (о нем чуть позже) и pascal, который никому был не нужен, только для решения того же ЕГЭ. Вот сел я значит за ноутбук и думаю «Какой бы язык выбрать?». Мой выбор пал на Java.
    Читать дальше →
  • Graceful degradation. Доклад Яндекс.Такси

      Сервисы необходимо писать так, чтобы минимальная функциональность сохранялась всегда — даже если откажут критически важные компоненты. Илья Сидоров, руководитель одной из команд продуктовой разработки бэкенда Яндекс.Такси, объяснил в своем докладе, как мы даем пользователю заказать машину, когда отдельные части системы не работают, и по какой логике мы активируем упрощенные версии сервиса.


      Важно писать не только сервисы, которые хорошо работают, но и сервисы, которые хорошо ломаются.
      Читать дальше →
    • Адаптивные шаблоны Figma: как сделать гибкий дизайн-компонент мобильной навигации iOS



        Всякий раз, создавая новый продукт, хочется сделать его лучше предыдущего, подобрать элегантное решение, чтобы создать удобные и гибкие компоненты дизайн-системы в Figma.

        При создании набора компонентных iOS-шаблонов для Figma я решил поэкспериментировать с компонентом Tab Bar. Напомню, что в гайдлайнах iOS это нижняя навигация. Мне хотелось, чтобы его содержимое имело логичное и оптимальное поведение при ресайзе. Хотелось сделать его максимально адаптивным для всех iOS-устройств, насколько это позволяет сделать Figma и направляющие (constraints).
        Читать дальше →
      • Сложное модульное архитектурное окружение в UE4

        • Перевод
        Тайлер Анлауф подготовил подробный анализ модульного окружения ROME: Church of Sant’Ivo созданного им в UE4 и 3ds Max. В статье он рассказывает о предварительном черновом плане (blockout), модульной сборке, освещении, постобработке и многом другом.


        ROME: Church of Sant’Ivo


        В данном анализе я поделюсь с вами своим процессом работы над ROME: Church of Sant’Ivo, хитростями, которым научился, трудностями, с которыми столкнулся во время работы, а также планами под дальнейшему усовершенствованию сцены, потому что она пока ещё не завершена.


        Цели проекта


        Задачи этого проекта заключались в усовершенствовании моего процесса работы над графикой, изучении Unreal Engine и улучшении моих навыков работы с освещением, цветом и композицией. Храм Сант-Иво алла Сапиенца соответствует целям проекта — в нём очевидно заметны возможности работы с модульной структурой, освещением, цветом и композицией.

        Полезно было выбрать место, которое бы находило во мне отклик и вдохновляло меня. Этот архитектурный шедевр периода раннего римского барокко имеет богатую историю, величественный архитектурный язык и масштаб, который я нахожу интригующим. Этот масштаб также вызывал сложности из-за ограничений времени, поэтому мне нужно было всё тщательно спланировать.
        Читать дальше →
      • Почему жульничает дружественный ИИ в Ghost Recon Wildlands

        • Перевод
        При создании игр разработчики одержимы желанием создать для игроков интересный и увлекательный игровой процесс: поставить их в новые условия или по-новому взглянуть на знакомые. И иногда для этого необходимо немного сжульничать. Разработчики вносят небольшие изменения в системы геймплея или в определённые базовые функции геймдизайна. Это относится и к неигровым персонажам. Ксеноморф из Alien Isolation имел на спине сенсоры ближнего радиуса действия, и «режиссёр» всегда знал, где находится пользователь, враги в Far Cry становились чуть менее точными, когда воевали с игроком, а демоны из DOOM терпеливо ждали своей очереди, чтобы получить шанс разорвать игрока на клочки. Это может казаться контринтуитивным, но ограничивая поведение персонажей или давая им больше знаний и навыков, чем это необходимо, разработчики в некоторых случаях способны сделать игровой процесс более целостным. И это подводит нас к исследованию Ghost Recon Wildlands компании Ubisoft: выпущенной в 2017 году экшн-игры в открытом мире, в которой игроки методично уничтожают наркокартель Санта-Бланка.


        В этой статье я расскажу о трёх управляемых ИИ неигровых персонажах, работающих с игроком в офлайновых миссиях: Холте, Мидасе и Уивере. Эта команда призраков должна иметь возможность отвечать на команды игрока и реагировать на окружающий его мир, в то же время поддерживать создаваемую игрой иллюзию, в то время, как вы тайно уничтожаете вражеские командные посты или идёте в лоб на боевом вертолёте, разнося всё на куски. Это интересная задача дизайна. Игра стала одним из выдающихся современных примеров того, как ИИ жульничает не для того, чтобы выполнять то, чего от него ожидают, а потому что мы, игроки, не можем смириться со своим провалом.
        Читать дальше →
        • +37
        • 9,9k
        • 6
      • Активность мозга человека впервые транслировали в чёткую речь


          Схема метода реконструкции речи. Человек прослушивает слова, в результате активируются нейроны его слуховой коры. Данные интерпретируются четырьмя способами: сочетанием двух типов регрессионных моделей и двух типов речевых представлений, затем поступают в систему нейросетей для извлечения признаков, которые впоследствии используются для настройки параметров вокодера

          Нейроинженеры Колумбийского университета (США) первыми в мире создали систему, которая переводит мысли человека в понятную, различимую речь, вот звукозапись слов (mp3), синтезированных по мозговой активности.

          Наблюдая за активностью в слуховой коре головного мозга, система с беспрецедентной ясностью восстанавливает слова, которые слышит человек. Конечно, это не озвучивание мыслей в прямом смысле слова, но сделан важный шаг в этом направлении. Ведь похожие паттерны мозговой активности возникают в коре головного мозга, когда человек воображает, что слушает речь, или когда мысленно проговаривает слова.
          Читать дальше →
        • Размещай правильно: 7 идеальных мест для размещения видео-контента

          Итак, вы готовы сделать видео полноценной частью маркетинговых процессов вашей организации. Самое время.

          Существует множество исследований, в которых говорится, что в 2019 году порядка 80% контента, потребляемого нами в интернете, будет составлять видео (ссылка на исследование в конце статьи). Хотим мы или нет, продолжаем ли мы писать и рисовать, но пришло время очень серьезно отнестись к этому ресурсу.

          Предположим, что вы уже сотворили свой видеоконтент. Это не так сложно, учитывая время создания stories, приносящих огромную прибыль, и количество программ для монтажа. Скорее всего, теперь вы задаетесь вопросом: как лучше всего разместить видео на веб-сайте вашей компании.

          Перед вами список потенциально успешных вариантов.
          Читать дальше →
        • «Костыль» для китайского лазера

          Здравствуйте.

          Работаю я оператором лазерного маркера. Наношу изображения на металлические шильдики. В данной заметке хочу поделиться маленькой хитростью, как сейчас принято говорить — «лайфхаком».

          Вводная


          Начну несколько издалека. Приставлен я к небольшой технологической установке, твердотельному волоконному лазеру Unilaser, произведённому в КНР. Управляется станок специализированным ПО, EzCad2 [Unilaser]. Программа обеспечивает ряд возможностей для отрисовки картинок для нанесения, управление режимами реза. Однако, точно позиционировать текст в ней весьма затруднительно, поэтому используется дополнительный векторный редактор. В качестве такового до последнего времени выступал Corel Draw X8.
          Читать дальше →
        • OpenSceneGraph: Уровни детализации (LOD) и фоновая загрузка объектов

          • Tutorial
          image

          Введение


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

          Типичный пример: «большой мир» при визуализации железной дороги на движке OSG. Не хватает только лангольеров, пожирающих мир за поездом...


          В этой связи возникает необходимость управления ресурсами приложения, сводящаяся к очевидному решению: загрузке только тех ресурсов (моделей, текстур и так далее), которые необходимы для формирования сцены в текущий момент времени при текущем положении наблюдателя; уменьшении уровней детализации удаленных объектов; выгрузке не нужных более объектов из памяти системы. В большинстве своем графические и игровые движки предоставляют некоторый набор инструментов для решения подобных задач. Сегодня мы рассмотрим, какие из них имеются в OpenSceneGraph.
          Читать дальше →
        • Своя видео-платформа — ffmpeg и качество кодирования видео. Part 2


            Lenna любит хорошо выглядеть — фотомодель в конце концов. Ходят легенды, что добавление её в заголовок статьи, связанной с обработкой визуальных данных даёт +5 к шансу на плюсы.

            Продолжаю раскрывать особенности работы видео сервисов. Сегодня заметки про параметры кодирования и их выбор.

            Первая часть

            Большинство кодеков предлагают достаточно сбалансированные значения по умолчанию, позволяя получить нормальный результат без долгого подбора параметров. Однако, когда речь идёт о большом архиве видеоматериала, об ограничениях на битрейт, соображениях совместимости с оборудованием клиента и разумном желании сохранить качество оригинала, всё становится интереснее.

            К сожалению, волшебной кнопки «скодировать совсем хорошо» не предусмотрено. Как и аналога caniuse для параметров кодирования. Придётся разбираться в особенностях работы кодеков.
            Читать дальше →
          • VSaaS 2025: технологии видеонаблюдения будущего

              image

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

              Объём мирового рынка VSaaS растёт со скоростью 22% ежегодно и к 2022 году достигнет $6 млрд. Пропускная способность сети и затраты на трафик по-прежнему остаются барьером, но в ближайшие годы почти все системы перейдут на облачные решения. Причин у доминирования облаков несколько, но главное, что VSaaS — это намного больше, чем просто видеонаблюдение.

              Многие в отрасли задаются вопросом, какие глобальные перемены ждут нас в ближайшие 5-7 лет. Скорее всего, привычные нам сейчас системы станут выглядеть иначе. Полагаясь на некоторые последние тренды, мы можем уже сейчас визуализировать картину VSaaS-решений ближайшего будущего.
              Читать дальше →
            • OpenSceneGraph: Система плагинов

              • Tutorial
              image

              Введение


              Где-то в предыдущих уроках уже говорилось о том, что OSG поддерживает загрузку разного рода ресурсов типа растровых изображений, 3D-моделей различных форматов, или, например, шрифтов через собственную систему плагинов. Плагин OSG является отдельным компонентом, расширяющим функционал движка и обладающий интерфейсом, стандартизированным в пределах OSG. Плагин реализуется как динамическая разделяемая библиотека (dll в Windows, so в Linux и т.д). Имена библиотек плагинов соответствуют определенному соглашению

              osgdb_<расширение файла>.dll
              

              то есть в имени плагина всегда присутствует префикс osgdb_. Расширение файла указывает движку какой плагин следует использовать для загрузки файла с данным расширением. Например, когда мы пишем в коде функцию

              osg::ref_ptr<osg::Node> model = osgDB::readNodeFile("cessna.osg");
              

              движок видит расширение osg и загружает плагин с именем osgdb_osg.dll (или osgdb_osg.so в случает Linux). Код плагина выполняет всю черную работу, возвращая нам указатель на ноду, описывающую модель цессны. Аналогичным образом, попытка загрузки изображения формата PNG

              osg::ref_ptr<osg:Image> image = osgDB::readImageFile("picture.png");
              

              приведет к тому, что будет загружен плагин osgdb_png.dll, в котором реализован алгоритм чтения данных из картинки в формате PNG и помещение этих данных в объект типа osg::Image.
              Читать дальше →
            • Вуайеризм тестировщика: как правильно подглядывать за людьми и зачем это нужно

                Насколько UX — зона ответственности тестировщиков? Ранее Антонина Хисаметдинова на конференции по тестированию Heisenbug рассказывала о правильном отображении ошибок, и расшифровка того доклада собрала на Хабре множество просмотров. А в декабре на Heisenbug 2018 Moscow она говорила о том, зачем тестировщику подглядывать за пользователями — и этот доклад тоже был отлично принят зрителями. Так что теперь мы и для него подготовили текстовую версию.


                Читать дальше →
                • +31
                • 8,2k
                • 9
              • Анатомия сокола

                • Перевод

                Недавно мы объявили о разработке игры Falcon Age о выращивании взрослой птицы из птенца сокола и совместном противостоянии силам, стремящимся колонизировать планету. Falcon Age выйдет в 2019 году на PS4 и PS VR.

                На прошлой неделе мы показали игру на PAX и получили замечательные отзывы, особенно о самом соколе. Давайте подробно рассмотрим его дизайн, настройку анимаций и рига, ИИ и навигацию, технологию создания перьев и звуки хищника.

                Дизайн сокола


                Рассказывают Чандана Эканаяке и Дэрран Хёрлбат.


                В дизайне сокола сочетаются разные виды хищных птиц. Наша соколиха размером с беркута, дерётся как ястреб, внешне напоминает и орла, и ястреба, имеет хохолки, как у совы, а уход за ней осуществляется, как за соколом. Она одна из последних представительниц своего вида в нашем мире, и мы хотели сделать её внешний вид уникальным и подходящим для сюжета. При этом во время игрового процесса она должна выделяться на фоне неба и пустынь.
                Читать дальше →
              • OpenSceneGraph: Обработка событий

                • Tutorial
                image

                Введение


                Одной из особенностей языка C++, за которую его часто критикуют — отсутствие в стандарте механизма обработки событий. Между тем данный механизм это один из основных путей взаимодействия одних программных компонентов с другими программными компонентами и аппаратным обеспечением, и реализуется он на уровне конкретной ОС. Естественно, что каждая из платформ имеет свои нюансы реализации описанного механизма.

                В связи со всем вышеперечисленным, при разработке на C++, возникает потребность в реализации обработки событий тем или иным способом, решаемая за счет использования сторонних библиотек и фреймворков. Всем известный фреймворк Qt предоставляет механизм сигналов и слотов, позволяющий организовать взаимодействие классов, наследуемых от QObject. Реализация событий присутствует и в библиотеке boost. И конечно же в движке OpenSceneGraph не обошлось без собственного «велосипеда», о применении которого и пойдет речь в статье.
                Читать дальше →
              • Как дизайнер я отказываюсь называть людей «пользователями»

                • Перевод


                В сфере, которая затрагивает столько жизней, точная терминология просто необходима


                Я — UX-дизайнер, и уже более пяти лет занимаюсь организацией взаимодействия с пользователем. И начиная с этого момента, я собираюсь выбросить из своего лексикона слово «пользователь» и связанные с ним термины: «UX», «пользовательский опыт» и т. д. Это произойдет не сразу. Сначала я постараюсь не использовать эти слова в разговорах на работе. Я удалю их из своего профиля в сети LinkedIn. Я научусь во время светской болтовни описывать свою работу другими словами. Я буду экспериментировать и искать другие, более точные термины.

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

                В дизайне продуктов «пользователь» и производные слова определяли основу отношений между людьми и технологиями: первые пользуются, вторых используют.

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

                Переведено в Alconost
                Читать дальше →
                • –11
                • 2,6k
                • 9
              • Yealink Meeting Server 2.0 — новые возможности видеоконференцсвязи

                • Tutorial
                В прошлой статье: Yealink Meeting Server — комплексное решение для видеоконференцсвязи мы описали функционал первой версии Yealink Meeting Server (далее YMS), её возможности и структуру. В результате, мы получили от Вас множество запросов на тестирование этого продукта, часть которых выросли в комплексные проекты по созданию или модернизации ВКС-инфраструктуры.
                Наиболее часто встречающийся сценарий предполагал замену прежнего MCU на сервер YMS, при сохранении существующего парка терминальных устройств, а расширение с помощью терминалов Yealink.

                Основных причин тому три:

                1. Масштабируемость существующего MCU невозможна или неоправданно дорога.
                2. «Накопленный долг» за техническую поддержку соизмерим со стоимостью современного ВКС-решения «под ключ».
                3. Производитель уходит с рынка и поддержка перестаёт осуществляться вообще.

                Многие из Вас, кто сталкивался с модернизацией Polycom, например, или поддержкой LifeSize, поймут о чём идёт речь.

                Новый функционал Yealink Meeting Server 2.0, а также обновление модельного ряда терминальных клиентов Yealink не позволяет уместить всю информацию в рамках одной статьи. Поэтому я планирую сделать серию небольших публикаций на следующие темы:

                • Обзор YMS 2.0
                • Интеграция YMS и S4B
                • Каскадирование серверов YMS
                • Новые терминалы Yealink
                • Многокамерное решение для крупных конференц-залов
                Эта статья посвящена первой теме - обзору YMS 2.0
                • +16
                • 1,5k
                • 9
              • Тайная история Donkey Kong: от аркадных автоматов до NES

                • Перевод
                image

                Donkey Kong — это, вероятно, один из величайших аутсайдеров игрового мира. Он нарушил все правила, потому что его создатель, теперь уже легендарный Сигэру Миямото, этих правил не знал. Он не только стал началом одного из ярчайших умов отрасли видеоигр, но и зародил жанр «беги и прыгай», сделав Nintendo одним из старейших столпов индустрии.

                Тридцать с лишним лет спустя Donkey Kong по-прежнему остаётся одним из наиболее узнаваемых персонажей, но многое из его истории всё ещё не рассказано. В большинстве рассказов о его разработке Миямото как будто является единственным творцом; его эскизы, идеи и спрайты будто бы воплотились в жизнь благодаря какому-то волшебству или скромным труженикам, не стоящим даже упоминания. На протяжении многих лет вопрос о том, кто же разработал Donkey Kong, оставался неотвеченным, потому что редко задавался.

                До того, как титры в конце стали стандартной практикой в видеоиграх, разработчики находили другие способы подписывать свои работы, обычно в таблицах рекордов, но иногда сообщениями или инициалами в самом ROM. Подчас это были единственные зацепки, позволявшие связывать игры с их авторами.
                Читать дальше →
                • +26
                • 4,8k
                • 3
              • Запись видео с автоматическим выкидыванием пауз свободным ПО с велосипедостроением

                  Велосипед на таймлайне

                  Русскоговорящим разработчикам всегда есть чего рассказать: поделиться каким-то своим уникальным опытом и мнениями. Но в формате видеоблога, из-за высокой сложности при записи, делают это сейчас единицы.


                  Под катом рассказал о своем непростом пути к записи и редактированию видео с помощью свободного ПО, скриптинга на Ruby и подручных средств.

                  Читать дальше →

                Самое читаемое