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

Работа с 3D-графикой *

It's time to render!

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

Портал, манулы и мячи: опыт разработки для Apple Vision Pro. Часть 1

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

В статье описан мой опыт разработки мини-игр для Apple Vision Pro в условиях жёсткого ограничения во времени.

Расскажу, с какими сложностями я столкнулся в ходе работы с 3D-моделями, и поделюсь способами их преодоления. Лайфхаки для упрощения работы с RealityViewContent и Reality Composer Pro прилагаются.

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

Новости

Реализация алгоритма двумерной упаковки Skyline

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

Упаковка 2D-прямоугольников в прямоугольники большего фиксированного размера необходима в большинстве мультимедийных проектов. В программировании GPU изменение текстур (binding) — затратный процесс. Поэтому при рендеринге текста не стоит использовать по одной текстуре на глиф, вместо этого желательно упаковать глифы в единую текстуру, называемую атласом. В 2D-играх содержащие спрайты атласы называются листами спрайтов (spritesheet). Листы спрайтов также используются для веб-сайтов, потому что скачивать один большой файл удобнее, чем по одному файлу на каждый значок/логотип.

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

Самым ценным ресурсом из найденных мной стал превосходный обзор Юкки Йулянки. В нём описано четыре типа алгоритмов и их практическая оценка. Выделяются из них два:

MAXRECTS если вы знаете заранее, какие прямоугольники будете упаковывать («офлайн-упаковка»)

SKYLINE если не знаете («онлайн-упаковка»)

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

Именно поэтому я остановился на алгоритме skyline. Он применяется в stb_rect_pack.hfontstash, а значит, и в nanovg.

В этой статье объяснён алгоритм skyline и представлена его реализация. Реализация доступна онлайн и в общественном достоянии (UNLICENSE).

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

Реверс инжиниринг в машиностроении — вперед в прошлое или лучшее не враг хорошего

Время на прочтение4 мин
Количество просмотров946

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

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

Рендеринг текста без текстур

Время на прочтение9 мин
Количество просмотров2.6K

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

Так делает imgui, равно как и все, кто использует stb_truetype. Сам процесс приятно напоминает процесс наборного производства на физических станках.

Причудливо, правильно, но в то же время напряжно.

Если нам нужно просто вывести какое‑то сообщение для дебага? Нет ли какого‑либо более простого метода?

В данной статье я опишу метод бестекстурной отрисовки дебаг‑текста. Вдобавок, отрисовка будет производиться в один вызов draw.

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

Истории

ВКС-дайджест: как плохая связь влияет на репутацию и есть ли на совещании реальные люди

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

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

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

Гексагональная сетка для игр с круглой Землей

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

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

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

Skyrim — и только блеск кожанки в отражении заднего зеркала

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

Доброго времени суток, уважаемые граждане Хабрастана! Сегодня мы вводим всеобщее крепостное избирательное право. Рады вам сообщить, что самая демократичная и народная игра сегодня пожаловала к нам на операционный стол.

Столько лет, столько продаж, столько модов, столько Скайримов, и ни разу - ни одного объяснения, что там происходит внутри.

Лороведы всегда поправляют, что это не пятая часть Скайрима, правильно - Древние Свитки 5: Скайрим(Небесный Край), и следующая часть не будет, называться Скайрим, однако, потом сразу две следующие части называли Скайрим. И так, встречайте, Creation Engine - The Elder Scrolls 5: Skyrim 2.5 штуки.

Купить TES 5: Skyrim - Gachi Edition
Всего голосов 6: ↑3 и ↓30
Комментарии1

ECCV 2024: как это было. Актуальные статьи и главные тренды

Время на прочтение18 мин
Количество просмотров1.1K

Привет! Меня зовут Александр Устюжанин, и я разработчик в команде YandexART. Недавно я побывал в Милане на одной из крупнейших международных конференций по компьютерному зрению — ECCV (European Conference on Computer Vision). В этом году она проходила уже в 18-й раз, и от Яндекса я приехал не один, а в составе целой делегации специалистов по CV из разных команд. Ребята помогли собрать материалы для этой статьи, и по ходу повествования я всех обязательно представлю.

Конференция проходила с 29 сентября по 4 октября. Исследователи подали на ECCV 8585 (!) статей, а прошли отбор 2395 — получается, чуть меньше 30%. Такие масштабные конференции всегда привлекают внимание людей как из академии, так и из индустрии: от больших компаний до стартапов — люди приезжают за новой информацией, нетворкингом и атмосферой большой научной тусовки.

Программа была насыщенной, но при этом комфортной — начинали в 9 утра, заканчивали в 18 — оставалось достаточно времени на активности вне расписания. Конечно, невозможно ознакомиться с тысячами докладов, поэтому мы сверялись с расписанием и заранее решали, кто куда хочет сходить. В статье я поделюсь как своими находками, так и отзывами коллег — благодаря этому, как кажется, обзор получился разнообразным и даёт неплохое представление о том, что происходит в мире CV прямо сейчас.

