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

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

It's time to render!

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

Анатомия игры. Кооперативное отступление

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


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

Сегодня речь пойдет о нестандартных подходах к сближению игроков друг с другом, а именно о необычных кооперативах. И когда я говорю «кооперативы», я имею в виду не только безвозмездную помощь страждущим в зачистке наводненных монстрами локаций.
Читать дальше →
Всего голосов 24: ↑21 и ↓3+18
Комментарии3

Spatium: цифровой завод в браузере или 3D в контексте клиент-серверных web приложений

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

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

Материал может представлять интерес для разработчиков и пользователей BIM-систем, а также для инженеров и конструкторов, которые выполняют работы по проектированию 3D моделей, получению фотограмметрических моделей и облаков точек для таких систем.

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

Зри в корень, но не в ЗD очках. Стереовзгляд в прошлое. Что увидел мишка в ASUS VR-100G или статья-предостережение

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

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

Наш путь — от простого к сложному: стерео/диаскопы времен СССР, взгляд на QUAKE 3 Arena в цифровых очках ASUS VR-100G 1999 года, а также вспомним DOS-игру Depth Dwellers и 3D-журнал.

Фото/видео ретро-девайсов, процедуры использования, размышления о пользе/вреде, выводы, под катом.

Добро пожаловать. :)
Читать дальше →
Всего голосов 26: ↑23 и ↓3+20
Комментарии22

Полезен ли сегодня быстрый обратный квадратный корень из Quake III?

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

В 2005 году id Software опубликовала под лицензией GPL-2 исходный код своей игры 1999 года Quake III Arena. В файле code/game/q_math.c есть функция для вычисления обратного квадратного корня числа, которая на первый взгляд выглядит очень любопытным алгоритмом:

float Q_rsqrt( float number )
{
    long i;
    float x2, y;
    const float threehalfs = 1.5F;

    x2 = number * 0.5F;
    y  = number;
    i  = * ( long * ) &y;                       // зловещий хакинг чисел с плавающей запятой на уровне битов
    i  = 0x5f3759df - ( i >> 1 );               // какого чёрта?
    y  = * ( float * ) &i;
    y  = y * ( threehalfs - ( x2 * y * y ) );   // первая итерация
//  y  = y * ( threehalfs - ( x2 * y * y ) );   // вторая итерация, можно удалить

    return y;
}

Об этом алгоритме написано множество статей, и ему посвящена хорошая страница Википедии, где он назван fast inverse square root (быстрым обратным квадратным корнем). На самом деле, этот алгоритм упоминался на различных форумах ещё до публикации исходного кода Q3. Ryszard из Beyond3D провёл в 2004-2005 годах исследование и в конечном итоге выяснил, что первоначальным автором алгоритма был Грег Уолш из Ardent Computer, который создал его десятью годами ранее.
Читать дальше →
Всего голосов 196: ↑194 и ↓2+192
Комментарии52

Истории

Простая процедурная генерация мира, или Шумы Перлина на Python

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

Недавно я выпустил статью, в которой рассказал о библиотеке Ursina Engine и показал, как создать свою трехмерную игру на Python. Между разделами вскользь упомянул про шум Перлина. Это один из базовых алгоритмов процедурной генерации, который можно использовать для создания красивых игровых миров. Хочу рассказать о нем подробнее и показать, как работать с модулем perlin-noise.

Если вам интересно, как просто генерировать реалистичные трехмерные ландшафты на Python, добро пожаловать под кат!
Читать дальше →
Всего голосов 44: ↑44 и ↓0+44
Комментарии2

Воссоздание существующего фрагмента улицы в 3D

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

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

Меня зовут Максим и сейчас я опишу, как это сделал.

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

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

Способы замены цветов текстур при помощи Shader Graph в Unity

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

В последнее время я начал встречать вопросы об изменении/замене цветов текстур в шейдере. Существует несколько способов сделать это, выбор их зависит от конкретных условий применения.

В статье приведены примеры в Shader Graph, однако есть и ссылки на документацию Shader Graph (Node Library), где можно просмотреть сгенерированный код на HLSL.

Эти методики могут использоваться в следующих случаях:

  • Цвета игроков/команд, например, в RTS или в многопользовательских командных играх, или для изменения внешнего вида игрока.
  • Вариации цветов на пропсах окружения, растительности/листве, вариантах врагов и так далее.
  • Настраиваемые цвета и линейные градиенты, применяемые для VFX/эффектов частиц.
  • Заменяемые цвета палитры для пиксель-арта (спрайтов/карт тайлов). Могут использоваться для эстетики или связаны с геймплеем.
  • Эффекты постобработки, но это уже выходит за рамки моего поста.

Обычно в таких методиках в качестве входных данных используются какие-то текстуры (однако некоторые могут работать с шумами или процедурными формами, созданными из функций расстояний со знаком). Кроме того, неважно, будут ли использоваться текстуры для 3D-модели, 2D-спрайта, UI и так далее.
Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Комментарии0

Как делаются симуляторы

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

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

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

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

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

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

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

Овладейте всем потенциалом анимирования с Vue

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

Vue позволяет разработчикам писать более гибкий и переиспользуемый код за счёт наличия дополнительных возможностей для организации компонентов. И одной из областей применения этих возможностей являются анимации. В текущей статье мы разберём использование Composition API для создания анимаций в Vue с помощью CSS и JS библиотеки GSAP (GreenSock Animation Platform).

