Телефон: 8-800-350-22-65
Напишите нам:
WhatsApp:
Telegram:
MAX:
Прием заявок круглосуточно
График работы офиса: с 9:00 до 21:00 Нск (с 5:00 до 19:00 Мск)

Статья опубликована в рамках: Научного журнала «Студенческий» № 6(344)

Рубрика журнала: Информационные технологии

Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3

Библиографическое описание:
Галстян А.А. BLENDER 3D: ВИЗУАЛИЗАЦИЯ ПОВОРОТА ВОКРУГ ПРОИЗВОЛЬНОЙ ОСИ В GEOMETRY NODES ДЛЯ ОБУЧЕНИЯ ЛИНЕЙНОЙ АЛГЕБРЕ // Студенческий: электрон. научн. журн. 2026. № 6(344). URL: https://sibac.info/journal/student/344/403902 (дата обращения: 14.03.2026).

BLENDER 3D: ВИЗУАЛИЗАЦИЯ ПОВОРОТА ВОКРУГ ПРОИЗВОЛЬНОЙ ОСИ В GEOMETRY NODES ДЛЯ ОБУЧЕНИЯ ЛИНЕЙНОЙ АЛГЕБРЕ

Галстян Артём Артакович

студент, факультет систем управления и робототехники, Университет ИТМО,

РФ, г. Санкт-Петербург

​АННОТАЦИЯ

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

 

Ключевые слова: Blender, geometry nodes, 3D графика, матрица поворота, линейная алгебра, визуализация.

 

Введение

Современная 3D графика не обходится без линейной алгебры. Большинство основных операций реализуются с её использованием. В данной статье рассматривается матрица поворота вокруг произвольной оси.

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

Для достижения цели решаются следующие задачи:

1. Описать теоретические основы матрицы поворота вокруг произвольной оси;

2. Реализовать соответствующий узел в geometry nodes Blender;

3. Продемонстрировать работу узла на типичных 3D‑объектах.

1. Теоретические основы поворота

Поворот вокруг произвольной оси на угол  требует введения двух матриц:

  • Матрица поворота вокруг оси, проходящей через начало координат;
  • Матрица переноса (трансляции).

В дальнейшем будем использовать однородные координаты. Они позволяют ввести аффинные преобразования, в том числе и трансляцию. [1]

1.1. Матрица поворота вокруг оси, проходящей через начало координат

Пусть вектор  задаёт некоторую ось, проходящую через начало координат. Тогда матрица поворота вокруг этой оси на угол  может быть представлена через матричную экспоненту [2]:

Где  — кососимметричная матрица оператора векторного произведения. Она записывается через проекции вектора  на координатные оси. В однородных координатах имеет следующий вид:

                                                                  (1)

 

Раскладывая матричную экспоненту в ряд Тейлора и используя свойства кососимметричной матрицы, мы приходим к формуле Родрига [4]:

                                                      (2)

1.2. Матрица переноса

В общем случае ось вращения может не проходить через начало координат. В таком случае матрицы поворота будет недостаточно. Пусть ось вращения смещена на радиус-вектор . Тогда матрица трансляции на вектор  выглядит следующим образом [3]:

                                                                                     (3)

Для матрицы переноса справедливо следующее свойство:

                                                                                        (4)

1.3. Матрица поворота вокруг произвольной оси

Учитывая свойство (4), искомую матрицу можно представить композицией ниже (обозначим её ):

                                                            (5)

Так мы пришли к формулам (5) и (2), с помощью которых можем реализовать матрицу  с использованием geometry nodes.

2. Среда реализации

Основной средой разработки будет программа Blender 5.0.1. Она отлично подходит для создания демонстраций и имеет один из самых высоких уровней контроля над преобразованиями. Таблица 1 содержит сравнение Blender с основными конкурентами по решающим параметрам, важным для реализации задачи.

Таблица 1.

Сравнение 3D-пакетов для реализации матрицы поворота

Среда

Контроль преобразований

Входной порог

Доступ

Blender

Высокий (node-based)

Низкий

Бесплатно

Maya

Высокий (Bifrost ограничен)

Высокий

Платно

3ds Max

Средний (скрипты)

Высокий

Платно

Houdini

Полный (SOP nodes)

Очень высокий

Условно бесплатно

 

Geometry Nodes – основной способ преобразования геометрии в Blender [6]. Ноды значительно превосходят python-скрипты по скорости для процедурных трансформаций, что доказывает их эффективность в построении искомой матрицы.

3. Реализация матриц  вокруг произвольной оси в Geometry Nodes

Входящими параметрами для нашей матрицы будут:

1. Вектор оси  (Axis), вокруг которого будет происходить вращение;

2. Радиус-вектор трансляции  (Offset), на которой смещена ось;

3. Угол  в радианах (Angle), на которой будет происходить поворот.

3.1. Общие узлы

