Pull to refresh

Выпускники МФТИ создали создали нейросеть Anix для работы с 2D-анимацией

Reading time1 min
Views2.5K

Выпускники Московского физико‑технического института (МФТИ) создали нейросеть Аnix для работы с 2D‑анимацией, сообщает газета «Известия» со ссылкой на технического директора Аnix Андрея Царева и авторов проекта. Согласно представленной информации, нейросеть по двум имеющимся кадрам, например, начало и конец прыжка, способна отрисовать промежуточные движения персонажа.

Читать далее
Total votes 7: ↑5 and ↓2+3
Comments1

СГТУ подробнее рассказал о своей программе для 3D-проектирования зданий с системой видеонаблюдения по типу Planar 5D

Reading time2 min
Views654

10 апреля этого года Саратовский государственный технический университет имени Гагарина Ю.А. (СГТУ) заявил о разработке конфигуратора для проектирования трёхмерных архитектурных объектов, в том числе зданий промышленных предприятий. Прямых аналогов конфигуратору СГТУ в мире нет, заверил автор проекта Михаил Королёв, отметив, что к косвенным аналогам можно отнести приложение Planar 5D для проектирования помещений и дизайна интерьера в виде 2D и 3D моделей. В ответ на запрос информационной службы Хабра пресс-служба СГТУ прислала скриншоты интерфейса разработанного конфигуратора и подробнее рассказала о нём.

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

Направленное освещение и затенение в 2D-пространстве

Reading time8 min
Views48K

Добрый день, Хабравчане!
Хотелось бы рассказать об одном из способов отрисовки освещения и затенения в 2D-пространстве с учетом геометрии сцены. Мне очень нравится реализация освещения в Gish и Super MeatBoy, хотя в митбое его можно разглядеть только на динамичных уровнях с разрушающимися или перемещающимися платформами, а в Гише оно повсеместно. Освещение в таких играх мне кажется таким «тёплым», ламповым, что непременно хотелось нечто подобное реализовать самому. И вот, что из этого вышло.
Читать дальше →
Total votes 95: ↑94 and ↓1+93
Comments39

2D система освещения для Unity3D, работающая на GPU

Reading time5 min
Views34K


Всем привет. Как известно, Unity3D отсутствует поддержка освещения для 2D игр. В Asset Store можно найти такую систему, но у неё есть один недостаток — она работает на CPU и потребляет весьма много ресурсов (64-4096 рейкастов за кадр на каждый источник света). Поэтому я решил сделать своё освещение, производительности которого хватило бы для мобильных устройств. Для этого вычисления были перенесены на GPU. Получилось что-то похожее свет Terraria или Starbound.
Под катом демо, описание работы и куча картинок
Total votes 49: ↑41 and ↓8+33
Comments20

Трюк с тригонометрией

Reading time4 min
Views28K

Скорее всего, вам известны следующие соотношения еще со школы:


$\sin(\alpha + \beta) = \sin\alpha \times \cos\beta + \cos\alpha \times \sin\beta \\ \cos(\alpha + \beta) = \cos\alpha \times \cos\beta - \sin\alpha \times \sin\beta$


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


Читать дальше →
Total votes 99: ↑96 and ↓3+93
Comments28

Двумерная САПР DraftSight удачно дополняет системы 3D-моделирования

Reading time2 min
Views1.9K

Young Industries, Inc. — американский производитель конвейеров для сыпучих материалов с более чем семидесятилетним опытом работы на рынке промышленного оборудования. Инженеры компании постоянно ищут оптимальные методы разработки промышленного оборудования.

Большую часть проектно-конструкторских работ инженеры Young Industries выполняют в 3D, в программном комплексе SOLIDWORKS®. Но есть задачи, например корректировка чертежей из прошлых проектов, оформление отдельных листов чертежей и схем, которые быстрее и проще выполнить в 2D.

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

В поисках перспективных теней для roguelike

Reading time3 min
Views3.9K


Уважаемые Хабровчане, представляю вашему вниманию продолжение изысканий на тему поиска подходящих теней для 2D рогалика.

Данный пост является сиквелом публикации, своеобразной работой над ошибками и дальнейшее развитие идеи.
Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments16

Отложенный Alpha blending

Reading time6 min
Views10K
В этой статье я хочу поговорить о методах смешивания растеризуемой геометрии. Классические модели смешивания полупрозрачных объектов — Alpha, Additive, Multiplicative — объединяет один и тот же принцип отрисовки: последовательно рисуем один примитив за другим, смешивая получаемые на выходе фрагментного шейдера пиксели с тем, что находится в текущем буфере. Каждый новый примитив обновляет область буфера, в которую рисуется; в случае с альфа-смешиванием объекты, которые находятся выше, заслоняют ранее отрисованные. Но что если хочется что-то сделать с группой объектов, рисуемых поверх сцены, — например, обрезать их по маске или подсветить? Тут сразу в голову приходят два решения: или внести изменения в их материал (т.е. изменить шейдер, расширить набор текстур), к примеру, добавив проекцию еще одной текстуры, которая будет отвечать за маску прозрачности. Однако если у нас много разношерстных объектов, менять каждый уникальный материал неудобно и чревато ошибками. Второй вариант — нарисовать все интересующие нас объекты в отдельный полноэкранный таргет и рисовать уже его на финальную сцену. Тут мы можем сделать с его содержимым все, что захотим, но это требует выделения лишней памяти и, что самое неприятное, — переключения рендер таргетов. Это не самая «дешевая» операция на мобильных устройствах, которую будет необходимо выполнить дважды. А если захочется вот так работать с несколькими слоями?


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