Поехали!
Всего голосов 12: ↑12 и ↓0+15
Комментарии0

Как я пробовал делать 3D фигурку по своей игре

Время на прочтение3 мин
Количество просмотров3.1K

Начну с того, что сейчас занимаюсь разработкой своей первой, не побоюсь этого слова, серьёзной игры — The Hungry Town.

А сейчас речь пойдёт не совсем об игре.
Сейчас расскажу, как я решил сделать фигурку одного из персонажей The Hungry Town. Хотелось что-то полноценное и детализированное, как с магазинной полки.

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

Корпуса как хобби

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

Всем привет. Меня зовут Игорь Иванович, шутка. Меня зовут Андрей, и я инженер — конструктор. В 2016 году, на волне хайпа майнинга майнеры стали масштабировать свои мощности. Они уже не хотели собирать Риги на каркасах из досочек. Появились корпуса для видеокарт.

А я как раз загорелся желанием изучить что‑то новое и направление изделий
из листового металла показалась интересной. Я начал Проектировать корпуса по фото.

Нашёлся человек, которому хотелось сделать свой корпус. Корпус сделал, нашёл завод, где нарезали, согнули и покрасили.

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

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

Геометрия мягких ячеек

Время на прочтение5 мин
Количество просмотров6.2K

В октябре 2021 года я опубликовал на Хабре статью «Змей и дротик. От михраба до квазикристаллов», в которой кратко рассказал об апериодических мозаиках, в том числе, составленных Роджером Пенроузом и древнеперсидскими архитекторами. Не припомню, обращался ли я после этого в моём блоге к парадоксальным геометрическим проблемам. Но уже в конце октября текущего 2024 года нашлась ещё одна подобная тема, заслуживающая отдельной статьи на Хабре. Подсказал мне эту историю уважаемый Виктор Георгиевич Сиротин @visirok мой давний собеседник, который создал отличный блог на Хабре и размышляет о программировании и о программной архитектуре как о материализации идей — одноимённую группу он также ведёт в Телеграме. Статья же будет об удивительном сходстве между сегментами раковины наутилуса и очертанием мышечных волокон, которое недавно обнаружили венгерские учёные.

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

Как устроены тени в старых 3D-играх

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

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

Бизнесмен: Тени. Становятся ли они темнее, когда накладываются друг на друга?
Хираяма: Не знаю.
Бизнесмен: Я не знаю ещё очень многого... Именно так заканчивается жизнь... Наверно.
Хираяма: Давайте узнаем прямо сейчас.
Бизнесмен: Что?

И они выходят на свет уличного фонаря, чтобы изучить свои тени (сцена целиком).

Хотя Бизнесмен и не видит разницы, Хираяма уверен, что пересекающиеся тени действительно становятся темнее. «Они должны становиться темнее, это логично». Очень сильная сцена.

К сожалению, Хираяма ошибается. Тени не становились темнее. Источник света всего один, и он довольно далеко, поэтому тень — это просто отсутствие света. Не важно, сколько раз перекрыт источник света.

В 3D-видеоиграх же тени — это нечто совсем иное. Очень легко нарисовать тёмное пятно под ногами персонажа и предполагать, что всё остальное освещено. Возможно, Хираяма вспоминал тень-пятно из Metal Gear Solid, которая становится темнее, когда накладывается на другие?

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

Векторизация с помощью Three.js

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

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

В контексте вашего вопроса, если вы преобразуете картинку в векторное отображение с картой высот, это может означать, что вы создаёте векторную графику, которая также включает информацию о высоте или рельефе, что может быть полезно, например, в 3D-моделировании или при создании карт.

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

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

Photoshop для детей: 16 ресурсов для обучения – бесплатные и платные

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

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

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

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

Atlas: Как реконструировать 3D сцену из набора изображений

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

Всем привет! Если вы увлекаетесь 3D-технологиями или просто хотите узнать больше о современных методах создания трехмерных моделей, вам точно стоит прочитать эту статью. Мы погрузимся в метод Atlas — уникальный способ 3D-реконструкции сцены на основе всего лишь 2D-изображений. Вы узнаете, как линейная регрессия и усеченная знаковая функция расстояния (TSDF) могут значительно упростить процесс моделирования, обеспечивая более точные результаты без необходимости использования карт глубины.

Мы рассмотрим ключевые концепции, такие как извлечение признаков с помощью 2D-CNN и превращение их в воксельные объёмы, а также узнаем, как 3D-CNN уточняет эти признаки для более глубокого понимания сцены. Даже если вы не знакомы с терминологией, я постараюсь объяснить всё доступным языком.

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

