Pull to refresh
0
0
Светлов Александр @Mehalich

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

Send message

Модель взаимодействия судов с водой в видеоиграх: часть 2

Reading time17 min
Views16K


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

Модифицированный алгоритм Geometry Buffer Anti-Aliasing

Reading time12 min
Views11K
Алиасинг представляет одну из фундаментальных проблем компьютерной графики, и для борьбы с ним придумано множество разнообразных алгоритмов антиалиасинга. Появление MLAA привлекло интерес к алгоритмам, работающим на этапе постобработки. Одним из таких алгоритмов (с небольшой оговоркой) является Geometry Buffer Anti-Aliasing (GBAA). В этом материале описана попытка модификации оригинального алгоритма для улучшения качества антиалиасинга в некоторых случаях.

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

AI монстров и поиск пути с помощью тепловых карт

Reading time5 min
Views25K
image Допустим, у нас есть плоская карта, состоящая из тайлов. На некоторых тайлах стоят монстры, а на некоторых других – всякие штуки, которые монстров интересуют: игрок, оружие, зелья, боеприпасы и прочее в том же духе. Задача состоит в том, чтобы объяснить монстрам, к каким штукам им идти и как. Путь должен быть близким к оптимальному, а время вычисления – настолько маленьким, насколько это возможно. Один из самых простых способов – использовать тепловую карту дистанций до определённой цели или целей.
Читать дальше →

Глобальное потепление для начинающих

Reading time12 min
Views36K

Если бы вы не слышали о глобальном потеплении, как бы вы смогли установить, происходит ли оно?


Вопрос о том, происходит ли изменение климата, не стоит. Спорить можно только о том, какую роль в нём играют люди.
Дэвид Аттенборо


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



Но мне поступило много просьб взглянуть на вышедший (в 2014 году) отчёт IPCC по поводу глобального потепления и меня спрашивали, как можно самостоятельно попытаться установить, нагревается ли Земля.

И если это действительно так, то как понять, играет ли человечество в этом процессе значительную роль?
Читать дальше →

Проект iRotary

Reading time7 min
Views18K

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


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

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

Так и родился iRotary

Проект iRotary



Красотуля

Начал я с покупки олдскульного настоящего телефона с поворотным номеронабирателем – как раз такого, какой я использовал ещё ребёнком. Выбрал я славный оранжевый цвет, чтобы красота iRotary не уступала амбициозности проекта.

Фото сделано с того самого телефона в первый день покупки, с кабелями и всем остальным. Именно так здорово он выглядит и сегодня, хотя у него на 50% меньше проводов – что хорошо в случае мобильных телефонов.

Весь проект обошёлся мне в $150 на запчасти и в $2000 за время разработки – он занял два полных дня на сборку, и растянулся на несколько месяцев всяких действий, ожидания запчастей, использования запчастей, ожидания следующих запчастей и т.п. Первый шаг, конечно, заключался в извлечении всего ненужного и заменой на всё нужное.
Читать дальше →

Пастильда — открытый аппаратный менеджер паролей

Reading time5 min
Views61K
Pastilda — open source аппаратный USB менеджер паролей

Немало заметок и обсуждений посвящены непростому вопросу безопасного хранения паролей, тема интересная и, похоже, актуальной будет ещё долго. Существуют различные программные решения для хранения паролей, о них довольно часто пишут на Хабре (например тут и вот тут), однако многим из них, как нам кажется, в той или иной степени свойственны следующие недостатки:
  • закрытый код снижает доверие и вероятность оперативного устранения уязвимостей
  • для автозаполнения нужно ставить дополнительный софт
  • после ввода мастер-пароля вся база открыта и доступна, в том числе для вредоносного ПО, что особенно актуально на недоверенных устройствах
  • использование мобильных приложений для хранения паролей все равно подразумевает ручной ввод с клавиатуры, например когда требуется залогиниться на стационарном ПК
  • автозаполнение невозможно в некоторых случаях (в bios, консоли)

Мы пришли к выводу, что наиболее удобным решением будет простой и недорогой девайс, позволяющий аппаратно хранить и вводить логины/пароли на любые устройства, без установки какого-либо ПО.
Читать дальше →

Расширение функционала Scene View в Unity3D. Перехват событий

Reading time4 min
Views12K
Scene View в Unity3D является одним из самых необходимых элементов интерфейса. Каждый, кто хоть раз запускал Unity3D пользовался Scene View для визуальной расстановки объектов на сцене, а также для их настройки. Расширение функционала Scene View может понадобиться для создания собственного редактора уровней, редактирования mesh’а, создания собственных gizmos и много другого. Стоит заметить, что при использовании Terrain в вашем проекте, его редактирование (рисование текстур, изменение высот, а также посадка деревьев и растительности) осуществляется при помощи Scene View.

