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

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

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

Как следует из названия, в круговой схеме все узлы расположены по кругу. Чтобы получить декартовы координаты круга, мы используем функции синуса и косинуса из библиотеки NumPy. Затем мы добавляем и масштабируем сферу по координатам.

Для случайного макета мы используем функцию random из библиотеки NumPy и генерируем список случайных местоположений. Затем мы перебираем список, добавляя сферу к месту и масштабируя ее.

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

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

Из каждого элемента в списке инцидентов мы находим пару узлов и вычисляем среднюю точку между узлами. В средней точке мы добавляем новый куб и масштабируем его, по оси Y масштаб равен половине расстояния между точками. И, наконец, новый куб поворачивается на угол, образованный между точками.

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

Сначала мы добавляем новый материал и устанавливаем использование узлов как истинное. Затем мы добавляем новый входной узел RGB, который будет иметь цвет текущего узла, мы подключаем выход узла RGB к входу Diffuse BSDF и меняем шероховатость на 1. Затем мы добавляем узел Glass BSDF и устанавливаем шероховатость равна 1. Чтобы смешать узел BSDF Glass и узел Diffuse BSDF, мы добавляем новый узел шейдера Mix и соединяем выход узлов GlassBSDF и Diffuse BSDF со входом узла шейдера смешивания. Наконец, мы подключаем выход шейдера микширования к входам узла вывода материала.

Для краев графа мы выполняем аналогичную процедуру, но вместо смешивания двух шейдеров мы добавляем только узел RGB и узел Principled BSDF и соответствующим образом подключаем эти шейдеры.

Со всеми указанными элементами в графе мы можем визуализировать изображение и получить следующее.

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