SolidModelBrowser — удобный просмотр STL, 3MF, OBJ, особенно для тех, у кого завёлся 3D принтер

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

Началась эта история с того, что несколько лет назад я купил 3D принтер. Конечно, по началу не представлял толком, как эта технология работает, и насколько прочными и полезными будут его пластиковые изваяния. Однако, быстро натренировавшись и отрегулировав эту машинку, я был удивлён и вполне удовлетворён качеством пластиковых изделий, спайкой слоёв и точностью их геометрических размеров. Конечно, в последствии не обошлось без модернизаций аппарата, но сейчас не об этом.

Печатать игрушки с thingiverse мне, конечно, надоело быстро, да и брал я свой дрыгостол с большим прицелом на техничку. Принтер вскоре стал одной из любимых игрушек, а связка Blender+Cura позволяла лепить модели мелких деталей порой за считаные минуты, отправляя их затем на печать. Сломалось колёсико у дивана - не в магазин же бежать, отломилось какое-нибудь крепление или кронштейн - и уже гудит вентилятор хотэнда. Штырьки, подпятники, элементы механизмов, и конечно, куча всяких баночек и коробочек...

Библиотека STL и 3MF росла. И в какой-то момент стало понятно, что я не помню, в каком файле лежит та или иная деталь. Хоть файлы и имели осмысленные названия на английском, но я просто уже забыл, что и как назвал, и ориентироваться в разрастающейся свалке становилось всё труднее. Нужен был какой нибудь удобный просмотрщик. Вот так и зародился несколько лет назад проект Solid Model Browser.

Приложение создано на платформе WPF и работает под Windows. В окне отображается загруженная модель, панель инструментов-кнопочек, и файловая панель слева, меняющая свою прозрачность по мере её востребованности...

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

Как работает Mesh R-CNN

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

Ну для начала всем привет, в этой статье постараюсь рассказать вам про структуру Mesh R-CNN как он работает, что вообще из себя представляет, также будут сделаны сноски с описанием концепции по генерации 3D объектов. Буду опираться как и уже на существующие статьи, так буду и от себя писать. Возможно будут где то ошибки, потому если заметите, постараюсь исправить.

Вообще для чего нужен Mesh R-CNN, нужен он для того чтобы генерировать 3D объекты на основе изображения. Этот метод построен на фундаменте Mask R-CNN, но с добавлением ветви для предсказания сеток. Это создает начальное представление, которое преобразуется в сетку и уточняется с помощью графовой сверточной сети.

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

SysMocap — очень простой захват движений в 3D с помощью вебкамеры. Как сделать из себя втубера?

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

Большое слово — Mocap


Большинство знает о mocap (захвате движений) из киноиндустрии: чёрный костюм с множеством точек на теле. Однако технологии не стоят на месте, и уже сейчас в домашних условиях для создания развлекательного контента достаточно одной веб-камеры, чтобы полностью захватить движения и преобразовать их в ваш аватар в режиме реального времени. Отличным примером такой технологии является SysMocap. Программа бесплатна, имеет открытый исходный код, работает в реальном времени и не требует предварительной настройки. В данной статье я рассмотрю SysMocap и несколько его аналогов, использующих формат технологии VRM.
Читать дальше →
Всего голосов 43: ↑41 и ↓2+60
Комментарии8

Как использование среды общих данных помогает повысить маржинальность проектной деятельности

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

"Если ты такой умный, то где твои деньги?"

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

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

История одного ядра от Андрея Туманина: «Без нашего ядра всё было бы по-другому»

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

В рубрике «История одного ядра» рассказываем о людях, которые своим трудом и талантом создают историю C3D Labs. Мы поговорили с Андреем Туманиным, руководителем отдела разработки геометрического ядра C3D Modeler, и узнали, как Андрей прошел путь от романтики судостроительной отрасли к руководству командой математиков-программистов ядра.

— Андрей, расскажи, где прошло твоё детство?

Детство прошло в Нижегородской области.

— Мечтал ли ты стать математиком? Или, может, пошел по стопам родителей?

Стать математиком не мечтал, родители тоже к этой сфере не относятся. Мне повезло, у меня в школе были хорошие педагоги по математике — Лилия Михайловна Владимирская и Нина Константиновна Владимирская, которые привили любовь к точным наукам. Разумеется, была склонность к техническим предметам. В целом класса с 8-го я был нацелен на мехмат ННГУ, занимался в заочной математической школе при этом факультете.

— Ты учился на механико-математическом факультете ННГУ им. Лобачевского. Сложно ли было поступить и учиться?

Для меня поступить было сложнее, чем учиться. В студенческие годы жил в общежитии. Первые три курса сосредоточился на учебе, а потом работал. С четвертого курса уже работал.

Читать далее
Всего голосов 5: ↑4 и ↓1+6
Комментарии2
1
23 ...