Обновить
0
0
Владимир Савин@WowaBBS

Пользователь

Отправить сообщение

Атмосферное рассеяние в ролике The Blacksmith

Время на прочтение4 мин
Охват и читатели25K
Еще на стадии планирования The Blacksmith мы отказались от встроенных в Unity режимов тумана в пользу более гибкого и комплексного решения. Чтобы передать глубину и масштаб крупных сценических шотов, нам было нужно максимально реалистичное атмосферное рассеяние.


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

Когда размер имеет значение

Время на прочтение6 мин
Охват и читатели18K


Иногда встречаются задачи, для которых уменьшение размера приложения, а точнее, правильный баланс между размером и производительностью, является даже более приоритетным, чем скорость его выполнения. Такого рода проблемы существуют, в частности, при разработке для встраиваемых (embedded) систем. Для них приложения «затачиваются» под конкретный тип процессора с очень ограниченным размером памяти, а значит размер нашего приложения будет напрямую влиять на стоимость конечного продукта. Кроме того, можно добавить больше функциональности и улучшить качество самого кода.

Компиляторы Intel обычно отдают предпочтение производительности и слабо заботятся о размере получаемого на выходе приложения. По умолчанию, фокус на максимальную скорость. Задача разработчика заключается в умении найти правильный баланс между скоростью выполнения приложения и используемыми оптимизациями компилятора, и его размером. В компиляторе Intel C/C++ имеется целый ряд возможностей, позволяющий контролировать этот баланс и делать размер приложения более приоритетным, чем его производительность. Давайте рассмотрим эти возможности.
Читать дальше →

Lock-free структуры данных. Основы: Модель памяти

Время на прочтение18 мин
Охват и читатели112K

В предыдущей статье мы заглянули внутрь процессора, пусть и гипотетического. Мы выяснили, что для корректного выполнения параллельного кода процессору необходимо подсказывать, до каких пределов ему разрешено проводить свои внутренние оптимизации чтения/записи. Эти подсказки – барьеры памяти. Барьеры памяти позволяют в той или иной мере упорядочить обращения к памяти (точнее, кэшу, — процессор взаимодействует с внешним миром только через кэш). “Тяжесть” такого упорядочения может быть разной, — каждая архитектура может предоставлять целый набор барьеров “на выбор”. Используя те или иные барьеры памяти, мы можем построить разные модели памяти — набор гарантий, которые будут выполняться для наших программ.

В этой статье мы рассмотрим модель памяти C++11.
Читать дальше →

Технологии ASR и TTS для прикладного программиста: теоретический минимум

Время на прочтение27 мин
Охват и читатели36K

Введение


В последние несколько лет голосовые интерфейсы окружают нас все плотнее. То, что когда-то демонстрировалось только в фильмах о далеком будущем, оказалось вполне реальным. Дело дошло уже до встраивания движков для синтеза (Text To Speech — TTS) и распознавания (Automatic Speech Recognition — ASR) речи в мобильные телефоны. Более того, появились вполне доступные API для встраивания ASR и TTS в приложения.

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

Но для затравки — анекдот:
Урок русского языка в грузинской школе.
Учитель говорит: «Дети, запомните: слова сол, фасол и вермишел пишутся с мягким знаком, а слова вилька, булька, тарелька – без мягкого знака. Дети, запомните, потому что понять это невозможно!»

Раньше этот анекдот казался мне смешным. Теперь — скорее жизненным. Почему так? Сейчас постараюсь объяснить…
Читать дальше →

Ученые Кембриджского университета разработали игру, помогающую лечить больных шизофренией

Время на прочтение2 мин
Охват и читатели11K
image

Ученые Кембриджского университета разработали компьютерную игру, способствующую улучшению эпизодической памяти больных шизофренией. Игра, получившая название «Wizard», должна помочь больным справляться с повседневными жизненными задачами и работой. Первые результаты использования такого метода лечения, опубликованы в журнале Philosophical Transactions of the Royal Society B.
Читать дальше →

Азбука электронщика: увлекательная теория, занимательная практика и полезные решения для начинающих

Время на прочтение4 мин
Охват и читатели61K
Я слушаю и забываю,
я вижу и запоминаю,
я делаю и понимаю.
Конфуций

Замечали ли вы, что интерес к электронике, радиотехнике, конструированию радиоэлектронных приборов в последнее время заметно возрос?

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



Понимая это, Мастер Кит начал выпуск серии наборов «Азбука электронщика».
Читать дальше →

Новый виток виртуальной реальности: Samsung Gear VR Innovator Edition

Время на прочтение3 мин
Охват и читатели9.1K
Добрый день, Geektimes!

