Установите нормали или УФ-излучение на кубе и добавьте материал в 3D Entities
Mesh
используется в коде. Мы можемСоздать объект класса Mesh
, как там рассказаноА затем указать узел на геометрию сеткиСоздание сцены 3D.
Создание нормальных векторов
Чтобы иметь хороший визуальный взгляд на освещение, нам нужно указать нормальную информацию для каждой вершины, чтобы иметь более подробную информацию, мы также можем использовать нормальную и диффузную карту (конечно, вы можете использовать теневую/зеркальную карту) для выполнения каждого пикселя нормального/цвет. Информация на вершину, такая как нормальный или вершинный цвет, достигается с помощью 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)