Как стать автором
Обновить
3.27

Работа с векторной графикой *

SVG и компания

Сначала показывать
Порог рейтинга
Уровень сложности

Как уменьшить вес продуктовой анимации в 400 раз (без AI)

Уровень сложности Средний
Время на прочтение 4 мин
Количество просмотров 9K

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

В статье мы ответим на следующие вопросы: Какой формат анимации с растровыми элементами выбрать для использования в мобильном приложении? Как уменьшить вес файла и не потерять качество картинки? И как со всем этим связаны Lottie-анимации?

Читать далее
Всего голосов 17: ↑13 и ↓4 +9
Комментарии 19

Новости

Станок с ЧПУ резка пенопласта. Руководство

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 25K

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

Читать далее
Всего голосов 25: ↑18 и ↓7 +11
Комментарии 18

Станок с ЧПУ резка пенопласта. Руководство

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 25K

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

Читать далее
Всего голосов 25: ↑18 и ↓7 +11
Комментарии 18

Без углов и стресса: Формула успешного дизайна, или как правильно скруглить внутренние углы фигур

Уровень сложности Средний
Время на прочтение 2 мин
Количество просмотров 2.8K

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

Читать далее
Всего голосов 15: ↑7 и ↓8 -1
Комментарии 8

Истории

Игровая легенда из 90-х: Как работала 3dfx Voodoo «под капотом»? Пишем 3D-приложение с нуля на Glide

Уровень сложности Средний
Время на прочтение 26 мин
Количество просмотров 11K
image


Полагаю, многие мои читатели так или иначе знакомы с такими видеокартами, как 3dfx Voodoo. Эти легендарные графические ускорители из середины\конца 90-х годов был чуть ли не в каждой второй сборке для игр, а о их производительности слагали легенды. До сих пор есть относительно небольшое сообщество фанатов ретро-игр, которые ценят, любят и собирают с цветмета те немногие видеокарты от 3dfx, что остались в СНГ. Однако обзоров на 3dfx Voodoo много, тестов игр — тоже, а вот материала «простыми словами» о его внутренней архитектуре и более того, практической части с написанием 3D-игры практически нет! Недавно я прикупил себе Voodoo 3, и начал зубрить Programmer's Manual с желанием запилить что-нибудь эдакое… Статью я долго и упорно готовил дабы успеть к новому году и сегодня у нас с вами: краткая история компании 3dfx, подробный разбор архитектуры видеочипов 3dfx «под капотом», что должен был уметь программист 3D-графики в 90х и написание 3D-приложения на Glide полностью с нуля. Интересно? Тогда жду вас в статье!
Читать дальше →
Всего голосов 80: ↑79 и ↓1 +78
Комментарии 49

Как создать собственный шрифт

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 8.3K

В этом месяце я решил узнать, как создать шрифт, который буду использовать в своём комиксе hakum. Раньше я рисовал текст в цифре на своём планшете. Результат оказывался хорошим, но иногда трудночитаемым (размер текста часто скакал на одной странице). Мне не хотелось использовать готовый шрифт, поэтому я решил создать собственный на основе своего рукописного текста. Шрифт повысит читаемость текста и сделает его однородным.

Примечание: это моя первая проба создания шрифта. Я не дизайнер, не освоил создание шрифтов в совершенстве и не специалист по программе FontForge. Возможно, существуют способы получше добиться того же результата. В этой статье я опишу свой процесс, который, вероятно, поможет другим начинающим создать свой первый шрифт (для личного пользования). Моя цель заключалась в создании шрифта TTF для применения в веб-публикациях с ограниченным набором символов (без полужирного и курсивного написания).

Читать далее
Всего голосов 21: ↑21 и ↓0 +21
Комментарии 0

АСМОграф — замена Microsoft Visio, MapInfo и в какой-то мере даже AutoCAD

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 4.8K

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

Читать далее
Всего голосов 10: ↑8 и ↓2 +6
Комментарии 24

Как сделать рамку редактирования как в Figma-е

Уровень сложности Простой
Время на прочтение 32 мин
Количество просмотров 416

Привет, хабр. В этой статье я бы хотел рассказать, как построить рамку редактирования, наподобие той, которая есть в редакторах figma, adobe illustrator и во множестве других графических редакторах. В основном рамка редактирования является составной частью графического редактора. Она может изменять расположение объекта, его масштаб и угол поворота.

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 2