Примечание пер.: статья содержит крупные GIF-анимации.
Читать дальше →
Всего голосов 39: ↑39 и ↓0+39
Комментарии2

Технологии информационного моделирования на стадии эксплуатации промышленного объекта

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

Всем привет! Меня зовут Настя и я инженер-конструктор в компании Bimeister. В данной статье хочу поделиться нашим опытом внедрения технологий информационного моделирования (ТИМ) на стадии эксплуатации в живых проектах цифровизации.

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

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

Сколько инженеров может заменить 3D сканер?

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

В далёком 2021 году нас пригласили поучаствовать в проекте по модернизации одного крупного горно-обогатительного комбината. В назначенный день мы вылетели в сторону Дальнего Востока. О том, что из этого вышло и почему словосочетание "3D сканер" заставляет наших конструкторов быть вдвойне более внимательными, читаем внутри!

Читать, что было дальше
Всего голосов 29: ↑28 и ↓1+27
Комментарии7

Анонс нового проекта Blender Studio

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

Здравствуйте, дорогие друзья. В последнее время Blender Studio продолжает нас радовать своими проектами трехмерных мультфильмов. «Страх эльфов» (Sprite Fright), «Заряд» (Charge) — эти мультфильмы студия выпустила за последние два года.

19 января 2023 года (но, я сам узнал только недавно по рабочим материалам на Youtube‑канале проекта) был анонсирован новый проект — Pet Projects.

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

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

Digital twins в стоматологии: будущее близко или оно уже настало?

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

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

Имея огромный потенциал, технология цифрового двойника в стоматологии все еще находится на начальной стадии распространения и использования.

Кто такие digital twins?

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

Как это осуществляется?

Для того, чтобы создать своего виртуального двойника, нужно сначала получить цифровые данные. С помощью компьютерного томографа мы получаем множество файлов в формате DICOM. Каждый файл – это тонкий горизонтальный срез объекта. Далее с помощью специальных программ мы объединяем все файлы в один, переводя их в формат stl. Также возможна сегментация зубов и костей черепа по плотности структур, то есть из множества DICOM файлов получается множество файлов stl - отдельно зубы, челюсти и остальные кости. 

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

Мечтали про интерактивные книги, когда читали фантастику? Я знаю человека, который делает их прямо сейчас

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров12K
Когда я был юн, то завороженно читал об интерактивных книгах. Нет, не тех, что упомянуты в Гарри Поттере, а о настоящих — описанных десятками фантастов. Таких, где иллюстрации можно покрутить, запустить в динамике, поставить на паузу и рассматривать в разных сочетания. Я думаю, вы понимаете о чем я говорю.

Каково же было мое удивление, когда в прошлом году я наткнулся именно на такие пусть и не книги, но довольно подробные статьи. Делает их калифорнийский iOS-разработчик польского происхождения Бартош Цехановский (Bartosz Ciechanowski). И каждая его статья — штучный товар.


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

Демосцена на релейном компьютере

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

Какой компьютер без демосцены? Обратимся к классике от @Manwe_SandS@frog:

До моего визита на Assembly'99 я каждый pаз удивлялся pезультатам голосования на заpубежных demo party. Мне было непонятно, как столько людей могут отдавать голоса за pаботы состоящие из тупой (я пpошу пpощения, но это именно так) последовательности эффектов - плазмы, туннеля, огня, вpащающегося куба (тоpа) и пpочих подобных вещей, не объединенных никаким сюжетом, не несущими никакой идеи.

То что нужно! Возьмём первый попавшийся релейный компьютер и понаделаем эффектов.

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

Создание высокодетальных 3D моделей сложного технологического оборудования в проектах Bimeister

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


Всем привет! Меня зовут Марат и я занимаюсь разработкой высокодетальных 3D-моделей оборудования в компании Bimeister.

Расскажу про то, как мы создаем огромную базу 3D-моделей для промышленных предприятий и какие инструменты при этом используем.

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

Мы выбрали не самый легкий путь.

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

Мир на геодезической сфере: алгоритмы игры Planet

Время на прочтение6 мин
Количество просмотров6K
Я уже больше года не писал статей с анализом процедурной генерации в играх. Сегодня мы изучим Planet — игру 2016 года с уютным дизайном, созданную одним из моих любимых разработчиков, Оскаром Сталбергом.


Другие скриншоты



Planet — наполовину технологическое демо, наполовину игра, в итоге создающая настоящую магию. Не так уж просто разобраться, как она работает, однако, к счастью, мне удалось узнать основные подробности из постов в Twitter и статей самого Оскара.
Читать дальше →
Всего голосов 32: ↑32 и ↓0+32
Комментарии3

Процедурная генерация 3D-мешей для интро на 64 КБ

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

В предыдущей статье [перевод на Хабре] мы рассказали, как генерируются текстуры в демо H – Immersion. На этот раз мы изучим ещё один важный инструмент для создания демо нужного размера — процедурную геометрию.

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

Использование метода супер разрешения (Super Resolution) при 3d сканировании или можно ли прыгнуть выше головы

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

Как отсканировать в 3D крыло овода с разрешением 10 микрон на недорогом оборудовании. Используется метод Super Resolution - увеличение разрешения за счёт обработки большого количества сканов, снятых с разных ракурсов.

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