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

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

It's time to render!

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

Введение в трассировку лучей: простой метод создания 3D-изображений. Часть 3 — реализация алгоритма трассировки лучей

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

Предыдущая глава

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

for (int j = 0; j < imageHeight; ++j) {
for (int i = 0; i < imageWidth; ++i) {
// вычисляем направление основного луча
Ray primRay;

...

Отрендерить статью
Всего голосов 8: ↑7 и ↓1+6
Комментарии0

Введение в трассировку лучей: простой метод создания 3D-изображений. Часть 2 — прямая трассировка

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

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

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

Введение в трассировку лучей: простой метод создания 3D-изображений. Часть 1 — как создается изображение?

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

Введение в трассировку лучей: простой метод создания 3D-изображений
Часть 1 - как создается изображение?

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

Отрендерить статью полностью
Всего голосов 11: ↑8 и ↓3+5
Комментарии9

Итак, вы решили перейти с Unity на Unreal Engine

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

Наверно, произошло что-то плохое, и теперь вы читаете эту статью. Сочувствую! Давайте начнём по порядку.

Меня зовут Джо Уинтергрин, я генералист Unreal Engine. Можете взглянуть на все мои ресурсы. В статье я приведу полезную информацию для новичков в Unreal, имевших опыт работы с Unity.

С чего начать?

• Прочитайте документацию по Gameplay Framework. Всю целиком! У Unreal есть Gameplay Framework. Прочитайте документацию и освойтесь в ней. Это правильное решение при разработке любого типа игры. Не пропускайте её. Держите её под рукой, чтобы перечитывать.

• Влейтесь в сообщество. Это учетверит вашу скорость обучения. Есть Discord для бывших Unity-разработчиков Алекса Роуза и есть мой Discord.

• Почитайте Epic Online Learning Library. Вот она. Делайте упор на статьи, написанные Epic Games.

• Скачайте последнюю версию Unreal Engine из Epic Games Launcher. На данный момент это 5.3. В общем случае всегда стоит начинать проект на самой новой версии. Кроме того, нет никаких причин больше пользоваться UE4 — UE5 лучше и имеет все возможности UE4.

• Изучите документацию «Unreal Engine for Unity Developers» компании Epic. Это хороший способ начать. Вот она.

• Прочитайте статью целиком. Я знаю, здесь много текста, но не ничего не пропускайте! Всё это очень важная и точная информация! В Интернете много некачественных сведений об Unreal, но не здесь. Здесь всё правильно.

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

Истории

Летадло, предисловие

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

Эта статья, мой конспект, сигнальный флаг, или очередная тренировка изложения своих мыслей? В силу обстоятельства, прикоснулся к unreal, замечательный инструмент в "умелых руках", много од написано сему творению человеческой мысли, так что взаимодействие с ним большая честь для разработчика. Создание игр, визуализация, исследования, много всего интересного заложено в этот проект с многолетней историей развития. Открытость и большое сообщество, существенно понижает порог вхождения, конечно тривиальность писать такое, каждый второй инструмент с такими характеристиками, но это говорит о общей высокой планке нынешних инструментов для реализации любых техно извращённых фантазий. Невероятное стечение обстоятельств, получаю деньги за то что учусь взаимодействовать с этим инструментом.

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

C3D Modeler – основа геометрического ядра C3D

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

Андрей Туманин представляет обзор направлений развития и точки роста геометрического ядра C3D Modeler.

C3D Modeler, или просто геометрическое ядро C3D, – это полностью отечественное программное решение, которое выполняет все возможные вычисления для построения геометрических объектов любой сложности и предоставляет инструменты для проведения операций над этими геометрическими объектами. Основным представлением в геометрическом ядре является граничное представление, однако, наряду с граничным представлением, поддерживаются полигональное представление и ряд операций с ним. Тела на основе граничного представления, полигональные объекты, а также каркасы могут обладать деревом построения, которое позволяет перестраивать геометрические объекты с новыми параметрами. Наряду с классическими направлениями для геометрического моделирования, такими, как каркасное, поверхностное и твердотельное моделирование, в геометрическом ядре C3D интенсивно развиваются направления прямого и полигонального моделирования. Также в составе ядра есть уникальный модуль моделирования тел из листового металла. При этом нашей главной ценностью является команда, которая обладает более чем 20-летним опытом и высоким уровнем экспертизы в геометрическом моделировании.

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

Я сделал редизайн проекта годовой давности и теперь горжусь собой

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

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

Почитав обоснованную критику от знающих свое дело людей, а не от мамкиных: «Я и сам такое бы сделал быстрее и качественнее, но не умею», вспомнил, что сейчас в моде редизайн всего и вся, а если точнее, то был в моде где‑то год — два назад. Успешно засунув этот факт за скобки, я в слоупочном режиме все равно принял для себя решение ворваться в данную тусовку и устроить свой никому не нужный РЕДЕЗИГНДВИЖ. Разбив данную задачу на этапы, приступил к работе. Собственно, об этом всем и ни о чем я вам сейчас и расскажу.

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

Почему одна из самых популярных программ по BIM моделированию названа REVIT?

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

Недавно в одном из чатов вновь наткнулся на шутку о схожести названия известных отечественных витаминов Ревит и американской системы информационного моделирования Revit. Есть ли основания полагать, что известные витамины повлияли на имя популярного программного обеспечения. Давайте попытаемся разобраться ).

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

Как я разбирал нестандартный формат 3D-моделей, чтобы показывать Лего у себя на сайте

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

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

Я перепробовал несколько редакторов 3D-моделей Лего (моим главным условием была работа на Linux, либо в вебе), и остановился на онлайн-редакторе Mecabricks. Но, уже перенеся туда несколько из моих творений, понял, что с задачей «показывать всем друзьям» всё будет сложнее: у Mecabricks довольно скудные возможности экспорта, а его собственный формат с расширением .zmbx понимает только он и его плагин для Blender.

Поэтому я решил посмотреть, как этот формат устроен, и написать свой конвертер во что-то более общепринятое. В качестве целевого формата я выбрал glTF, а инструмент незатейливо назвал zmbx2gltf.

В этой статье я расскажу, как постепенно разбирал этот непонятный .zmbx, про устройство и преимущества glTF как формата передачи 3D-ассетов между разными инструментами, и про то, какие проблемы я решал, конвертируя одно в другое.
Читать дальше →
Всего голосов 87: ↑87 и ↓0+87
Комментарии11

Перемещение частиц по 3D-геометрии

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

В данной статье я постараюсь рассказать каким образом можно реализовать движение объектов по поверхности 3D геометрии.

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

Создаём с нуля своё BIM-приложение для просмотра моделей IFC формата в браузере на основе open-source библиотеки IFC.js

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

Приложение, о котором пойдёт речь, применимо в архитектурно-строительной области. С развитием информационных технологий, технологий строительства и производства, а также экономической составляющей, появилась необходимость в более эффективном и комплексном подходах в управлении инвестиционно-строительными проектами, что поспособствовало появлению и формированию ТИМ BIM-технологии.

С тенденцией перехода сервисов в облачные решения, начали появляться open-source библиотеки или бесплатные программы по работе с BIM-моделями в web, такие, как xeokit, IFC++, IfcOpenShell и др., а соответственно и BIM-стартапы, преследующие цели OpenBIM или закрывающие конкретные задачи.

IFC.js — это библиотека JavaScript для работы с моделями IFC формата в браузере.

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

VulkanSceneGraph: Введение в графическую библиотеку

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

Возможно, кто-то из читателей помнит мою серию публикаций о графической библиотеке OpenSceneGraph. Уже на тот момент, в общем-то было понятно, что использование OpenSceneGraph в 2018 году мало оправдано из-за того, что OpenGL, на котором основан OpenSceneGraph потихоньку сдает свои позиции. В феврале 2016 года орган по стандартизации OpenGL Khronos group, выпускают приемника OpenGL - Vulkan API версии 1.0. Производители оборудования в общем-то почти сразу стали добавлять в драйверы своей аппаратуры поддержку нового API. По крайней мере, актуальная на тот момент GeForce GTX 970 уже имела таковую поддержку (про более старые серии аппаратуры ничего сказать не могу).

Не смотря на то, что OpenSceneGraph таки получил поддержку OpenGL 3.x (и ваш покорный слуга собирал его с таковой поддержкой), разработчикам этой библиотеки стало понятно, что огромное количество внутренних проблем OpenGL делает его поддержку бесперспективной. Поэтому, в конце мая 2018 года стартовала разработка новой графической библиотеки VulkanSceneGraph, ориентированной исключительной на Vulkan API. 13 ноября 2022 года состоялся официальный релиз VulkanSceneGraph-1.0, а совсем недавно, 31 августа 2023 выпустили VulkanSceneGraph-1.0.9.

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

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

Ортографическая проекция в фотографии и прочие интересные фокусы с объективами

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

С тем как работает фотоаппарат мы знакомимся еще со школьной программы. Однако привычное нам из школьного курса сведение объектива к "тонкой линзе" на самом деле не отвечает на массу практических вопросов. Например как удается создавать объективы с ортографической проекцией применяемые в системах технического зрения?

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

Так как же работает объектив?
Всего голосов 162: ↑161 и ↓1+160
Комментарии38

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

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн

Фильтрация избыточных вершин в геометриях 3D моделей

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

Всем привет! Меня зовут Евгений, я backend‑разработчик в компании Bimeister. Сегодня я хотел бы продолжить рассказ о нашем 3D движке Spatium. В статье речь пойдет еще об одном из алгоритмов оптимизации - поиске и удалении избыточных вершин из 3D моделей.

Материал может представлять интерес для инженеров, связанных с проектированием и разработкой в области 3D.

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

Разработка игр на NeoAxis Engine 2020: Часть 1

Время на прочтение4 мин
Количество просмотров2K
В 2019 году вышел новый NeoAxis Engine, и я подумал, что не сделать на нем игру просто некрасиво.

Поэтому я решил сделать на нем пару игр. А начать с самого простого — с шутера. Ну и заодно объяснить, как делаются игры на этом замечательном движке.
Читать дальше →
Всего голосов 16: ↑5 и ↓11-6
Комментарии5

ReBoot: история первого в мире 3D-мультсериала «Повторная загрузка»

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

Большинство людей полагают, что эра 3D-анимации началась с пиксаровского шедевра "История игрушек" в 1995 году. Однако это не так. Четырьмя годами ранее "ReBoot" уже с успехом продемонстрировал потенциал создания 3D-мультсериалов.

Идея создания первого полноценного компьютерного ТВ-сериала возникла благодаря Гэвину Блэру (Gavin Blair) и Яну Пирсону (Ian Pearson), профессионалам в области компьютерной анимации, которые в 1984 году совместно работали над клипом "Dire Straits" для композиции "Money for nothing". Однако, технологии того времени не позволяли им реализовать свою задумку, и они вынуждены были трудиться и ждать ещё 5 лет, чтобы создать необходимую программу и получить финансирование проекта.

Вспомним молодость
Всего голосов 9: ↑8 и ↓1+7
Комментарии7

Perfusion. Это как Midjourney, только лучше

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

Когда дело доходит до автоматического создания изображений на основе собственных идей, на помощь приходят две самых популярных среди пользователей нейросети — DALL-E 2 и Midjourney. Обе являются инструментами, способными создавать реалистичные изображения с хорошим качеством. Эти ИИ обычно понимают, чего вы хотите, и пытаются генерировать новые изображения, в том числе что-то похожее на конкретный пример, но часто можно увидеть, что результат совершенно не соответствует запросам. Что ж, это изменится с новой моделью от NVIDIA — Perfusion, нейросетью, которая позволяет создавать изображения из описаний на естественном языке.

В отличие от своих тяжеловесных конкурентов, Perfusion выделяется компактным размером моделей всего в 100 КБ и 4-минутным временем обучения. Perfusion предлагает пользователям возможность комбинировать различные настраиваемые элементы с набором изображений, которые функционируют как «концепции». Модель способна изучить «концепцию» объекта (например, вещи, животного или человека), а затем генерировать эти концепции в новых сценариях.
Читать дальше →
Всего голосов 19: ↑19 и ↓0+19
Комментарии4

Портирование КОМПАС под Linux: особенности реализации и результаты

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

Мы много рассказывали на Хабре, как запустить САПР КОМПАС на Linux с разными вариантами Wine (ссылка 1, ссылка 2). Сегодня впервые публикуем пост о разработке нативной Linux-версии. На связи Андрей Пилюгин, ведущий инженер-программист.

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

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

Мы решили не пытаться переписать всё сразу, а разделили портирование на этапы. На первом этапе хотели получить некую заготовку, в которой будет только сильно урезанное 2D с возможностью открытия нескольких документов, их масштабирования и переключения вкладок: по сути viewer.

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

КЛКТ. Полноформатное исследование за полминуты

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

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

Для начала разберемся с тем, что такое КЛКТ. Конусно-лучевая компьютерная томография (КЛКТ) – метод 3D-диагностики высокой точности с применением компьютерного томографа. Таким методом диагностики пользуются многие специалисты, посмотрим кто и зачем.

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

Как мы создавали тросы и их анимировали

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

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

Во-первых, была поднята тема ответственности. Эта темы и без AI тяжела, а с ним то – и подавно. Дело даже не с технологии, AI или ML, или что угодно – это просто добавление еще одного звена, который еще больше усложняет всю систему. Тема ответственности за технологию – тема особая, требующая отдельного поста или даже серии постов. Мы пока не готовы к этому, но мысли есть на тему.

У одного из членов нашей команды есть научрук, доктор технических наук Ясницкий Л.Н., автор нашумевшей в свое время статьи «По ком звонит Ansys» как раз про ответственность технологии, включая гибель людей в Трансвааль‑парке в 2004 г. Всем советуем почитать, статья больше задает вопросы, чем отвечает, но мысль такая же как и в комментах к нашей первой публикации — надо создавать методологию ответственности.

Еще страшней тема в продолжении: алгоритм минимальности числа жертв при их неизбежности и степень его повсеместного применения или внедрения. Тут впору вспомнить «не убий» в Азимовском варианте. Уточним, Айзек Азимов в своем рассказе «Хоровод» ввел четыре правила робототехники, ну их правда изначально три было, потом добавился четвертый. Если же учесть, что в некоторые немецкие автомобили встроен AI, который работает не по принципу «минимальности жертв» при неизбежном ДТП, а по «мой хозяин должен остаться в живых, так как он меня за этим и купил», то поле для рассуждения становится просто необъятным. Вернемся к нашим тросам‑канатам.

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

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