Сегодня мы хотели бы немного рассказать вам о новом сплаве носимых устройств и технологий мобильной виртуальной реальности — обновленных очках виртуальной реальности Samsung Gear VR Innovator Edition. Совместное детище компаний Samsung и Oculus полностью оптимизировано под флагманские смартфоны нового поколения Samsung Galaxy S6 и Galaxy S6 edge. Что изменилось в новой версии гаджета? Об этом вы узнаете под катом.


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

Использование потенциальных полей в сценарии стратегии реального времени

Время на прочтение8 мин
Охват и читатели43K
Реализация поведения юнитов в RTS играх может стать серьезной проблемой. Компьютер, зачастую, контролирует огромное количество юнитов, в том числе и принадлежащих игроку, которые должны передвигаться в большом динамическом мире, попутно избегая столкновения друг с другом, выискивая врагов, защищая собственные базы и координируя атаки для истребления противника. Стратегии реального времени работают в реальном времени, что делает довольно сложным слежение за планированием действий и навигацией.

Этот урок описывает метод планирования течения игры и навигации юнитов, который использует многоагентные потенциальные поля. Он основан на работах под номерами [1, 2, 3]. (Смотри в конце статьи ссылки на используемые материалы)



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

Делаем видеоконференции в браузере за 10 минут

Время на прочтение9 мин
Охват и читатели30K
Обратите внимание, что данная статья устарела. Актуальная информация на тему создания видеоконференций доступна по ссылке.
Видеоконференции через Skype уже давно заняли свое место в ежедневных коммуникациях, пользователи оценили удобство такого формата общения и все больше компаний стараются проводить встречи именно в этом формате. Но у скайпа есть большой минус: это отдельное приложение, которое трудно интегрировать в другой сервис. А сервисов, куда можно с пользой для дела встроить видеоконференции великое множество, начиная от систем бизнес-автоматизации и заканчивая сервисами группового обучения иностранному языку. Сегодня я покажу вам, как с помощью подручных средств и voximplant за 10 минут собрать движок видеоконференций, работающий прямо из браузера на webRTC и спозволяющий подключаться к конференции с обычных телефонов.
Читать дальше →

Японцы отправят виски на Международную космическую станцию

Время на прочтение2 мин
Охват и читатели14K
Японский винокуренный завод Suntory, чей виски Yamazaki Single Malt Sherry Cask 2013 стал лучшим в мире в 2015 году, отправит шесть образцов своих напитков на Международную космическую станцию. Космонавты не смогут насладиться напитками, потому что цель производителя — не угостить жителей МКС, а проверить влияние невесомости на вкус виски.

АПД от инженера НАСА Роберта Фроста.

image
Yamazaki Single Malt Sherry Cask 2013
Читать дальше →

«Ра-а-авняйсь, смирно!». Выравниваем данные

Время на прочтение6 мин
Охват и читатели23K


В современных компиляторах задача векторизации циклов является очень важной и нужной. В большинстве своем, при успешной векторизации производительность приложения может быть существенно увеличена. Способов добиться этого достаточно много, а тонкостей, связанных именно с получением ожидаемого «ускорения» нашего приложения – ещё больше.

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

DeepDream — Визуализатор работы нейросети

Время на прочтение1 мин
Охват и читатели61K

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

LampTest.ru — тестирование светодиодных ламп

Время на прочтение4 мин
Охват и читатели60K
Рад сообщить, что cайт lamptest.ru (он же lamptest.com), над которым мы работали полгода, сегодня заработал в «боевом» режиме.



На сайте собраны данные по протестированным мной светодиодным лампам. Сейчас их там 102, но уже скоро добавится ещё пара десятков. На сайте уже есть данные по всем лампочкам Ikea, по большому количеству ламп Thomson, Navigator, Gauss.

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

Электронные сигареты: ликбез

Время на прочтение11 мин
Охват и читатели126K
Электронные сигареты набирают всё большую популярность, но, как показывает практика, многие курильщики, решившие избавиться от пагубной привычки и перейти на электронику, разочаровываются в ней. Во-первых они не утоляют никотиновый голод, во-вторых обходятся дорого (хотя где-то слышали, что дешевле), в-третьих — часто ломаются. А всё из-за того, что пробовали они нечто подобное представленному на картинке.
В этом посте я попробую немного рассказать о современном состоянии дел на этом стремительно растущем рынке, что должно помочь сделать выбор. Советов про вред или пользу, за или против не будет. Их полно в сети (например, очень хорошо сказано про это в недавнем посте), кому верить каждый решает сам.
Читать дальше →

Такие удивительные семафоры

