Browse our Products
Aspose.3D for Java 24.3 Release Notes
This page contains release notes information for Aspose.3D for Java 24.3.
Improvements and Changes
Key | Summary | Category |
---|---|---|
THREEDNET-1514 | Write more code examples o cover more methods and types. | Task |
THREEDNET-1523 | Optimize mesh causes distortion | Task |
THREEDNET-1516 | Model generated by SweptAreaSolid should not be flat | Bug fixing |
THREEDNET-1517 | Metallic map and roughness map are not present when I am converting fbx to glb | Bug fixing |
API changes
Added members to class com.aspose.threed.Mesh:
/**
* Optimize the mesh's memory usage by eliminating duplicated control points
*
* @param vertexElements Optimize duplicated vertex element data
* @param toleranceControlPoint The tolerance for control point, default value is 1e-9
* @param toleranceNormal The tolerance for normal/tangent/binormal default value is 1e-9
* @param toleranceUV The tolerance for uv, default value is 1e-9
* @return New mesh instance with compact memory usage
*/
public Mesh optimize(boolean vertexElements, float toleranceControlPoint, float toleranceNormal, float toleranceUV)
The new method allows you to control the tolerance for control point, normal and UV.
Added members to class com.aspose.threed.FbxLoadOptions:
/**
* Gets whether to enable compatible mode.
* Compatible mode will try to support non-standard FBX definitions like PBR materials exported by Blender.
* Default value is false.
*
*/
public boolean getCompatibleMode()
/**
* Sets whether to enable compatible mode.
* Compatible mode will try to support non-standard FBX definitions like PBR materials exported by Blender.
* Default value is false.
*
* @param value New value
*/
public void setCompatibleMode(boolean value)
FBX doesn’t support PBR material, different exporter uses different definition for storing PBR material’s parameters, this parameter allows you to reconstruct PBR material as much as possible.
Added members to class com.aspose.threed.FileSystem:
/**
* Initialize a new {@link com.aspose.threed.FileSystem} that only access local directory.
* All file read/write on this FileSystem instance will be mapped to specified directory.
*
* @param directory The directory in your physical file system as the virtual root directory.
*
*/
public static FileSystem createLocalFileSystem(String directory)
/**
* Create a memory-based file system which will maps the read/write operations to memory.
*
*/
public static FileSystem createMemoryFileSystem(Map<String, MemoryStream> files)
public static FileSystem createMemoryFileSystem()
/**
* Create a dummy file system, read/write operations are dummy operations.
*/
public static FileSystem createDummyFileSystem()
/**
* Create a file system to provide to the read-only access to speicified zip file or zip stream.
* File system will be disposed after the open/save operation.
*
*/
public static FileSystem createZipFileSystem(Stream stream, String baseDir)
public static FileSystem createZipFileSystem(Stream stream)
/**
* File system to provide to the read-only access to speicified zip file or zip stream.
* File system will be disposed after the open/save operation.
*
*/
public static FileSystem createZipFileSystem(String fileName)
throws IOException
These methods provide quick ways to create built-in FileSystems for you.
Sample code:
var inputFile = "input.fbx";
var format = FileFormat.detect(inputFile);
//create a load options instance and specify a local file system
var opt = format.createLoadOptions();
opt.setFileSystem(FileSystem.createLocalFileSystem("textures/"));
//load the file
var scene = Scene.fromFile(inputFile, opt);