为 3D 文件中的所有网格生成普通数据

为 3DS 文件中的所有网格生成普通数据

PolygonModifier 类公开的 GenerateNormal 方法可用于为 3DS 文件中的所有网格生成普通数据。如果在网格中定义了 VertexElementSmoothingGroup 元素,则生成的法线数据将被 VertexElementSmoothingGroup 平滑。

编程示例

此代码示例加载一个 3DS 文件,访问所有节点并为所有网格创建正常数据。

// For complete examples and data files, please go to https://github.com/aspose-3d/Aspose.3D-for-.NET

            // Load a 3ds file, 3ds file doesn't have normal data, but it has smoothing group
            Scene s = new Scene(RunExamples.GetDataFilePath("camera.3ds"));
            // Visit all nodes and create normal data for all meshes
            s.RootNode.Accept(delegate(Node n)
            {
                Mesh mesh = n.GetEntity<Mesh>();
                if (mesh != null)
                {
                    VertexElementNormal normals = PolygonModifier.GenerateNormal(mesh);
                    mesh.VertexElements.Add(normals);
                }
                return true;
            });