Я анимирую тентакли и мне платят за это деньги

Level of difficultyEasy
Reading time16 min
Views60K
Видели когда-нибудь в интернете странную, сексуализированную или даже оскорбительную рекламу какой-нибудь мобильной игры? Задумывались о том, кто же сделал это непотребство? Ну так вот, это была я.

image

Сегодня я хочу рассказать вам о том, как: дошла до жизни такой, как вы можете дойти до жизни такой же, расскажу про саму работу и дам несколько советов тем, кто хочет «вкатиться» в мир сладкой анимации.
Читать дальше →
Total votes 193: ↑186 and ↓7+179
Comments108

Алгоритм определения попадания точки в контур на основе комплексного анализа

Reading time4 min
Views130K
Привет всем Хабра людям. Хочу представить уважаемым читателям пример, когда сухая и далекая от жизни в нашем понимании высшая математика дала не плохой практический результат.

image
Читать дальше →
Total votes 83: ↑80 and ↓3+77
Comments100

Начало работы с игровым движком Rungine

Reading time5 min
Views3.7K
Runner Engine (сокращенно Rungine) — это новый 2D/3D движок для создания игр и мультимедийных приложений. Он обладает гибким набором инструментов, которые способны помочь разработчику увеличить скорость разработки, но они пока находятся в доработке. В состав движка входят: Core (ядро с собственным набором утилит), GUI, Graphic2D. В данный момент Runner Engine поддерживает только DirectX9. Идет работа над поддержкой OpenGL. В дальнейшем планируется продолжить работу над поддержкой DirectX10 и DirectX11.

Поддерживаемая платформа: Windows

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

Инициализация:

Первым шагом необходимо подключить dll движка:
#include "..\..\RunnerEngine\Runner.h"
#pragma comment(lib, "../../Bin/Runner.lib")


Объявляем девайс:
RDevice rdevice;
//Для инициализации необходимо вызвать метод Create:
if(!rdevice.Create(800, 600, Mode::Windowed, API::Direct3D9)) {
   return 0;
}


Весь рабочий цикл осуществляется следующим образом:
//рисуем, пока окно не закрыто
while(rdevice.EnterMsgLoop(true)) {
   rdevice.Clear();//очищаем поверхность окна
   //начало рисования графики
   if(rdevice.BeginScene()) {
        //рисуем картинку внутри окна
        rdevice.EndScene();//конец рисования
        rdevice.Present();//отображаем все нарисованное
   }
}

Все. Инициализацией мы разобрались. Теперь можно вывести на экран картинку или нарисовать изображение.

Читать дальше →
Total votes 31: ↑24 and ↓7+17
Comments43

Артефакты в 2D-играх — на границе текстуры

Reading time2 min
Views6.8K
Вдохновившись статьей «У прозрачных пикселей тоже есть чувства или артефакты png'шек с прозрачностью», решил рассказать еще о некоторых проблемах, которые могут возникнуть при разработке 2D-игры.

В этой статье я хотел бы рассказать о нетривиальных проблемах, с которыми мне пришлось столкнуться при разработке 2D-игр, связанных с фильтрацией текстур.

Все эти артефакты возникают при включенной фильтрации текстур. А также масштабировании, повороте текстуры или если она имеет дробные координаты.
Читать дальше →
Total votes 37: ↑28 and ↓9+19
Comments1

Сам себе Linux смартфон: Как я выкинул Android и написал свою прошивку с нуля

Level of difficultyMedium
Reading time17 min
Views68K
image

К огромному сожалению, старые смартфоны всё чаще и чаще находят своё пристанище в мусорном баке. К прошлым, надежным «друзьям» действует исключительно потребительское отношение — чуть устарел и сразу выкинули, словно это ненужный мусор. И ведь люди даже не хотят попытаться придумать какое-либо применение гаджетам прошлых лет! Отчасти, это вина корпораций — Google намеренно тормозит и добивает довольно шустрые девайсы. Отчасти — вина программистов, которые преследуют исключительно бизнес-задачи и не думают об оптимизации приложений совсем. В один день я почувствовал себя Тайлером Дёрденом от мира IT и решил бросить вызов проприетарщине: написать свою прошивку для уже существующего смартфона с нуля. А дабы задачка была ещё интереснее, я выбрал очень распространенную и дешевую модель из 2012 года — Fly IQ245 (цена на барахолках — 200-300 рублей). Кроме того, у этого телефона есть сразу несколько внешних шин, к которым можно подключить компьютер или микроконтроллер, что даёт возможность использовать его в качестве ультрадешевого одноплатника для DIY-проектов. Получилось ли у меня реализовать свои хотелки? Читайте в статье!
Читать дальше →
Total votes 250: ↑248 and ↓2+246
Comments137