Для того, чтобы иметь возможность писать скрипты работающие в Scene view в первую очередь класс с которым вы работаете должен быть унаследован от Editor или EditorWindow, что подразумевает подключение namespace UnityEditor. Это дает доступ к нескольким «магическим» методам Unity3D, таким как OnGUI() и OnSceneGUI(). Метод OnSceneGUI дает возможность Editor'у управлять событиями Scene View.
Подробности

История одного диплома или как сделать шаробота

Reading time10 min
Views37K

История этого проекта начинается в 2014 году, когда я учился на 4-м курсе в ведущем техническом вузе России на кафедре «Робототехнические системы». В это время я уже начал задумываться над темой диплома и искал проект, который был бы интересен мне, и при этом в нем присутствовала некоторая новизна. И вот однажды, увидев видео шаробота Rezero, я с друзьями захотел попробовать повторить успех. Кому интересно, что из этого получилось — прошу под кат.


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

Автоматизация лабораторных измерений

Reading time5 min
Views7.5K
Я аспирант института металлофизики, занимаюсь исследованием свойств различных металлов и сплавов. Процесс измерения и анализа, как правило трудоемкий, и требует много рутинной работы. В связи с этим была выполнена автоматизация установки для исследования оптических свойств металлов. О том, как это было, расскажу дальше в публикации.


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

Важные уроки о user experience, полученные при разработке боевого HUD для игры Dreadnought

Reading time14 min
Views13K

Предисловие


Пользовательские интерфейсы (UI) для игр с экшн-геймплеем, таких как Overwatch и Battlefield, уникальны тем, что обязаны предоставлять игроку всю критически важную игровую информацию, в то же время не отвлекая его от игрового процесса. В этой статье я опишу уроки о user experience, полученные мной при создании боевого HUD для игры Dreadnought. По большому счёту, это эссе подробно рассматривает способы модификации широко известных подходов к анализу паттернов user experience, таких как закон Фиттса, для их использования в HUD экшн-игр.
Читать дальше →

Математика для искусственных нейронных сетей для новичков, часть 1 — линейная регрессия

Reading time8 min
Views157K
Оглавление

Часть 1 — линейная регрессия
Часть 2 — градиентный спуск
Часть 3 — градиентный спуск продолжение

Введение


Этим постом я начну цикл «Нейронные сети для новичков». Он посвящен искусственным нейронным сетям (внезапно). Целью цикла является объяснение данной математической модели. Часто после прочтения подобных статей у меня оставалось чувство недосказанности, недопонимания — НС по-прежнему оставались «черным ящиком» — в общих чертах известно, как они устроены, известно, что делают, известны входные и выходные данные. Но тем не менее полное, всестороннее понимание отсутствует. А современные библиотеки с очень приятными и удобными абстракциями только усиливают ощущение «черного ящика». Не могу сказать, что это однозначно плохо, но и разобраться в используемых инструментах тоже никогда не поздно. Поэтому моей первичной целью является подробное объяснение устройства нейронных сетей так, чтобы абсолютно ни у кого не осталось вопросов об их устройстве; так, чтобы НС не казались волшебством. Так как это не математический трактат, я ограничусь описанием нескольких методов простым языком (но не исключая формул, конечно же), предоставляя поясняющие иллюстрации и примеры.

Цикл рассчитан на базовый ВУЗовский математический уровень читающего. Код будет написан на Python3.5 с numpy 1.11. Список остальных вспомогательных библиотек будет в конце каждого поста. Абсолютно все будет написано с нуля. В качестве подопытного выбрана база MNIST — это черно-белые, центрированные изображения рукописных цифр размером 28*28 пикселей. По-умолчанию, 60000 изображений отмечены для обучения, а 10000 для тестирования. В примерах я не буду изменять распределения по-умолчанию.
Читать дальше →

Пример расчета робастного контроллера (H-infinity control)

Reading time8 min
Views11K
Что такое робастный контроллер и зачем нам усложнять себе жизнь? Чем нас не устраивает стандартный, всеми узнаваемый, ПИД-регулятор?

