以编程方式将3D模型添加到PowerPoint演示文稿中



由于windows 10 Fall Creator更新,您可以将3D模型直接添加到PowerPoint演示文稿中。

我一直在使用OpenXML以编程方式创建PowerPoint文档,但我找不到将3D模型添加到PowerPoint文件的方法。有人知道如何做到这一点吗?

正如Steve在评论中建议的那样,我创建了一个只有3D模型的空pptx文件,并将其解压缩以查看内容。

在内容中存在称为媒体的子文件夹,3D内容位于该子文件夹中;model3d1.glb";。然而,3D内容会自动从我使用的格式(.3mf(转换为(.glb(。看起来powerpoint会自动将所有支持的格式转换为GL Transmission Format

我的问题是:有可能避免转换吗?

首先,您可能会发现应该用OOXML包装AltertanativeContent,它包含两个部分,用于渲染3D模型的Choice和作为模型的图像演示器的Fallback。

其次,您可以通过包装OOXML元素来轻松地填充Fallback元素。但是对于Choice元素,您应该创建一个OpenXMLUnknowElement并用OpenXMLAttributes填充它。例如,你应该有一个OpenXMLUnknowElement,用于相机、灯光、翻译对象等…

我发现了一些启发法,可以帮助我处理这个解决方案,虽然这不是一个完整的解决方案,但这是一个很好的方法。

  1. PowerPoint中所有3D场景中的Lights都具有相同的值,因此您可以完全从一个简单的文件中使用它们:(
  2. 您可以使用默认的"摄影机",也可以使用此答案计算"摄影机"的距离
  3. 对于meterPerModelUnit缩放因子,在使用一些可用的软件包(如Microsoft GLTF或Khronos GLTF Loader(读取和解析您的3D模型后,您可以使用此&这公式为1/(2*MaxExtentsOnXYZ(1/MaxExtentsOn XYZ
  4. 生成回退图像是一项艰巨的任务,如果您使用一些任意图像,用户应该单击它来重新加载场景。考虑到这个问题将来可能会有一个功能发布,但我发现,通过使用形状框的范围的较低维度的图像来填充零件,PowerPoint会自动为您带来3D渲染模型,我不知道这是一个错误还是一个预期的功能
  5. 另一种自动转到3D渲染场景的方法是使用蒙皮骨骼动画。我想不出一个简单的方法来做这件事,但我认为这是一个可行的解决方案。请记住,正如Microsoft 3D模型指南所述,当前版本的PowerPoint不支持其他类型的动画(旋转…(
  6. 我也不知道如何计算PreTrans,因为有一个面向中心的对象是至关重要的

对于您的第二个问题,我认为GLB是传输3D模型文件的标准方式。正如Todd Main向我建议的那样,你可以直接向微软Open Specs Q&

相关内容

  • 没有找到相关文章

最新更新