По умолчанию Blender не содержит готовых узлов для суммирования матриц и их умножения на скаляр. Такие необходимы в формуле (2) для получения слагаемых с правильными коэффициентами. Для дальнейшей работы были реализованы ноды, выполняющие недостающие функции: Add matrix; Scalar multiply. Их схемы опущены в статье по причине тривиальности и очевидности для пользователей, знакомых с Geometry Nodes.

Чтобы упростить восприятие, следует добавить узел, отображающий ось вращения. Он добавит дополнительные два параметра: Scale - размеры геометрии оси; Instances – выбранная геометрия оси. Готовая реализация ноды геометрии приведена на рисунок 1.

 

Рисунок 1. Схема узла отображения геометрии Geometry Axis

 

3.2. Реализация матрицы

Формула Родрига (2) состоит из 3 слагаемых. При этом в двоих из них содержится матрица . Было принято решение реализовать её как отдельный узел. Итоговая схема изображена ниже (рисунок 2).

 

Рисунок 2. Схема узла матрицы J, необходимой для формулы (2)



После введения узла J, а также сборки узлов Add matrix и Scalar multiply, становится возможным построение матрицы . Её финальная схема изображена на рисунке 3.

3.3. Реализация матрицы переноса

 

Рисунок 3. Схема узла матрицы поворота вокруг оси, проходящей через начало координат

 

Соберём последний недостающий узел, соответствующий матрице . Его детальная схема приведена на ниже (рисунок 4).

 

Рисунок 4. Схема узла матрицы трансляции

 

3.4. Реализация матрицы

На данном этапе имеются все ноды, необходимые для реализации формулы (5). При правильном их включении в схему получается искомая матрица. Порядок подключения узлов проиллюстрирован на рисунке 5.

 

Рисунок 5. Итоговая схема, соответствующая матрице

 

4. Примеры использования

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

Приведённые ниже примеры одновременно демонстрируют работу узла и служат проверкой корректности реализации матрицы .

4.1. ПРИМЕР 1: Поворот кубика

Возьмём обычный куб и настроим параметры следующим образом

1. вектор оси ;

2. вектор смещения .

На рисунке 6 представлены результаты поворота кубика при различных значениях параметра Angle.

 

Рисунок 6. Вращение кубика. Иллюстрация ортогональных свойств

 

На всех кадрах, при изменении , форма куба не искажается, меняется только его положение в пространстве. Это полностью соответствует ортогональному преобразованию.

4.2. ПРИМЕР 2: Динамический поворот движущегося множества точек

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

где  м – смещение за кадр,  – единичный вектор оси .

Узнаем, как будет выглядеть траектория точек при различных параметрах Angle в момент времени  c (рисунок 7).

 

    

Рисунок 7. Поворот движущегося множества точек

 

При Angle = 0 каждая точка движется поступательно вертикально вверх. При малых значениях параметра Angle траектории точек представляют собой слабо закрученные спирали, что соответствует многократному применению поворота. Увеличение Angle приводит к более сильному закручиванию спиралей, при этом расстояние между соседними витками по оси Z остаётся постоянным. Это демонстрирует сочетание равномерного поступательного и вращательного движения.

5. Заключение

В данной статье описан подход в реализации матрицы поворота вокруг произвольной оси с помощью geometry nodes в программе Blender. Полученный узел позволяет визуализировать свойства ортогональных преобразований и траектории движения объектов при вращении. Это может существенно помочь в обучении: такие демонстрации позволяют лучше понять концепцию вращения вокруг оси.

Реализованный подход имеет ряд ограничений. Во-первых, использование float-точности в Blender приводит к накоплению численных погрешностей при многократных повторах поворота, что может приводить к отклонениям от идеальной ортогональности матрицы. Во-вторых, текущая реализация ориентирована на вращение вокруг одной оси за раз.

В дальнейшем подход может быть расширен за счёт:

  1. Cоздания учебных анимаций с использованием предложенного узла и их интеграции в курсы по компьютерной графике и линейной алгебре;
  2. Разработки реализации узлом последовательных поворотов вокруг нескольких осей;
  3. Исследования влияния численных погрешностей на длительных анимациях.

 

Список литературы:

  1. Однородные координаты в 3D-графике [Электронный ресурс] // Sky.pro Wiki. URL: https://sky.pro/wiki/gamedev/odnorodnye-koordinaty-v-3d-grafike (дата обращения: 28.02.2026).
  2. Lynch K. M. Modern Robotics: Mechanics, Planning, and Control / K. M. Lynch, F. C. Park. Cambridge: Cambridge University Press, 2017. 545 с.
  3. Боресков А. В. Программирование компьютерной графики: учеб. пособие для вузов. 2-е изд., М.: ДМК Пресс, 2019. 576 с. ISBN 978-5-9706-0779-4.
  4. Rodrigues’ rotation formula [Электронный ресурс] // Wikipedia. URL: https://en.wikipedia.org/wiki/Rodrigues%27_rotation_formula (дата обращения: 29.01.2026).
  5. Blender 5.0 Manual [Электронный ресурс] / Blender Foundation. 2026. URL: https://docs.blender.org/manual/en/5.0/ (дата обращения: 02.02.2026).

Оставить комментарий