0

在我的网站中,它允许用户上传 3D 模型文件(.stl、.obj),并且网站会为其生成缩略图。它在我的本地电脑上运行良好,但在天蓝色下不起作用,只生成了一个空图像,没有任何异常(可以绘制背景,但无法渲染对象)。网站应用程序有什么限制吗?

public static void Export(Model3DGroup model, string outputFileName)
{
    var viewport = new Viewport3D();

    viewport.Measure(new Size(320, 240));
    viewport.Arrange(new Rect(0, 0, 320, 240));

    var root = new ModelVisual3D();
    viewport.Children.Add(root);

    var camera = new PerspectiveCamera();
    camera.Position = new Point3D(2, 16, 20);
    camera.LookDirection = new Vector3D(-2, -16, -20);
    camera.UpDirection = new Vector3D(0, 0, 1);
    camera.FieldOfView = 45;
    camera.NearPlaneDistance = 0.1;
    camera.FarPlaneDistance = double.PositiveInfinity;

    viewport.Camera = camera;

    root.Children.Add(new DefaultLights());

    root.Content = model;

    CameraHelper.ZoomExtents(camera, viewport);
    Viewport3DHelper.Export(viewport, outputFileName, Brushes.WhiteSmoke);
}
4

1 回答 1

1

我在他们的论坛上查看了您正在使用的工具包和您的问题如果它在 IIS Express 上而不是在 Azure WebApps 上运行,那么很明显 Helix ToolKit 正在使用一种调用操作系统级别的 DirectX 代码的方法,该代码可能受 WebApp Worker VM Sandbox 限制

Azure WebApps 有一个沙箱,可以在 VM 上运行您的用户代码,作为保护 VM 免受损坏的预防措施,它拒绝直接针对内核和图形的特定调用。

作为试用 Azure 云服务的一种变通方法,它为您提供了更多的自由来处理类似您的场景。

于 2015-07-20T20:40:59.097 回答