为 3D 模型的所有网格生成正常数据
Contents
[
Hide
]
Aspose.3D for Java API 支持为 3D 模型的所有网格生成正常数据 (没有正常数据)。
为 3DS 模型的所有网格生成正常数据
PolygonModifier
类公开的generateNormal方法可用于为 3DS 文件中的所有网格生成正常数据。如果在网格中定义了VertexElementSmoothingGroup元素,则生成的法线数据将由VertexElementSmoothingGroup平滑。
编程示例
此代码示例加载一个 3DS 文件,访问所有节点并为所有网格创建正常数据。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// The path to the documents directory. | |
String MyDir = RunExamples.getDataDir(); | |
// Load a 3ds file, 3ds file doesn't have normal data, but it has smoothing group | |
Scene s = new Scene(MyDir + "camera.3ds"); | |
// Visit all nodes and create normal data for all meshes | |
s.getRootNode().accept(new NodeVisitor() { | |
@Override | |
public boolean call(Node node) { | |
Mesh mesh = (Mesh)node.getEntity(); | |
if (mesh != null) | |
{ | |
VertexElementNormal normals = PolygonModifier.generateNormal(mesh); | |
mesh.addElement(normals); | |
} | |
return true; | |
} | |
}); |