Начинаем работать с цифровыми картами (ГИС)

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 6.2K

Обзорная статья, которая поможет разобраться с базовыми понятиями, познакомит с основами, даст общее представление о принципах работы цифровых карт и геоинформационных систем (ГИС). Будет полезно тем, кто только начинает работать с картами и хочет начать в этом разбираться.

Читать далее
Всего голосов 12: ↑10 и ↓2 +8
Комментарии 12

3D видеокарта-«декселератор» из 90-х. Как работала S3 ViRGE «под капотом»?

Уровень сложности Средний
Время на прочтение 13 мин
Количество просмотров 14K
image

Друзья! Многие ли из вас застали такую легендарную видеокарту, как S3 ViRGE? Когда-то этот GPU стоял чуть ли не в каждом втором офисном компьютере: благодаря дешевизне и заявленной поддержке 3D-ускорения, эту видеокарту просто сметали с полок магазинов. Далеко не все могли себе позволить ATI Rage, Riva TNT и уж тем более 3dfx Voodoo и очень разочаровывались в свежекупленной видеокарте, когда пытались поиграть в новомодные игры тех лет. На момент написания статьи, в сети слишком мало материала о том, как работали видеокарты 90-х «под капотом», однако мне удалось найти даташит на видеочип, SDK для программирования 3D-графики специально под него и некоторую документацию. Я решил исправить это недоразумение и начать развивать отдельную рубрику о работе старых видеочипов: начиная от S3 ViRGE и заканчивая GPU PS2 и PSP. Сегодня мы с вами: вспомним о S3 ViRGE, узнаем о том, как работали видеокарты в 90-х годах, затронем 2D и 3D режим и почему они тесно связаны между собой, посмотрим на проприетарное графическое API S3 ViRGE и раскроем причину, почему же этот GPU был таким медленным!
Читать дальше →
Всего голосов 64: ↑62 и ↓2 +60
Комментарии 160

Сам написал, сам погонял: как я написал 3D-гонки «на жигулях» за неделю, полностью с нуля?

Уровень сложности Средний
Время на прочтение 28 мин
Количество просмотров 34K
image

Статьи про инди-разработку игр — это всегда интересно и занимательно. Но статьи про разработку игр с нуля, без каких-либо игровых движков — ещё интереснее! У меня есть небольшой фетиш, заключающийся в разработке минимально играбельных 3D-демок, которые нормально работали бы даже на железе 20-летней давности. Полтора года назад, в мае 2022 года, я написал демку гоночной игры с очень знакомым всем нам сеттингом — жигули, девятки, десятки, и всё это даже с тюнингом! В этой статье я расскажу вам о разработке 3D-игр практически с нуля: рендерер, менеджер ресурсов, загрузка уровней и граф сцены, 3D-звук, ввод и интеграция физического движка. Интересна подробнейшая хаброторная статья о разработке игры с нуля? Тогда добро пожаловать!
Читать дальше →
Всего голосов 157: ↑157 и ↓0 +157
Комментарии 55

Сам написал, сам поиграл: как я написал 2D-игру для Android полностью с нуля, весом менее 1мб?

Уровень сложности Средний
Время на прочтение 20 мин
Количество просмотров 14K
image

Многие программисты так или иначе имеют тягу и интерес к разработке игр. Немалое количество спецов было замечено за написанием маленьких и миленьких игрушек, которые были разработаны за короткое время «just for fun». Большинству разработчиков за счастье взять готовый игровой движок по типу Unity/UE и попытаться создать что-то своё с их помощью, особенно упорные изучают и пытаются что-то сделать в экзотических движках типа Godot/Urho, а совсем прожжённые ребята любят писать игрушки… с нуля. Таковым любителем писать все сам оказался и я. И в один день мне просто захотелось написать что-нибудь прикольное, мобильное и обязательно — двадэшное! В этой статье вы узнаете про: написание производительного 2D-рендерера с нуля на базе OpenGL ES, обработку «сырого» ввода в мобильных играх, организацию архитектуры и игровой логики и адаптация игры под любые устройства. Интересно? Тогда жду вас в статье!
Читать дальше →
Всего голосов 73: ↑72 и ↓1 +71
Комментарии 54

Как показать миллион зданий на карте — и не сломать браузер

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 5.9K

В 2ГИС мы аккумулируем огромное количество геоданных, с которыми взаимодействуют миллионы пользователей ежедневно. Анализируя их, мы можем получить ценную информацию и найти важные идеи для развития городов. Эти данные также полезны организациям.

