在 C# 中指定 3D 文件加载选项
Contents
[
Hide
]
概述
本文介绍如何在Scene对象内的 C# 中使用各自的加载选项类加载不同类型的 3D 文件,然后再加载 将其保存为不同的 3D 支持的文件格式。通过加载和保存,您可以执行不同的转换数量。
- 在 C# 中将 FBX 转换为 OBJ
- 在 C# 中将 3DS 转换为 FBX
- 在 C# 中将 U3D 转换为 OBJ
- 在 C# 中将 OBJ 转换为 3DS
- 在 C# 中将X转换为 3DS
3D 文件加载选项
有几个接受 LoadOptions 对象的 Scene.Open 方法重载或Scene类构造函数重载。这应该是从 LoadOptions 类派生的类的对象。每个加载格式都有一个对应的类,用于保存该加载格式的加载选项,例如,对于 FileFormat.Collada 保存格式,有 ColladaSaveOptions。
使用Discreet 3DS 加载选项
下面的 C# 代码显示了如何在加载谨慎的 3DS 文件之前设置加载选项。
// For complete examples and data files, please go to https://github.com/aspose-3d/Aspose.3D-for-.NET
Discreet3dsLoadOptions loadOpts = new Discreet3dsLoadOptions();
// Sets wheather to use the transformation defined in the first frame of animation track.
loadOpts.ApplyAnimationTransform = true;
// Flip the coordinate system
loadOpts.FlipCoordinateSystem = true;
// Prefer to use gamma-corrected color if a 3ds file provides both original color and gamma-corrected color.
loadOpts.GammaCorrectedColor = true;
// Configure the look up paths to allow importer to find external dependencies.
loadOpts.LookupPaths = new List<string>(new string[] { "textures" });
使用Obj加载选项
下面的 C# 代码显示了如何在加载 3D Obj文件之前设置加载选项。
// For complete examples and data files, please go to https://github.com/aspose-3d/Aspose.3D-for-.NET
// Initialize an object
ObjLoadOptions loadObjOpts = new ObjLoadOptions();
// Import materials from external material library file
loadObjOpts.EnableMaterials = true;
// Flip the coordinate system.
loadObjOpts.FlipCoordinateSystem = true;
// Configure the look up paths to allow importer to find external dependencies.
loadObjOpts.LookupPaths.Add("textures");
STL 加载选项的使用
下面的 C# 代码显示了如何在加载 STL 文件之前设置加载选项。
// For complete examples and data files, please go to https://github.com/aspose-3d/Aspose.3D-for-.NET
// Initialize an object
StlLoadOptions loadSTLOpts = new StlLoadOptions();
// Flip the coordinate system.
loadSTLOpts.FlipCoordinateSystem = true;
// Configure the look up paths to allow importer to find external dependencies.
loadSTLOpts.LookupPaths = new List<string>(new string[] { "textures" });
U3D 加载选项的使用
下面的 C# 代码显示了如何在加载 U3D 文件之前设置加载选项。
// For complete examples and data files, please go to https://github.com/aspose-3d/Aspose.3D-for-.NET
// Initialize an object
U3dLoadOptions loadU3DOpts = new U3dLoadOptions();
// Flip the coordinate system.
loadU3DOpts.FlipCoordinateSystem = true;
// Configure the look up paths to allow importer to find external dependencies.
loadU3DOpts.LookupPaths = new List<string>(new string[] { "textures" });
glTF 加载选项的使用
下面的 C# 代码显示了如何在加载 glTF 文件之前设置加载选项。
翻转V/T纹理坐标
// For complete examples and data files, please go to https://github.com/aspose-3d/Aspose.3D-for-.NET
// Initialize Scene class object
Scene scene = new Scene();
// Set load options
GltfLoadOptions loadOpt = new GltfLoadOptions();
// The default value is true, usually we don't need to change it. Aspose.3D will automatically flip the V/T texture coordinate during load and save.
loadOpt.FlipTexCoordV = true;
scene.Open("Duck.gltf", loadOpt);
使用层载荷选项
下面的 C# 代码显示了如何在加载 PLY 模型之前设置加载选项。
// For complete examples and data files, please go to https://github.com/aspose-3d/Aspose.3D-for-.NET
// initialize Scene class object
Scene scene = new Scene();
// initialize an object
PlyLoadOptions loadPLYOpts = new PlyLoadOptions();
// Flip the coordinate system.
loadPLYOpts.FlipCoordinateSystem = true;
// load 3D Ply model
scene.Open("vase-v2.ply", loadPLYOpts);
使用DirectX X加载选项
下面的 C# 代码显示了如何在加载DirectX X文件之前设置加载选项。
// For complete examples and data files, please go to https://github.com/aspose-3d/Aspose.3D-for-.NET
// initialize Scene class object
Scene scene = new Scene();
// initialize an object
XLoadOptions loadXOpts = new XLoadOptions(FileContentType.ASCII);
// flip the coordinate system.
loadXOpts.FlipCoordinateSystem = true;
// load 3D X file
scene.Open("warrior.x", loadXOpts);
使用 RVM 加载选项
C#
// set load options of RVM
Scene scene = new Scene();
var opt = new RvmLoadOptions()
{
CylinderRadialSegments = 32,
DishLatitudeSegments = 16,
DishLongitudeSegments = 24,
TorusTubularSegments = 40
};
// import RVM
scene.Open("LAD-TOP.rvm", opt);
// save in the OBJ format
scene.Save("LAD-TOP.obj", FileFormat.WavefrontOBJ);使用 FBX 加载选项
// For complete examples and data files, please go to https://github.com/aspose-3d/Aspose.3D-for-.NET
//This will output all properties defined in GlobalSettings in FBX file.
Scene scene = new Scene();
var opt = new FbxLoadOptions() { KeepBuiltinGlobalSettings = true };
scene.Open("test.FBX", opt);
foreach (Property property in scene.RootNode.AssetInfo.Properties)
{
Console.WriteLine(property);
}