Viewport3D/BitmapExporter (WPF) 在 Web 应用程序中不起作用
Viewport3D/BitmapExporter (WPF) doesn't Work in Web Apps
在我的网站上,它允许用户上传 3D 模型文件(.stl、.obj),网站会为其生成缩略图。在我本地的pc上运行的很好,但是在azure下就不行了,无一例外的只生成了一张空图(背景可以画出来,物体渲染不出来)。网站应用有限制吗?
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);
}
我在他们的论坛 here、 上查看了您正在使用的工具包和您的问题明确 Helix ToolKit 正在使用调用 OS 级 directX 代码的方法,该代码可能受到 WebApp Worker VM 沙箱的限制.
Azure WebApps 有一个沙盒,可以在 VM 上运行您的用户代码,作为保护 VM 不被损坏的预防措施,它拒绝直接针对内核的特定调用,并且图形。
作为试用 Azure 云服务的变通方法,它可以让您更自由地处理像您这样的场景。
在我的网站上,它允许用户上传 3D 模型文件(.stl、.obj),网站会为其生成缩略图。在我本地的pc上运行的很好,但是在azure下就不行了,无一例外的只生成了一张空图(背景可以画出来,物体渲染不出来)。网站应用有限制吗?
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);
}
我在他们的论坛 here、 上查看了您正在使用的工具包和您的问题明确 Helix ToolKit 正在使用调用 OS 级 directX 代码的方法,该代码可能受到 WebApp Worker VM 沙箱的限制.
Azure WebApps 有一个沙盒,可以在 VM 上运行您的用户代码,作为保护 VM 不被损坏的预防措施,它拒绝直接针对内核的特定调用,并且图形。
作为试用 Azure 云服务的变通方法,它可以让您更自由地处理像您这样的场景。