Чтобы помочь бизнесу и муниципальным организациям, мы решили создать 2GIS PRO — инструмент для GPU-аналитики, с возможностью визуализации огромного количества данных на карте в виде диаграмм и графиков.

Расскажем, как мы получаем такую картинку, как это всё работает под капотом, и посмотрим, на что способен ваш браузер, ведь ему предстоит отображать сотни тысяч объектов одновременно.

Расскажем, как мы получаем такую картинку, как это всё работает под капотом, и посмотрим, на что способен ваш браузер, ведь ему предстоит отображать сотни тысяч объектов одновременно.

Читать далее
Всего голосов 20: ↑20 и ↓0 +20
Комментарии 13

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн

Как начертить диск энкодера (или черчение кодом)

Уровень сложности Средний
Время на прочтение 5 мин
Количество просмотров 2.3K

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

Однако есть языки программирования для черчения. Вот, например, Asymptote: The Vector Graphics Language отличный вариант для авто генерации чертежей.

Читать далее
Всего голосов 14: ↑14 и ↓0 +14
Комментарии 13

Форматы векторной графики. Замена «толстому» SVG

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 13K
Векторизация растровой графики, источник

Все знают стандарт векторной графики SVG (Scalable Vector Graphics). Великая вещь, которая незаменима в веб-дизайне. Но этот формат до сих пор полностью не поддерживается ни в одном браузере по одной простой причине: он невероятно сложный. Если посмотреть на спецификации, там более 200 подпунктов в 27 разделах (около 900 страниц на бумаге). Только оглавление занимает 19 экранов. Мягко говоря, это перебор.

К счастью, SVG — не единственный формат векторной графики. Есть более эффективные и минималистичные альтернативы.
Читать дальше →
Всего голосов 63: ↑60 и ↓3 +57
Комментарии 26

Как сделать внешнюю обводку у полигона

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 3.2K

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

Читать далее
Всего голосов 14: ↑13 и ↓1 +12
Комментарии 5

Преобразуем карты DOOM в SVG для лазерной резки

Время на прочтение 6 мин
Количество просмотров 2.6K
Я много слышал о формате данных классического Doom, поэтому решил написать код на Rust для извлечения его карт и преобразования в векторную графику для лазерной резки.

В статье я опишу процесс: извлечение данных, воссоздание геометрии и вывод SVG для лазерной резки; также я поведаю о геометрическом тупике, в который я с энтузиазмом залез, когда пытался просмотреть результат при помощи bevy.

Читать дальше →
Всего голосов 22: ↑22 и ↓0 +22
Комментарии 1

Обмануть меня не трудно... Я сам обманываться рад

Уровень сложности Простой
Время на прочтение 2 мин
Количество просмотров 5.5K

Начало положено.

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

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

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

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

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

В моих экспериментах было сложно выдавить хоть какие-то эмоции у персонажа. И после многочисленных попыток я ментально устала играть в эту рулетку. 

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

Читать далее
Всего голосов 17: ↑13 и ↓4 +9
Комментарии 21

Как рисовать красивые соединения с помощью SVG

Уровень сложности Средний
Время на прочтение 5 мин
Количество просмотров 12K

Представьте, в вашем проекте есть куча разбросанных по пространству логически связанных элементов, которые (о ужас!) могут свободно перемещаться по пространству. Задача - красиво и наглядно показать пользователю эти связи, чтобы упорядочить представление. В данной статье я покажу нашу реализацию.

Читать далее
Всего голосов 36: ↑36 и ↓0 +36
Комментарии 16

Рисуем верёвку в формате SVG при помощи JavaScript

Уровень сложности Средний
Время на прочтение 8 мин
Количество просмотров 6.9K

Сегодня я расскажу о процессе, который я придумал для преобразования SVG‑контура в векторный рисунок верёвки.

Вы узнаете, как превратить показанный слева контур в верёвку справа:

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

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

Замысел

Взглянув на это фото верёвки, вы заметите, что она состоит из множества переплетённых друг с другом прядей. Визуально они делят верёвку на сегменты. 2D‑проекция каждого сегмента напоминает изогнутый многоугольник.

Наша задача будет заключаться в создании этих многоугольников при помощи JavaScript.

Читать далее
Всего голосов 63: ↑62 и ↓1 +61
Комментарии 2

Вклад авторов