在画布应用中加载 3D 模型
在画布应用中从各种来源加载 3D 模型。 您可以从附件或媒体内容、直接 URL 或 Base64 编码的 URI(统一资源标识符)中获取模型。
确保 3D 模型已经过优化以与 Power Apps 配合使用来最大程度地缩短加载时间。
从通用连接器加载 3D 模型
从附件或媒体内容加载 3D 模型取决于支持数据连接器的方式。 要检查数据连接器是否使用混合现实控件,请将标签控件添加到画布应用并将 Text 属性设置为数据源。 如果标签文本以 appres://
开头,该数据连接器应与 3D 对象 控件一起使用。
提示
您可以将 .glb 文件扩展名重命名为 .jpg,然后通过“媒体”选项卡直接将其上载到应用。
从 Microsoft Lists 加载 3D 模型
首先,在 SharePoint 中创建一个列表,并为您希望包含在应用中的每个 3D 模型添加一个条目。
- 使用 Microsoft Lists 创建列表。
- 选择 + 添加列的列标题,然后选择显示/隐藏列。
- 选择附件,然后选择应用。
- 向列表中添加一个条目。 在输入表单中,选择添加附件并选择您的 3D 模型文件。
- 对要包含在应用中的每个模型重复此操作。
然后,向您的应用添加一个图库,将其源设置为列表,添加一个 3D 对象 控件,并将其源设置为库。
- 在 Power Apps Studio 中添加库。
- 将库数据源设置为列表。
- 添加 3D 对象 控件。
- 在高级属性选项卡中,将源设置为 First(Gallery1.Selected.Attachments).Value。
从 Excel 工作簿加载 3D 模型
首先,同一文件夹内包含模型文件的 OneDrive 中创建一个 Excel 工作簿。 为您希望包含在应用中的每个模型添加一个包含行的表。
创建 Excel 工作簿并将其保存在包含模型文件的 OneDrive 文件夹中。
在工作簿中,创建一个表,其中包含名称为 3DModel [图像] 和名称的列。
为要显示在应用库中的每个模型添加一个行。 在名称列中输入模型的标签,在 3DModel [图像] 列中输入模型文件的相对文件路径。
关闭此工作簿。
然后,向您的应用添加一个库,将其源设置为列表,添加一个 3D 对象 控件,并将其源设置为 Excel 工作簿。
- 在 Power Apps Studio 中添加库。
- 使用 OneDrive 连接器将库数据源设置为 Excel 工作簿。
- 添加 3D 对象 控件。
- 在高级属性选项卡中,将源设置为 Gallery1.Selected.'3DModel'。
从 URL 加载 3D 模型
3D 对象 控件的 Source 属性可以是 3D 模型文件的 URL。
3D 模型文件必须位于没有限制性跨源资源共享 (CORS) 设置的服务器上。 托管服务器必须允许来自 powerapps.com 的跨源请求。 您可以使用 Dropbox 或 GitHub 来托管您的文件并获取符合 CORS 要求的 URL。
在 Dropbox 中托管您的 3D 模型文件
- 将 3D 模型文件上传到 Dropbox 并选择共享。
- 生成公共下载链接。 例如,https://www.dropbox.com/s/rANdoMGeneR4tedLink/my-file.glb?dl=0。
- 按如下方式修改 URL:将 www 替换为 dl,删除末尾的 ?dl=0。
您现在有一个直接访问的 URL(在我们的示例中为 https://dl.dropbox.com/s/rANdoMGeneR4tedLink/my-file.glb),您可以将其用作 3D 控件的来源。
在 GitHub 中托管您的 3D 模型文件
- 确保 3D 模型文件存储在公共存储库中。
- 获取文件的 URL。 例如,https://github.com/microsoft/experimental-pcf-control-assets/blob/master/robot_arm.glb。
- 按如下方式修改 URL:删除 /blob/,并将 https://github.com 替换为 https://raw.githubusercontent.com。
您现在有一个符合 CORS 要求的 URL(在我们的示例中为 https://raw.githubusercontent.com/microsoft/experimental-pcf-control-assets/master/robot_arm.glb),您可以将其用作 3D 控件的来源。
加载 Base64 编码的 3D 模型
3D 对象 控件的 Source 属性可以是格式为 data:base64,<Base64-encoded content> 的 Base64 编码 3D 模型数据 URI。
重要
如果使用 Base64 编码模型,加载您的应用可能需要较长时间。
您可以使用 Microsoft Power Automate 或 Microsoft Dataverse 创建模型的 Base64 编码 URI。
使用 Microsoft Power Automate 创建 Base64 编码的 3D 模型
Power Automate 可以使用 dataUri(base64(file content)) 表达式将存储在 SharePoint 文档库中的 3D 模型文件转换为 Base64。
在以下示例中,名为 3DModelBase64Library 的文档库和名为 3DModelBase64 的列表存在于同一 SharePoint 网站中。 该列表必须包含多行文本类型的列。
在文档库中,根据在 SharePoint 中添加新文件时,完成自定义操作模板创建流。
将库名称设置为 3DModelBase64Library(此示例中的文档库的名称)。
添加从 SharePoint 中获取文件内容步骤。
将文件标识符设置为标识符。
添加从 SharePoint 创建项步骤。
将列表名称设置为 3DModelBase64(此示例中列表的名称),并将标题设置为带扩展名的文件名。
将 dataUri 设置为以下表达式:
concat('data:model/gltf-binary;base64,', Last(split(dataUri(base64(body('Get_file_content'))), ',')))
将文件添加到文档库时,流会运行,并将文件转换为 Base64 编码的数据 URI。
在 Power Apps Studio 中,使用 SharePoint 数据连接器将 3D 对象 控件连接到列表。 将控件的 Source 属性设置为 Base64 编码的数据 URI。
使用 Microsoft Dataverse 创建 Base64 编码的 3D 模型
Microsoft Dataverse 中的注释(批注)表会将文档字段中附加的任何文件转换为 Base64 文件。
在画布应用中从 URL 加载 3D 模型时的已知限制
- Power Apps 的安全体系结构需要 HTTPS 链接,而不是 HTTP。
- 托管模型文件的服务器不得要求进行身份验证,并且必须符合 CORS 要求。