VertexElement — Aspose.3D Python API Reference

パッケージ: aspose.threed.entities (aspose-3d-foss 26.1.0)

VertexElement は、オブジェクトにアタッチできるすべての頂点ごとのデータレイヤーの抽象基底クラスです Geometry オブジェクトです。各レイヤーは、データ値の配列を保持し、 mapping_modereference_mode メタデータは、データが基礎ジオメトリにどのようにマッピングされるかを記述します。サブクラスは、法線、UV座標、頂点カラー、タンジェント、バイノーマル、スムージンググループ用に特化しています。.


Methods

from aspose.threed.entities import VertexElement

Methods

VertexElement

Methods

MethodsMethodsMethodsMethods
vertex_element_typeVertexElementTypeReadこのレイヤーのセマンティックタイプ(例:., NORMAL, UV, VERTEX_COLOR).
namestrRead/Writeこのレイヤーの任意の名前。.
mapping_modeMappingModeRead/Write各データ値がどのジオメトリプリミティブに関連付けられるかを制御します。.
reference_modeReferenceMode読み取り/書き込み値が直接アドレス指定されるか、インデックス配列を介してアドレス指定されるかを制御します。.
indiceslist[int]読み取りインデックス配列は次の場合に使用されます reference_mode です INDEX_TO_DIRECT.
datalist[FVector4]読み取り生データ値は次の形式で保存されます FVector4 エントリ(利用可能な VertexElementFVector サブクラス)。.

Methods

MethodsMethodsMethods
set_data(data)Noneデータ配列を置き換えます。受け入れるのは list[FVector2], list[FVector3],、または list[FVector4]; 値は正規化されます FVector4 内部的に。.
set_indices(data)Noneインデックス配列を整数のリストに置き換えます。.
clear()Noneレイヤーからすべてのデータ値とインデックスを削除します。.
copy_to(target)Noneデータとインデックスを別の VertexElementFVector インスタンス。.

VertexElementNormal

表面法線ベクトルを格納します。法線データは通常、レンダラーがライティング計算に使用します。.

from aspose.threed.entities import VertexElementNormal

Methods

VertexElementVertexElementFVectorVertexElementNormal

Methods

VertexElementNormal(name="", mapping_mode=None, reference_mode=None)

vertex_element_type は固定されています VertexElementType.NORMAL.


Returns: VertexElementUV

UV テクスチャ座標を格納します。メッシュは異なるテクスチャチャンネル用に複数の UV レイヤーを持つことができます。.

from aspose.threed.entities import VertexElementUV

Methods

VertexElementVertexElementFVectorVertexElementUV

Methods

VertexElementUV(texture_mapping=None, name="", mapping_mode=None, reference_mode=None)
MethodsMethodsMethods
texture_mappingTextureMappingこのUVレイヤーが提供するテクスチャチャンネルです。デフォルトは TextureMapping.DIFFUSE.

StlLoadOptions

MethodsMethodsMethodsMethods
texture_mappingTextureMapping読み取りこのUVレイヤーが関連付けられているテクスチャチャンネルです。.

add_data(data)

UV座標データを追加します。受け付けるのは list[Vector2], list[Vector3], list[FVector2], list[FVector3],、または list[FVector4].。すべての値は内部的に次のように格納されます FVector4 未使用のコンポーネントは次のように設定されます 0.0.


VertexElementVertexColor

0〜1 の範囲で頂点ごとの RGBA カラー値を格納します。.

from aspose.threed.entities import VertexElementVertexColor

Methods

VertexElementVertexElementFVectorVertexElementVertexColor

Methods

VertexElementVertexColor(name="", mapping_mode=None, reference_mode=None)

vertex_element_type は固定されています VertexElementType.VERTEX_COLOR.


VertexElementTangent

頂点またはコーナーごとのタンジェントベクトルを格納し、ノーマルマップのレンダリングに使用されます。.

from aspose.threed.entities import VertexElementTangent

Methods

VertexElementVertexElementFVectorVertexElementTangent

vertex_element_type は固定されています VertexElementType.TANGENT.


VertexElementBinormal

頂点ごとまたはコーナーごとのバイノーマル(ビタンジェント)ベクトルを格納し、 VertexElementTangent 接線空間ノーマルマッピング用です。.

from aspose.threed.entities import VertexElementBinormal

Methods

VertexElementVertexElementFVectorVertexElementBinormal

vertex_element_type は固定されています VertexElementType.BINORMAL.


VertexElementSmoothingGroup

ポリゴンごとの整数スムージンググループIDを格納します。次のを含むOBJファイルから読み込まれます s 宣言です。.

