Тессеракт, если забыть на минутку о вселенной Marvel, это вполне реальная геометрическая фигура – четырёхмерный гиперкуб, один из шести правильных многоячейников в четырёхмерном пространстве. В привычном же нам, трехмерном пространстве, тессеракт выглядит, как знакомый всем “куб в кубе”. И такую фигуру очень просто можно создать с помощью Geometry Nodes в Blender.
Для начала добавим в сцену куб (Shift + a – Mesh – Cube). Можно использовать любую геометрию, но тогда в нодовом дереве Geometry Nodes нам придется начинать с нода, добавляющего в объект геометрию куба (Shift + a – Mesh – Primitives – Cube).
Откроем рабочую область Geometry Nodes и создадим новое нодовое дерево, нажав на кнопку New.
Для создания самой формы тессеракта нам необходимо всего 2 нода.
Добавим первый нод Extrude Mesh (Shift + a – Mesh – Operations – Extrude Mesh). Этот нод собственно и делает для нас всю работу. Переключим его в режим “Edges”, и установим параметр Offset равный -1.25.
Пока ничего не видно потому, что все изменения сейчас находятся внутри куба. Чтобы что-то увидеть, нам нужно убрать его стенки, и с этим нам поможет нод Delete Geometry.
Добавим его в нодовое дерево (Shift + a – Geometry – Operations – Delete Geometry). Переключим этот нод в режим Point – Only Faces.
И вот, мы уже видим знакомую нам фигуру.
Собственно, мы уже сделали все, что нужно. Но давайте еще для лучшего рендера придадим ребрам тессеракта толщину.
Превратим полученный меш в набор кривых. Для этого добавим нод Mesh to Curve (Shift + a – Mesh – Operations – Mesh to Curve). А после него сразу добавим нод, совершающий обратное действие, Curve to Mesh (Shift + a – Curve – Operations – Curve to Mesh). А к этому ноду во входной сокет Profile Curve добавим и подсоединим нод Curve Circle (Shift + a – Curve – Primitives – Curve Cirle). Установим его параметр Radius в значение 0.07. Таким образом мы обернули все ребра нашего куба геометрией.
Если присмотреться, остались еще некрасивые артефакты на стыке ребер куба. Самый простой способ их убрать – просто закрыть сферами, развешанными на каждом вертексе нашего тессеракта.
Добавим нод Instance on Points (Shift + a – Instances – Instance on Points). На его входной сокет Points подадим геометрию с любого нода до Curve to Mesh, здесь нам главное – получить точки на местах пересечений ребер куба. Добавим нод UV Sphere (Shift + a – Mesh – Primitives – UV Sphere) и соединим его выход “Mesh” со входом “Instances” нода Instances on Points. Параметр Radius у добавленного нода поставим в значение 0.07. Осталось добавить нод Join Geometry (Shift + a – Geometry – Join Geometry) и слить через него геометрию тессеракта и сфер.
Таким образом мы получили аккуратную геометрию тессеркта в трехмерном пространстве. Осталось добавить на меш красивый материал и отправить на рендер.

.blend file on Patreon