Время на прочтение9 мин
Охват и читатели151K
От переводчика: Джефф Прешинг (Jeff Preshing) — канадский разработчик программного обеспечения, последние 12 лет работающий в Ubisoft Montreal. Он приложил руку к созданию таких известных франшиз как Rainbow Six, Child of Light и Assassin’s Creed. У себя в блоге он часто пишет об интересных аспектах параллельного программирования, особенно применительно к Game Dev. Сегодня я бы хотел представить на суд общественности перевод одной из статей Джеффа.

Поток должен ждать. Ждать до тех пор, пока не удастся получить эксклюзивный доступ к ресурсу или пока не появятся задачи для исполнения. Один из механизмов ожидания, при котором поток не ставится на исполнение планировщиком ядра ОС, реализуется при помощи семафора.

Раньше я думал, что семафоры давно устарели. В 1960‑х, когда еще мало кто писал многопоточные программы, или любые другие программы, Эдсгер Дейкстра предложил идею нового механизма синхронизации — семафор. Я знал, что при помощи семафоров можно вести учет числа доступных ресурсов или создать неуклюжий аналог мьютекса, но этим, как я считал, область их применения ограничивается.
Читать дальше →

Нативная реализация OmniDirectional теней в DirectX11

Время на прочтение13 мин
Охват и читатели25K
image

Привет. Продолжая рассказывать про различные технологии из графического геймдева — хотел бы рассказать о том, как в DirectX 11 удобно работать с тенями. Расскажу о создании Point-источника света с полным использованием инструментов GAPI DirectX11, затрону такие понятия, как: Hardware Depth Bias, GS Cubemap Render, Native Shadow Map Depth, Hardware PCF.
Исходя из легкого серфинга по интернету – я пришел к выводу, что большинство статей о тенях в DX11 неверны, реализованы не совсем красиво или с использованием устаревших подходов. В статье постараюсь сравнить реализацию теней в DirectX 9 и DirectX 11. Все ниже описанное так же справедливо и для OpenGL.

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

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

Время на прочтение5 мин
Охват и читатели36K


Обнаружение столкновений (collision detection) виртуальных объектов является довольно значимой частью для задач визуализации.
Читать дальше →

Мини-обзор библиотек для Reflection в C++

Время на прочтение5 мин
Охват и читатели26K
В силу скромной информации на эту тему, в данной статье проведу небольшой обзор и сравнение найденных библиотек для Reflection в C++. В первую очередь эта информация будет интереса разработчикам игр.

Благодаря reflection можно:
— Легко создавать редакторы, в том числе интерфейсов, так как есть удобный доступ к мета-информации о всех свойствах ваших объектов;
— Добавить binding для многих скриптовых языков сразу (Lua, Python, JavaScript и т.д.);
— Использовать мета-информацию для автоматической сериализаци;
— Использовать как фабрику объектов, создавая нужные экземпляры, имея лишь строку с именем тип;
— Использовать в качестве более легковесной замены dynamic_cast;
— И прочее прочее прочее, в зависимости от фантазии и потребностей.
Читать дальше →

Организация виртуальной памяти

Время на прочтение14 мин
Охват и читатели86K
Привет, Хабрахабр!

В предыдущей статье я рассказал про vfork() и пообещал рассказать о реализации вызова fork() как с поддержкой MMU, так и без неё (последняя, само собой, со значительными ограничениями). Но прежде, чем перейти к подробностям, будет логичнее начать с устройства виртуальной памяти.

Конечно, многие слышали про MMU, страничные таблицы и TLB. К сожалению, материалы на эту тему обычно рассматривают аппаратную сторону этого механизма, упоминая механизмы ОС только в общих чертах. Я же хочу разобрать конкретную программную реализацию в проекте Embox. Это лишь один из возможных подходов, и он достаточно лёгок для понимания. Кроме того, это не музейный экспонат, и при желании можно залезть “под капот” ОС и попробовать что-нибудь поменять.
Читать дальше →

Динамическая компиляция Java-кода своими руками

Время на прочтение14 мин
Охват и читатели31K
В этой статье я расскажу о нашей реализации hot deploy — быстрой доставки изменений Java-кода в работающее приложение.

Для начала немного истории. Мы уже несколько лет делаем корпоративные приложения на платформе CUBA. Они очень разные по размеру и функциональности, но все они похожи в одном — в них много пользовательского интерфейса.

В какой-то момент мы поняли, что разрабатывать пользовательский интерфейс, постоянно перезагружая сервер — крайне утомительно. Использование Hot Swap сильно ограничивает (нельзя добавлять и переименовывать поля, методы класса). Каждая перезагрузка сервера отнимала минимум 10 секунд времени, плюс необходимость повторного логина и перехода на тот экран, который ты разрабатываешь.

Пришлось задуматься о полноценном hot deploy. Под катом — наше решение проблемы с кодом и демо-приложением.
Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Самара, Самарская обл., Россия
Дата рождения
Зарегистрирован
Активность