在现代应用程序开发中,3D内容的集成为用户界面增添了丰富的视觉效果和交互性。本文将指导如何在WPF应用程序中添加3D模型,使用的工具包括Expression Blend和开源3D建模软件Blender。
在开始之前,请确保已经安装了以下软件:
本教程假定已经熟悉Expression Blend,而不需要具备Blender的使用经验。
首先启动Expression Blend,并创建一个新的WPF应用程序项目。可以将项目命名为“XA-20 Razorback”。接下来,需要调整应用程序窗口的尺寸,以适应3D模型的显示。将窗口对象的宽度和高度分别设置为770和550,并保存更改。
在项目中添加一个新的文件夹,并将其重命名为“Razorback”。然后,导入之前下载的.mtl、.obj文件和相关的图像文件。可以通过右键点击“Razorback”文件夹,选择“添加现有项”,然后选择所需的文件。导入时,如果出现对话框询问是否需要复制一些图像文件到项目中,请选择“否”。
在本教程中,不会从头开始设计3D模型,而是使用一个现成的、免费的3D模型——XA-20 Razorback Strike Fighter。可以从提供的链接下载包含模型文件的.7z文件。下载完成后,解压缩文件,应该得到一个包含.mtl文件、.obj文件和五个图像文件的文件夹。
由于直接在Expression Blend中插入3D模型可能会导致程序崩溃,可以使用Blender来修复这个问题。确保已经下载并安装了Blender。启动Blender后,会看到一个包含启动画面的窗口。点击画面外的区域可以关闭启动画面。
接下来,需要删除默认的立方体模型。选中立方体(通过右键点击),然后按“X”键并选择“删除”。之后,通过“文件”>“导入”>“Wavefront (.obj)”导入之前有问题的.obj文件。导入模型后,所有的网格对象都会被选中,模型外侧的橙色线条表示它已被选中。
(可选步骤)可以通过按“R”键然后按“X”键,输入“-90”并按“Enter”键,来围绕x轴旋转模型。如果想查看带有纹理的模型,可以在视口着色上下文菜单中点击“纹理”按钮。
取消选中模型(按“A”键),然后通过“文件”>“导出”>“Wavefront (.obj)”导出模型。导航到之前解压缩的文件夹,将默认的对象文件名“Untitled.obj”更改为“XA-20_Razorback_Strike_Fighter.obj”,然后点击“导出OBJ”按钮。
由于之前Expression Blend崩溃,需要重新启动它并打开XA-20 Razorback项目。在项目面板中展开“Razorback”文件夹,删除“XA-20_Razorback_Strike_Fighter.mtl”和“XA-20_Razorback_Strike_Fighter.obj”。完成这些操作后,重新导入刚刚在Blender中编辑过的.obj和.mtl文件。
重新导入这两个文件后,右键点击对象文件并选择“插入”。Expression Blend将在根布局容器中添加一个Viewport3D对象。Viewport3D对象包含各种WPF 3D对象,包括PerspectiveCamera、Lights和构成3D模型的ModelVisual3D对象。
Viewport3D对象目前只占据了应用程序窗口的一小部分,因此需要增加其大小。右键点击对象和时间线面板中的Viewport3D对象,选择“重置布局”>“全部”。Viewport3D对象现在应该占据了整个根布局容器,使3D模型更加可见。