Обновить
128K+

3D-графика *

It's time to render!

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

Как мы четыре раза неправильно чинили мерцание при рендеринге 4,4 миллиона полигонов на wgpu

Уровень сложностиСложный
Время на прочтение8 мин
Охват и читатели6K

Уже год мы небольшой командой пишем на Rust + wgpu редактор топологий интегральных схем — что-то вроде KLayout, только с прицелом на российский рынок. Команда — три человека. Я в роли CTO направляю архитектуру и принимаю основные технические решения. История ниже — про одну такую серию решений, которую я завёл в тупик четыре раза подряд, прежде чем мы поняли, в чём была ошибка.

Тестовый дизайн у нас — Caravel SkyWater SKY130, открытый чип на ~4,4 миллиона полигонов, 1014 уникальных ячеек и 22 уровня иерархии. Полный GDS-файл — 278 МБ.

Первая попытка отрендерить это на экране показала: всё работает, всё на месте. Только мерцает. Не «иногда подёргивается» — а так, что смотреть невозможно. Любой zoom или pan превращал картинку в стробоскоп: половина чипа есть, половина пропала, через кадр — наоборот.

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

Читать далее

Новости

Порт классической программы 3D Movie Maker для Linux

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

А вы знали, что теперь можно нативно запускать Microsoft 3D Movie Maker в Linux? В течение последних полутора лет я работал над 3DMMEx — моим портом исходников 3D Movie Maker. Одной из целей моего форка была портируемость. Недавно проект достиг важного этапа: теперь он компилируется и запускается в Linux, благодаря чему 3DMMEx стал первым из известных форков 3D Movie Maker, работающих вне Windows! В этом посте я расскажу о некоторых из трудностей, с которыми я столкнулся при портировании на новую платформу написанного тридцать лет назад мультимедийного приложения.

Читать далее

Используем фотограмметрию для распознавания и геолокации объекта

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

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

Задача: В системе координат, для которой известны GPS координаты (обозначена на рисунке красным цветом) определить расстояние и вектор направления для объекта, обозначенным на рисунке желтым крестиком. Затем, соответственно определить GPS координаты этого объекта.

Читать далее

Пишем Third Person Controller на MonoGame. Часть I

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

В этой серии туториалов мы реализуем простой Third Person Controller на базе MonoGame.

Серия рассчитана на читателей, уже знакомых с основами MonoGame и 3D-графики.

Читать далее

Как устроены world models, что показал Google на прошлой неделе и где это меняет gamedev и робототехнику

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

Google показала Project Genie в новой фазе: теперь генеративный 3D-мир можно привязывать к реальным координатам Google Street View. Это уже не просто видео и не просто красивая демка, а полноценная world model, в которой робот может тренироваться в виртуальном Лондоне, Нью-Йорке или Токио, не выходя из дата-центра.

В статье разбираю, чем world models отличаются от video generation, как устроен Genie 3 под капотом, что уже используют Waymo и Google, и почему эта технология важна не только для робототехники, но и для gamedev. Отдельно смотрим, как связка Genie + Unity MCP + Blender MCP может превратить генерацию миров в рабочий production-пайплайн.

Читать далее

Модификаторы в Blender: осваиваем Boolean

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели17K

Я хочу поделиться некоторым опытом 3D-моделирования, который кажется мне очень важным и полезным при разработке объектов под трёхмерную печать. Расскажу о нескольких приёмах автоматизации моделирования с использованием модификаторов и «многослойных» булевых операций с 3D-объектами. Статья пригодится новичкам.

Читать далее

MonoGame — игровой движок для тех, кто любит изобретать велосипеды

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

При создании новой игры, одним из первых вопросов является выбор игрового движка.

Основные кандидаты у всех на слуху: Unity, Unreal Engine и Godot.

Но кроме них существует ещё немало движков второго эшелона, про которые мало кто знает.

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

Читать далее

Kwayk: как я сделал Quake на Qt Quick3D и прикрутил физику из Death Stranding 2

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

Получится ли сделать полноценную 3D-игру на Qt Quick3D?

Именно такой вопрос у меня возник, когда я начал изучать Quick3D. Казалось бы, рендер и партиклы есть, базовая физика в лице Quick3D Physics тоже присутствует. Пример CharacterController из Qt указывал на то, что проблем быть не должно.

Но хотелось проверить это самому на чём-то реальном.

Поскольку моделлер и художник из меня никакой, да и в геймдеве опыта у меня меньше нуля, я решил переписать Quake — любимую игру своего детства. В ней я провёл сотни (тысячи?) часов, играя в мультиплеер на бесплатных серверах МТУ-Информ через модем US Robotics 33600.

В итоге получился проект Kwayk — попытка переписать Quake на Quick3D.

Читать далее

MaterialX — что, куда и зачем

Уровень сложностиПростой
Время на прочтение19 мин
Охват и читатели6.1K

В этой небольшой заметке хотелось бы рассказать о технологии MaterialX. Что это такое, из чего состоит, как этим пользоваться, куда можно прикладывать применять. Да и вообще, как с этим жить. Сразу стандартные ссылки: официальный сайт, репозиторий на GitHub. И тоже сразу предупреждаю - никакого ИИ, генеративных моделей, агентов и прочей шалупени. Ну если только немного в целях насмешки. А так - только старая добрая компьютерная графика. И никакого телеграмм-канала тоже. Говорю же, олдскул.

Читать далее

Препарируем графическую подсистему Windows. Протокол SPICE в современном графическом стеке, часть 2

Уровень сложностиСложный
Время на прочтение20 мин
Охват и читатели7.7K