Ответ кроется в самом названии, с англ. «robustness» — The quality of being strong and not easy to break (Свойство быть сильным и сложно сломать). В случае с контролером это означает, что он должен быть «жестким», неподатливым к изменениям объекта управления. Например: в мат. модели DC мотора есть 3 основных параметра: сопротивление и индуктивность обмотки, и постоянные Кт Ке, которые равны между собой. Для расчета классического ПИД регулятора, смотрят в даташит, берут те 3 параметра и рассчитывают коэффициенты ПИД, вроде все просто, что еще нужно. Но мотор — это реальная система, в которой эти 3 коэффициента не постоянные, например в следствии высокочастотной динамики, которую сложно описать или потребуется высокий порядок системы. Например: Rдаташит=1 Ом, а на самом деле R находиться в интервале [0.9,1.1] Ом. Так во показатели качества в случае с ПИД регулятором могут выходить за заданные, а робастный контроллер учитывает неопределенности и способен удержать показатели качества замкнутой системы в нужном интервале.
Читать дальше →

Разработка первой игры [на Unity3D]

Reading time10 min
Views97K
Когда-то я пошел на ПОВТ (можете вставить свою специальность в IT) для того чтобы узнать как писать игры. Хотя обучение и было несколько отдалено от интересующей тематики, оно принесло фундаментальные знания, без которых было бы очень тяжело. Дальнейшая после выпуска работа в нескольких компаниях только затягивала в энтерпрайз, отдаляя от геймдева. Но, время от времени, покупая новую игру, или наблюдая за разработкой очередного тайтла, возникает очень навязчивая идея — «Хочу этим заниматься!».

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

За последний проект я взялся очень крепко и довел до стадии релиза.

В данной статье хотелось пройти по базовым этапам создания новой игры, с изрядной долей субъективного мнения. Я не буду углубляться в детали реализации и код — больше хотелось поделиться своим опытом и помочь тем, кто вынашивает свои идеи, но не предпринимает дальнейших шагов. Если вы готовы, то
Добро пожаловать!

Краткая напоминалка Демиурга

Reading time2 min
Views5.6K
Пока мечтаешь
  • Сеттинг — это идея, а идея ничего не стоит. Чего-то стоит РЕАЛИЗАЦИЯ сеттинга в рамках конкретного продукта. Разрабатывай тот сеттинг, который можно реализовать.
  • Выбери и оцени АУДИТОРИЮ. Все равно оцени! Да понятно, что будешь делать для самого себя и ближайшего окружения. Ничего, когда начнутся продажи, еще пожалеешь, что ты не сорокалетняя домохозяйка и не пятилетний ребенок.

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

Каким бывает курсив и как его использовать: 12 практических советов

Reading time7 min
Views27K
Мы уже писали о том, что типографика и ее подбор оказывают большое влияние на качество почтовой рассылки в частности (и жизни вообще). Разумеется, при выборе основного шрифта для письма нужно ориентироваться на его читабельность (о том, какие шрифты и их характеристики наиболее популярны у известных брендов, создающих почтовые рассылки, мы рассказывали здесь).

Однако, как и в любом качественном тексте, в рассылке важно расставлять акценты – в том числе и визуальные (почему это так важно и как это сделать, читайте в этом топике). С подобной задачей может отлично справиться курсив, о котором и пойдет речь в материале ресурса Typogrpaphy.com — мы представляем вашему вниманию его адаптированный перевод.




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

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

Автоматический определитель электронных компонентов

Reading time3 min
Views165K


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

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

Делаем горячий стол для 3D принтера MC2

Reading time3 min
Views27K


В предыдущей статье я писал о печати пластиком ABS на холодном столе 3D-принтера МС2 от Мастер Кит.

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

Многоканальный тестер сервоприводов с индикатором своими руками

Reading time6 min
Views23K
Здравствуйте!

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

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

Дешевая STM32 плата + Arduino IDE UPD 17.08.2017

Reading time7 min
Views389K
image

Хотите прокачать ваши Arduino проекты? Заставить их работать быстрее, измерения и регулировку сделать точнее, ну и добавить баги(с новыми девайсами они неизбежны). Тогда эта статья для Вас.

Arduino тема всё больше захватывает умы человечества, но рано или поздно мы встречаемся с тем, что нам чего-то не хватает, например бюджета/размеров/пиновпортов/разрядности/производительности… Как говорил один мудрый человек — «Кто хочет, тот ищет возможности, кто не хочет — ищет причины».

Хорошие люди это понимают, и потихоньку начинают приобщать STM32 к ардуино теме, ибо восьмибитные AVR микроконтроллеры, на которых основано немало ардуино плат, не всегда могут справиться с поставленными задачами.

Краткое изложение данной статьи в видео формате:


Тыц

STM32F103C8T6 — делаем осциллограф. Часть 3

Reading time4 min
Views64K
Третья часть (первая и вторая) про то как я делаю осциллограф из отладочной платы ценой менее $3. Демонстрационное видео работы:

А описание некоторых ключевых особенностей под катом.

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

Information

Rating
Does not participate
Location
Таллин, Эстония, Эстония
Date of birth
Registered
Activity