Jelajahi Produk kami

Catatan Rilis Aspose.3D untuk Node.js melalui Java 24.1

Peningkatan dan Perubahan

KeyRingkasanKategori
THREEDNET-1458Izinkan optimalkan mesh untuk menghilangkan titik kontrol yang diduplikasi.Fitur Baru
THREEDNET-1468Izinkan tentukan sistem sumbu saat mengekspor model ke STL/OBJ/PLYFitur Baru
THREEDNET-222Tambahkan dukungan untuk operasi boolean kompleks pada meshFitur Baru
THREEDNET-1441Izinkan operasi Boolean dapat bekerja pada mesh ordinalPeningkatan
THREEDNET-1451Ekspor OBJ tekstur tidak benar.Perbaikan bug
THREEDNET-1452Tidak dapat mengalokasikan memori perangkat GPU untuk tekstur dengan ukuran 8192 * 8192Perbaikan bug
THREEDNET-1453Ekspor GLTF tekstur tidak benar.Perbaikan bug
THREEDNET-1454Ekspor FBX - pengelompokan model yang salah dieksporPerbaikan bug
THREEDNET-1461Titik pengikat pada objek yang berbeda mengembalikan nilai yang sama ketika nama properti sama.Perbaikan bug
THREEDNET-1462Aspose.3D menghasilkan data animasi yang tidak kompatibelPerbaikan bug

Perubahan API

Ditambahkan kelas com.aspose.threed.AxisSystem

Format file tertentu seperti OBJ, STL, dan PLY memungkinkan Anda untuk mendefinisikan sistem koordinat, vektor atas, dan vektor depan selama proses ekspor. Anda dapat memanfaatkan kelas ini untuk menyediakan dan mengkonfigurasi informasi ini.

Diganti nama kelas com.aspose.threed.CoordinatedSystem menjadi com.aspose.threed.CoordinateSystem

Ditambahkan anggota ke kelas com.aspose.threed.AnimationNode:

    /**
     * Menemukan titik pengikat berdasarkan target dan nama.
     * @param target Target titik pengikat yang akan dicari.
     * @param name Nama titik pengikat yang akan dicari.
     * @return Titik pengikat.
     */
    public BindPoint findBindPoint(A3DObject target, String name)

Overload yang diperbarui sekarang memungkinkan Anda untuk menentukan target dan nama, sedangkan implementasi sebelumnya hanya melakukan pencarian berdasarkan nama yang diberikan.

Ditambahkan anggota ke kelas com.aspose.threed.AssetInfo:

    /**
     * Mendapatkan vektor depan yang digunakan dalam aset ini.
     */
    public Axis getFrontVector()
    
    /**
     * Menetapkan vektor depan yang digunakan dalam aset ini.
     * @param value Nilai baru
     */
    public void setFrontVector(Axis value)
    
    /**
     * Mendapatkan sistem koordinat/vektor atas/vektor depan aset info.
     */
    public AxisSystem getAxisSystem()
    
    /**
     * Menetapkan sistem koordinat/vektor atas/vektor depan aset info.
     * @param value Nilai baru
     */
    public void setAxisSystem(AxisSystem value)

Beberapa format seperti FBX mungkin mendefinisikan vektor depan khusus di dalam file FBX.

Ditambahkan anggota ke kelas com.aspose.threed.Axis:

    /**
     * Sumbu -X.
     */
    NEGATIVE_X_AXIS,
    /**
     * Sumbu -Y.
     */
    NEGATIVE_Y_AXIS,
    /**
     * Sumbu -Z.
     */
    NEGATIVE_Z_AXIS;

Nilai enum tambahan sekarang menawarkan spesifikasi yang lebih tepat dari arah untuk sumbu saat membuat sistem sumbu.

Ditambahkan kelas com.aspose.threed.BoneLinkMode

Ditambahkan anggota ke kelas com.aspose.threed.Bone:

    /**
     * Mode tautan tulang mengacu pada cara tulang terhubung atau ditautkan ke tulang induknya dalam struktur hierarkis.
     */
    public BoneLinkMode getLinkMode()
    
    /**
     * Mode tautan tulang mengacu pada cara tulang terhubung atau ditautkan ke tulang induknya dalam struktur hierarkis.
     * @param value Nilai baru
     */
    public void setLinkMode(BoneLinkMode value)