from aspose.threed.entities import VertexElementSmoothingGroup

Methods

VertexElementVertexElementIntsTemplateVertexElementSmoothingGroup

vertex_element_type は固定されています VertexElementType.SMOOTHING_GROUP.


VertexElementType 列挙型

頂点要素レイヤーのセマンティックな役割を識別します。.

from aspose.threed.entities import VertexElementType
MethodsMethods
NORMAL表面法線ベクトル。.
UVテクスチャ UV 座標。.
VERTEX_COLOR頂点ごとの RGBA カラー。.
TANGENTノーマルマッピング用接線ベクトル。.
BINORMALバイノーマル(ビタンジェント)ベクトル。.
SMOOTHING_GROUPポリゴンごとのスムージンググループ整数 ID。.
MATERIALポリゴンごとのマテリアルインデックス。.
POLYGON_GROUPポリゴンのグルーピングインデックス。.
VERTEX_CREASEサブディビジョン頂点クレース重み。.
EDGE_CREASEサブディビジョンエッジクレース重み。.
USER_DATA任意のユーザー定義データ。.
VISIBILITY要素ごとの可視性フラグ。.
SPECULAR鏡面の色または強度。.
WEIGHTスキニング用のブレンドウェイト。.
HOLEポリゴンの穴フラグ。.

MappingMode 列挙型

各頂点要素の値がどのジオメトリプリミティブに関連付けられるかを制御します。.

from aspose.threed.entities import MappingMode
MethodsMethods
CONTROL_POINT制御点(頂点)ごとの1つの値。.
POLYGON_VERTEXポリゴンのコーナー(フェイス頂点)ごとの1つの値。.
POLYGONポリゴンごとの1つの値。.
EDGEエッジごとの1つの値。.
ALL_SAME単一の値がメッシュ全体に適用されます。.

ReferenceMode 列挙型

データ配列のインデックス付け方法を制御します。.

from aspose.threed.entities import ReferenceMode
MethodsMethods
DIRECTデータは別個のインデックス配列なしで順次アクセスされます。.
INDEXデータは別個のインデックス配列を介してアクセスされます。.
INDEX_TO_DIRECTインデックス配列は、各マッピングプリミティブをデータ配列内の位置にマッピングします。.

Methods

メッシュに法線レイヤーをアタッチする(DIRECT マッピング)::

from aspose.threed import Scene
from aspose.threed.entities import Mesh, VertexElementType, MappingMode, ReferenceMode, VertexElementNormal
from aspose.threed.utilities import Vector4, FVector4

mesh = Mesh()
mesh.control_points.append(Vector4(0.0, 0.0, 0.0, 1.0))
mesh.control_points.append(Vector4(1.0, 0.0, 0.0, 1.0))
mesh.control_points.append(Vector4(0.5, 1.0, 0.0, 1.0))
mesh.create_polygon(0, 1, 2)

normals: VertexElementNormal = mesh.create_element(
    VertexElementType.NORMAL,
    MappingMode.CONTROL_POINT,
    ReferenceMode.DIRECT,
)
normals.set_data([
    FVector4(0.0, 0.0, 1.0, 0.0),
    FVector4(0.0, 0.0, 1.0, 0.0),
    FVector4(0.0, 0.0, 1.0, 0.0),
])

scene = Scene()
scene.root_node.create_child_node("tri", mesh)
scene.save("triangle_normals.glb")

UV 座標をアタッチする(INDEX_TO_DIRECT マッピング)::

from aspose.threed import Scene
from aspose.threed.entities import Mesh, TextureMapping, MappingMode, ReferenceMode
from aspose.threed.utilities import Vector4, FVector4

mesh = Mesh()
for x, z in [(0, 0), (1, 0), (1, 1), (0, 1)]:
    mesh.control_points.append(Vector4(float(x), 0.0, float(z), 1.0))
mesh.create_polygon(0, 1, 2, 3)

uv = mesh.create_element_uv(
    TextureMapping.DIFFUSE,
    MappingMode.POLYGON_VERTEX,
    ReferenceMode.INDEX_TO_DIRECT,
)
uv.set_data([
    FVector4(0.0, 0.0, 0.0, 0.0),
    FVector4(1.0, 0.0, 0.0, 0.0),
    FVector4(1.0, 1.0, 0.0, 0.0),
    FVector4(0.0, 1.0, 0.0, 0.0),
])
uv.set_indices([0, 1, 2, 3])

scene = Scene()
scene.root_node.create_child_node("quad", mesh)
scene.save("quad_uv.glb")

参照

 日本語