Προστέθηκε υποστήριξη για προσαρμοσμένα χαρακτηριστικά κορυφής «GLTF». Το ακόλουθο απόσπασμα κώδικα δείχνει τον τρόπο εξαγωγής προσαρμοσμένων δεδομένων στο “glTF”:
public struct Vertex
{
[Semantic(VertexFieldSemantic.Position)]
public FVector3 position;
[Semantic(VertexFieldSemantic.Normal)]
public FVector3 normal;
[Semantic(VertexFieldSemantic.UV)]
public FVector2 texcoord;
//Specify the Alias of this field to "_BATCH_ID"
[Semantic(VertexFieldSemantic.UserData, "_BATCH_ID")]
public float batchId;
public Vertex(FVector3 position, FVector3 normal ,FVector2 texcoord, float batchId)
{
this.position = position;
this.normal = normal;
this.texcoord = texcoord;
this.batchId = batchId;
}
}
private unsafe static void ExportCustomFieldToGLTF()
{
//Prepare the vertices and indices:
var vertices = new Vertex[]
{
new Vertex(new FVector3(1, 0, 0), new FVector3(0, 1, 0), new FVector2(0, 0), 1),
new Vertex(new FVector3(1, 1, 0), new FVector3(0, 1, 0), new FVector2(0, 1), 2),
new Vertex(new FVector3(0, 1, 0), new FVector3(0, 1, 0), new FVector2(1, 0), 3),
new Vertex(new FVector3(0, 1, 1), new FVector3(0, 1, 0), new FVector2(1, 1), 4),
};
var indices = new int[]
{
0, 1, 2,
1, 2, 3
};
//Convert the vertices into raw bytes
var verticesInBytes = new byte[vertices.Length * sizeof(Vertex)];
fixed(Vertex* pSrc = vertices)
{
Marshal.Copy(new IntPtr(pSrc), verticesInBytes, 0, vertices.Length);
}
//Create a vertex declaration from reflection:
var vd = VertexDeclaration.FromType<Vertex>();
//construct a TriMesh from raw bytes of vertices and indices
var mesh = TriMesh.FromRawData(vd, verticesInBytes, indices, false);
//create a scene with the mesh
var scene = new Scene(mesh);
//export the scene to a binary glTF file
scene.Save("test.glb", FileFormat.GLTF2_Binary);
// The GLTF primitive generated in the test.glb will be:
// {"attributes" : {"POSITION" : 0, "NORMAL" : 1, "TEXCOORD_0" : 2, "_BATCH_ID" : 3}, "mode" : 4}
}
Προηγουμένως, κατά τη μετατροπή του «GLB» σε «U3D», είχε ως αποτέλεσμα λάθος προσανατολισμό. Αυτό το ζήτημα έχει πλέον επιλυθεί.
Προστέθηκε η υποστήριξη εισαγωγής Point cloud σε USD/USDZ.
Προστέθηκε η υποστήριξη εξαγωγής Point cloud σε USD/USDZ.