Fitur LinkMode menawarkan mode tautan FBX-kompatibel untuk tulang dalam konteks aplikasi.

Contoh kode

        Bone boneToLimbNode1 = new Bone("")
        bone.setNode(limbNode1);
        bone.setLinkMode(BoneLinkMode.TOTAL_ONE);

Ditambahkan anggota ke kelas com.aspose.threed.Mesh:

    /**
     * Optimalkan penggunaan memori mesh dengan menghilangkan titik kontrol yang diduplikasi
     * @param vertexElements Optimalkan data elemen vertex yang diduplikasi
     * @return Instance mesh baru dengan penggunaan memori yang ringkas
     */
    public Mesh optimize(boolean vertexElements)

Contoh kode

        Mesh mesh = (new Box()).toMesh();
        // 1341 bytes, 24 vertices,  24 normals, 24 texture coordinates,
        (new Scene(mesh)).save("unoptimized.obj");

        // Hilangkan titik kontrol dan data elemen vertex yang diduplikasi dengan menggunakan kembali vektor yang sama.
        Mesh optimizedMesh = mesh.optimize(true);
        // 640 bytes, 8 vertices,  6 normals, 4 texture coordinates
        (new Scene(optimizedMesh)).save("optimized.obj");

Ditambahkan anggota ke kelas com.aspose.threed.ObjSaveOptions:

    /**
     * Mendapatkan sistem sumbu dalam file yang diekspor.
     */
    public AxisSystem getAxisSystem()
    
    /**
     * Menetapkan sistem sumbu dalam file yang diekspor.
     * @param value Nilai baru
     */
    public void setAxisSystem(AxisSystem value)

Contoh kode untuk mengonversi scene ke file OBJ sambil menggunakan sistem sumbu khusus.

Contoh kode

        Scene scene = Scene.fromFile("input.fbx");
        ObjSaveOptions opt = new ObjSaveOptions();
        opt.setAxisSystem(new AxisSystem(CoordinateSystem.RIGHT_HANDED, Axis.Y_AXIS, Axis.X_AXIS));
        opt.setFlipCoordinateSystem(true);
        scene.save("test.obj", opt);

Ditambahkan anggota ke kelas com.aspose.threed.PlySaveOptions:

    /**
     * Mendapatkan sistem sumbu dalam file yang diekspor.
     */
    public AxisSystem getAxisSystem()
    
    /**
     * Menetapkan sistem sumbu dalam file yang diekspor.
     * @param value Nilai baru
     */
    public void setAxisSystem(AxisSystem value)

Contoh kode untuk mengonversi scene ke file PLY sambil menggunakan sistem sumbu khusus.

Contoh kode

        Scene scene = Scene.fromFile("input.fbx");
        PlySaveOptions opt = new PlySaveOptions();
        opt.setAxisSystem(new AxisSystem(CoordinateSystem.RIGHT_HANDED, Axis.Y_AXIS, Axis.X_AXIS));
        opt.setFlipCoordinateSystem(true);
        scene.save("test.ply", opt);

Ditambahkan anggota ke kelas com.aspose.threed.Transform:

    /**
     * Mendapatkan penskalaan
     */
    public Vector3 getScaling()
    
    /**
     * Menetapkan penskalaan
     * @param value Nilai baru
     */
    public void setScaling(Vector3 value)
    
    /**
     * Mendapatkan offset penskalaan
     */
    public Vector3 getScalingOffset()
    
    /**
     * Menetapkan offset penskalaan
     * @param value Nilai baru
     */
    public void setScalingOffset(Vector3 value)

    /**
     * Mendapatkan offset rotasi
     */
    public Vector3 getRotationOffset()
    
    /**
     * Menetapkan offset rotasi
     * @param value Nilai baru
     */
    public void setRotationOffset(Vector3 value)

Properti ScalingOffset, ScalingPivot, RotationOffset, dan RotationPivot memungkinkan definisi rotasi dan penskalaan yang lebih tepat, memastikan kompatibilitas dengan standar Maya/3ds Max.


 
 Indonesia