Rete spaccata
Dividi tutte le maglie di una scena per materiale
Gli sviluppatori possono richiedere di dividere tutte le maglie di una scena in più sottogruppi per materiale. Il metodo split_mesh non dividerà una mesh della scena Se è stato assegnato un singolo materiale. Gli sviluppatori possono ora raggiungere questo obiettivo utilizzando Aspose.3D for Python via .NET API.
SplitMeshPolicy enum specifica la politica dei dati utilizzata nell’algoritmo di frazionamento mesh, supporta due criteri, condividi i dati tra sottogruppi o ogni sottorete ha i propri dati (solo dati utilizzati).
Il codice di esempio seguente divide tutte le mesh di una scena per materiale. Ogni sottogmesh condivide gli stessi dati diretti e differisce solo negli indici.
from aspose.threed import FileFormat, Scene
from aspose.threed.entities import PolygonModifier, SplitMeshPolicy
# For complete examples and data files, please go to https:# github.com/aspose-3d/Aspose.3D-for-.NET
# The path to the documents directory.
input = "data-dir" + "test.fbx"
# Load a 3D file
scene = Scene(input)
# Split all meshes
PolygonModifier.split_mesh(scene, SplitMeshPolicy.CLONE_DATA)
# Save file
output = "out" + "test-splitted.fbx"
scene.save(output, FileFormat.FBX7500ASCII)Dividi una maglia specificando il materiale
Aspose.3D for Python via .NET API consente agli sviluppatori di dividere una mesh specificando manualmente il materiale. L’opzione split mesh crea oggetti separati e ogni sottogmesh utilizzerà un solo materiale.
Dividi la maglia della scatola
Questo argomento di aiuto crea una mesh della casella per mantenere il codice completo e breve. Gli sviluppatori possono costruire una mesh manualmente come narrato in questo argomento di aiuto: Crea una mesh cubica da 3D. Inoltre, una scatola è composta da 6 aerei e ogni aereo diventerà una sub mesh. Il codice di esempio seguente divide una mesh primitiva specificando manualmente il materiale.
from aspose import pycore
from aspose.threed.entities import Box, MappingMode, PolygonModifier, ReferenceMode, SplitMeshPolicy, VertexElementMaterial, VertexElementType
# For complete examples and data files, please go to https:# github.com/aspose-3d/Aspose.3D-for-.NET
# Create a mesh of box(A box is composed by 6 planes)
box = Box().to_mesh()
# Create a material element on this mesh
mat = pycore.cast(VertexElementMaterial, box.create_element(VertexElementType.MATERIAL, MappingMode.POLYGON, ReferenceMode.INDEX))
# And specify different material index for each plane
mat.indices.extend([0, 1, 2, 3, 4, 5 ])
# Now split it into 6 sub meshes, we specified 6 different materials on each plane, each plane will become a sub mesh.
# We used the CloneData policy, each plane will has the same control point information or control point-based vertex element information.
planes = PolygonModifier.split_mesh(box, SplitMeshPolicy.CLONE_DATA)
mat.indices.clear()
mat.indices.extend([0, 0, 0, 1, 1, 1 ])
# Now split it into 2 sub meshes, first mesh will contains 0/1/2 planes, and second mesh will contains the 3/4/5th planes.
# We used the CompactData policy, each plane will has its own control point information or control point-based vertex element information.
planes = PolygonModifier.split_mesh(box, SplitMeshPolicy.COMPACT_DATA)