Установите нормали или УФ-излучение на кубе и добавьте материал в 3D Entities

Создание нормальных векторов

Чтобы иметь хороший визуальный взгляд на освещение, нам нужно указать нормальную информацию для каждой вершины, чтобы иметь более подробную информацию, мы также можем использовать нормальную и диффузную карту (конечно, вы можете использовать теневую/зеркальную карту) для выполнения каждого пикселя нормального/цвет. Информация на вершину, такая как нормальный или вершинный цвет, достигается с помощью VertexElement. В Aspose.3D мы можем сопоставлять дополнительную информацию с контрольными точками/вершиной многоугольника/полигоном/ребром, образцом для определения нормалей для вершины:

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

Создание УФ-координат

Здесь мы определили только 4 УФ-координаты, но применили их к 24 вершинам многоугольника (6 грани * 4 вершины на многоугольник) с помощью индексов. Aspose.3D обеспечивает 5 режимов отображения:

  • CONTROL_POINT-все данные отображаются на контрольную точку геометрии.
  • POLYGON_VERTEX-данные отображаются на вершину многоугольника.
  • POLYGON-данные отображаются на многоугольник.
  • EDGE-данные отображаются на ребро.
  • ALL_SAME-один данные, отображаемые на всю геометрию.

Добавить материалы в объекты 3D

Aspose.3D для Python via .NET позволяет разработчикам использовать алгоритм затенения для точного затенения и бликов. Фонг имеет несколько входов карты, которые мы можем использовать, чтобы замаскировать эффект для узла. Физически основанная Рендеринг (PBR) учитывает некоторые физические свойства объектов, такой подход обеспечивает внешний вид материалов, как в реальном мире.

Материал Phong с текстурой для куба

Когда УФ-координаты готовы к использованию, мы можем нанести текстуру на поверхность сетки, используя материал. Только цвет вершины не может описать детали поверхности, это то, для чего использовались материалы. Вот пример для прикрепления материала Фонга к узлу куба:

Мы указали отображение диффузной текстуры и зеркальный цвет с параметром сияния.

Применить материал для физического отендинга (PBR) к коробке

PBR играет ключевую роль для визуальных эффектов игрового движка с его эффективной и реалистичной визуализацией взаимодействий между светом и поверхностью за счет затухания яркости и рассеяния отраженного света. Разработчики могут использовать Aspose.3D API для применения материала PBR к объектам 3D в сцене. Этот пример кода демонстрирует, как создать объект Box, а затем применить материал PBR.

.NET, C#

import aspose.threed as a3d
# initialize a scene

scene = a3d.Scene()

# initialize PBR material object

mat = a3d.shading.PbrMaterial()

# an almost metal material

mat.metallic_factor = 0.9

# material surface is very rough

mat.roughness_factor = 0.9;

# create a box to which the material will be applied

boxNode = scene.root_node.create_child_node("box", a3d.entities.Box())

boxNode.material = mat

# save 3d scene into STL format

scene.save("PBR_Material_Box_Out.stl", a3d.FileFormat.STLASCII)