VertexElement

VertexElement — Aspose.3D FOSS for Java

Пакет: com.aspose.threed (aspose-3d-foss 26.1.0)

VertexElement е абстрактен базов клас за слоеве от данни, привързани към всеки връх (или всеки полигон, всяко ребро) Mesh.Всеки подклас съхранява конкретен вид геометричен атрибут – нормали, UV координати, цветове на върховете или групи за изглаждане.


Example

Example

ExampleExampleExampleExampleExample
vertexElementTypeVertexElementTypegetVertexElementType()Семантичен тип на този елемент (само за четене).
mappingModeMappingModegetMappingMode()setMappingMode(MappingMode)Контролира към кой примитив се съпоставя всяка стойност.
referenceModeReferenceModegetReferenceMode()setReferenceMode(ReferenceMode)Контролира как се индексират стойностите.
indicesList<Integer>getIndices()Масив от индекси (използва се, когато режимът на референция е INDEX_TO_DIRECT).
nameStringgetName()setName(String)Опционално име на този слой от елементи на върховете.

VertexElementNormal

Съхранява един нормален вектор за всеки връх или за всеки ъгъл на полигон, в зависимост от getMappingMode(). Стойностите на данните са Vector4 екземпляри с w неизползвани.

import com.aspose.threed.*;

VertexElement normals = mesh.createElement(
    VertexElementType.NORMAL,
    MappingMode.CONTROL_POINT,
    ReferenceMode.DIRECT
);

Example

ExampleExampleExampleExample
dataList<Vector4>getData()Нормални вектори. w компонентът е неизползван (обикновено 0.0).

VertexElementUV

Съхранява двойки текстурни координати (Vector2) на връх или на ъгъл на полигон. Мрежата може да съдържа множество UV слоеве за различни текстурни канали.


VertexElementUV uv = mesh.createElementUV(
    TextureMapping.DIFFUSE,
    MappingMode.POLYGON_VERTEX,
    ReferenceMode.INDEX_TO_DIRECT
);

Example

ExampleExampleExampleExample
dataList<Vector2>getData()UV координатни двойки.

VertexElementVertexColor

Съхранява данни за цвят RGBA на връх или на ъгъл като Vector4 (r, g, b, a в диапазона 0–1).

Example

ExampleExampleExampleExample
dataList<Vector4>getData()RGBA стойности за цвят.

VertexElementType изброяване

Определя семантичната роля на слой от елементи на върховете.

import com.aspose.threed.*;
ExampleExample
NORMALВекторни нормали на повърхността.
UVUV координати на текстурата.
VERTEX_COLORRGBA цвят на върха.
TANGENTТангенциални вектори за нормално картографиране.
BINORMALБинормални (битангенциални) вектори.
MATERIALИндекс на материал за всеки полигон.
POLYGON_GROUPИндекс за групиране на полигони.
VERTEX_CREASEТегла за гънки на върхове при подразделяне.
EDGE_CREASEТегла за гънки на ръбове при подразделяне.
USER_DATAПроизволни данни, дефинирани от потребителя.
VISIBILITYФлагове за видимост за всеки елемент.
SPECULARСпекулативен цвят или интензитет.
WEIGHTТежести за смесване за skinning.
HOLEФлагове за дупки в полигоните.

MappingMode изброяване

Контролира към кой геометричен примитив е свързана всяка стойност на елемент от върховете.

ExampleExample
CONTROL_POINTЕдна стойност за всяка контролна точка (върх).
POLYGON_VERTEXЕдна стойност за всеки ъгъл на полигон (face-vertex).
POLYGONЕдна стойност за всеки полигон.

ReferenceMode изброяване

Контролира начина, по който се индексира масивът с данни на елементите на върховете.

ExampleExample
DIRECTДанните се достъпват последователно без отделен масив с индекси.
INDEXДанните се достъпват чрез отделен масив с индекси.
INDEX_TO_DIRECTМасив от индекси съпоставя всеки примитив за съпоставяне с позиция в масива с данни.

Example

import com.aspose.threed.Scene;
import com.aspose.threed.*;

Scene scene = Scene.fromFile("model.obj");

for (Node node : scene.getRootNode().getChildNodes()) {
    if (node.getEntity() instanceof Mesh) {
        Mesh mesh = (Mesh) node.getEntity();
        for (VertexElement ve : mesh.getVertexElements()) {
            System.out.println("  Element: " + ve.getVertexElementType()
                + " mapping=" + ve.getMappingMode()
                + " ref=" + ve.getReferenceMode());
        }
    }
}

Вижте също

 Български