Мы продолжаем увлекательное путешествие по миру удалённого доступа. В предыдущей части заглядывали под капот протокола доставки рабочего стола SPICE, а сейчас на операционный стол попала великая и ужасная ОС Windows - точнее, её графическая подсистема. Заглянем в её недры и окунёмся в её философию и историю развития. И заодно найдём интересные параллели в Linux.

Это вторая часть цикла про протокол SPICE и то, как он вынужден работать в современных условиях. Наша конечная цель - создать пилот стримингового агента для виртуальной машины на ОС Windows.

Приглашаю под кат всех, кто работает или сталкивается с системами виртуализации, с протоколом SPICE, с виртуальными машинами в принципе; кто интересуется такими темами как удалённый доступ и компьютерная графика; да и вообще всех любознательных!

В бездну виндового угнетения

Трезвый взгляд на нейронный рендеринг от NVIDIA и превью DLSS 5

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

Мартовский анонс DLSS 5 стал настоящей лакмусовой бумажкой. Вся «аналитика» так называемых лидеров мнений сводилась к сбору фактов и мнений под заранее заданную теорию. Просмотры крутятся, лайки мутятся, а вводишь ты свою аудиторию в заблуждение или нет — вообще плевать.

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

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

Читать далее

Изнанка Remote Desktop. Протокол SPICE в современном графическом стеке, часть 1

Уровень сложностиСложный
Время на прочтение24 мин
Охват и читатели7.5K

Вы когда‑нибудь пользовались виртуальной машиной в Linux? Весьма вероятно, что это был QEMU/KVM + SPICE.

Виртуальные машины на spice://localhost:5900 работают достаточно бодро, тогда как подключение по сети может вызвать самые разные эмоции. Причиной тому является специфическая архитектура, которая идёт вразрез с современными диспетчерами среды рабочего стола. И вялая поддержка протокола open‑source сообществом.

Но нас, безбашенных русских инженеров, это нисколько не останавливает! Открываю цикл статей, где мы заглянем внутрь протокола SPICE и графической подсистемы Windows, чтобы провести увлекательный экскурс и разобраться в деталях. После чего создадим пилот нового решения — стриминговый агент для виртуальной машины на ОС Windows.

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

Приглашаю под кат всех, кто работает или сталкивается с системами виртуализации, с протоколом SPICE, с виртуальными машинами в принципе; кто интересуется такими темами как удалённый доступ и компьютерная графика; да и вообще всех любознательных.

Поехали!

Имитация 3D-персонажей в 2D-движке

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

Я всегда был фанатом шутеров с видом сверху. Hotline Miami и по сей день остаётся моей любимой инди-игрой, а недавно я решил проиграть в её духовную наследницу — OTXO.

Он всегда был моим любимым жанром. Моя первая «серьёзная» игра, Alien Killer (написанная на Flash, поэтому сегодня в неё практически не поиграешь), была шутером с видом сверху, вдохновлённым старой игрой Net YarozePsychon.

В этой статье я расскажу, как разработал похожий на трёхмерный top down shooter без 3D-движка.

Читать далее

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

Как я собрал Telegram-бота и игру с Codex

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

Я поставил себе два челленджа.

Первый — собрать что-то связанное с финтеком, чтобы не терять форму в продуктовой логике: расходы, чеки, категории, аналитика, привычка учитывать деньги.

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

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

Логика такая: сначала можно добавить один чек сразу. Потом включается игровая механика — чтобы сканировать дальше, нужно поиграть. За каждые 9000 метров в гонке или за каждые 3 победы в файтинге открывается новый скан. Так полезное действие, то есть учет расходов, связывается с игровым действием: проехал, победил, заработал прогресс, получил возможность снова распарсить чек.

Читать далее

«ECS — like» вектор на с++

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели15K

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

И не смотря на их всеобъемлющую вариативность, в жизни встречаются ситуации когда один вектор не может решить задачу. Точнее может, но через костыли...

О чем я?

Читать далее

BIM-технологии в проектировании зданий

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

Аббревиатурой от словосочетания Building Information Modeling (принятого в англоязычных странах термина) обозначается инновационный подход к проектированию строений. Его основную суть полностью передает перевод – информационное моделирование зданий. О патентах и свидетельствах на эти системы мы сегодня и поговорим. 

Читать далее

JavaScript Shader Language или JSSL

Уровень сложностиСложный
Время на прочтение15 мин
Охват и читатели11K

Генератор GLSL-кода для WebGL, позволяющий писать шейдеры буквально на JavaScript с некоторыми условностями, используя все удобства IDE, такие как рефакторинг, подсветка синтаксиса, автокомплит и проверка на ошибки, а в математических выражениях использовать обычные JS операторы: +, -, *, /, =, +=, -=, *=, /=, ++, --.

Читать далее

Давайте объединим линейную и геометрическую алгебры. Часть 2. Матрица Якоби

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

Привет Хабр!

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

Читать далее

Новинки КОМПАС-3D v24 Home

Уровень сложностиСредний
Время на прочтение31 мин
Охват и читатели15K

В 2026 году выйдет 25-ая версия коммерческого КОМПАС-3D, уже сейчас её можно попробовать в рамках открытого бета-тестирования. А в этой статье рассказываем о новинках 24-й версии системы КОМПАС-3D Home для любительского 3D-моделирования и домашнего использования. Мейкеры, умельцы, 3D‑печатники, домашние мастера и блогеры могут воспользоваться всеми возможностями профессиональной САПР.
Что же нового появилось в КОМПАС-3D v24 Home?

Узнать о новинках

Моделирование резьбы для 3D печати

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

Содержание статьи:

1. Введение (о чём статья).

2. Виды резьбовых соединений.

3. Что необходимо учитывать при моделировании для дальнейшей печати.

4. Подготовка среды для моделирования (подключение модуля для Компаса 3D).

5. Конкретный алгоритм действий для PLA и PETG.

Читать далее
1
23 ...