Обновить
-7
0.1

Пользователь

Отправить сообщение

How to make 3D Skeletal animation system — custom overview

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

Всем привет! Сегодня на обзоре Скелетная анимационная система, её организация и упорядочивание.

Скелетная анимация в 3D - это инструмент для лучшего погружения в повествование.

Часто ли вам приходилось задаваться вопросом: как сделать скелетную систему для 3D? Как организовать данные, как удобнее? Возможно, есть какие-то желания, которые при реализации хотелось бы учесть. Именно таким вопросом я задался, каким-то вечером. И так я начал изучать, что и как сделать. Но всё глубже погружаясь в какие-то туториалы, я обращал внимание на то, как организован код, и всё ускользало, как сквозь пальцы. Казалось бы, вот код, но он как бисер, рассыпан по многочисленным файликам какого-то обзорщика. Так же в какой-то момент, я уже точно знал, как я хочу, чтобы выглядел код, какой мне бы хотелось. Конечно, не совсем так. Узнал о том, какой я хочу код, после некоторых тестов... В общем, предлагаю взглянуть на то, как я смог реализовать анимационную систему в моём стиле. Добро пожаловать в эту статью, кому интересно рассмотреть какие-то нюансы с первых строк кода.

Читать далее

Netbeans 26 C++ (clang/clangd) + build system

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

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

Как сделать рабочим Нетбинс 26(с++, clangd), когда какой-то модуль, который раньше в плагинах работал теперь не работает. Давайте рассмотрим этот нюанс.

Читать далее

Простая отрисовка емодзи в атлас из таблицы .ttf (NotoColorEmoji)

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

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

В этой статье рассмотрим возможно самый простой способ рисования всех емодзи из шрифта NotoColorEmoji.ttf.

Читать далее

Простой редактор текста при помощи java на swing

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

Всем привет. Для того чтобы писать код нужен удобный инструмент, кто-то пользуется IDE, кто-то редакторами текста Emacs, VIM. Зачастую, чтобы программисту было удобно, разработчику надо соблюсти много нюансов, тоесть в одном случае есть ускорение разработки, но решение тяжеловесное, в другом случае, разработчик, чтобы пользоваться редактором начинает писать код, чтобы писать код. Конечно это крайности, и проще поставить IDE/VSCode/etc... , но что если можно найти эту золотую середину!?

Неоднократно автор пытался делать текстовый редактор, но что-то было всё не то, пока не вспомнил, что есть старый добрый SWING, и java by design иногда круто и интересно.

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

Читать далее

Начальное ускорение математики

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

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

В этой статье хочу показать как я почти в 10 раз ускорил графику при помощи математики.

Читать далее

Простой односвязный список на С

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

Всем привет. В 3д помимо моделек - статических, существуют анимации - анимированные модели, которые имеют набор своих данных, эти данные нужны для отображения модельки и её анимирования.

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

Читать далее

Начальная анимация

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

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

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

Хочу продемонстрировать простенький подход минимального болванчика.

Читать далее

Начальная генерация пещер

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

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

Итак, приступим

Читать далее

Обратная Матрица (Inverse Matrix)

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

Всем привет. При изучении 3D в программировании мы пользуемся математикой — линейная алгебра, матрицы, векторы, кватернионы. В какой‑то момент становится интересно как устроено пространство 3D, какие принципы и основы заложены в фундамент отображения моделей. Так же, просто на отображении 3D не возможно остановится — хочется добавить свет, тень, как минимум. Для расчета света нам надо отправить в шейдер матрицу модели рисуемого объекта — текущего, нормали плоскостей (например на триангулированный объект на каждый треугольник по нормали выходит).

Так же по расчету света необходимо добавить эту же текущую модель, в виде обратной матрицы и транспонированную.

В этой статье покажу как я решил такую задачу — комплексное решение приводящее к обратной матрице.

Читать далее

Первый Pattern, первый квест

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

Паттерн Команда (Hello World + Undo)

Всем привет. В этой небольшой статье хочу поделиться методом, к которому пришел, когда разрабатывал игру 2D. Та игра, где столкнулся впервые с такими вопросами, натолкнула меня на написание этой статьи и переосмыслении в том, чем я пользуюсь в С++ и как.

Подготовка рабочего пространства

Пользуюсь Линуксом, компилятор 14.2 gcc/g++, cmake>3.27, SDL3, X11.

Читать далее

Информация

В рейтинге
3 682-й
Зарегистрирован
Активность

Специализация

Специалист
C++
Разработка игр
Linux
C