目录
使用 Blender 和 Three.js
在本章中,我们将深入了解如何将 Blender 和 Three.js 结合使用。本章将解释以下概念:
- 从 Three.js 导出并导入到 Blender:我们将创建一个简单的场景,从 Three.js 导出它,然后在 Blender 中加载和渲染它。
- 从 Blender 导出静态场景并导入到 Three.js:在这里,我们将在 Blender 中创建一个场景,将其导出到 Three.js,并在 Three.js 中渲染它。
- 从 Blender 导出动画并导入到 Three.js:Blender 允许我们创建动画,我们将创建一个简单的动画,并在 Three.js 中加载和显示它。
- 在 Blender 中烘焙光照图和环境遮挡图:Blender 允许我们烘焙不同类型的图,我们可以在 Three.js 中使用这些图。
- 在 Blender 中进行自定义 UV 建模:通过 UV 建模,我们确定纹理应用于几何图形的方式。Blender 提供了许多工具使其变得容易。我们将探讨如何使用 Blender 的 UV 建模功能并在 Three.js 中使用结果。
在开始本章之前,请确保安装了 Blender,以便您可以跟着操作。您可以通过从此处下载适用于您操作系统的安装程序来安装 Blender:https://www.blender.org/download/。本章中显示的 Blender 的截图是使用 macOS 版本的 Blender 拍摄的,但是 Windows 和 Linux 版本看起来相同。
让我们从我们的第一个主题开始,在其中在 Three.js 中创建一个场景,将其导出到中间格式,最后导入到 Blender 中。
从 Three.js 导出并导入到 Blender
在此示例中,我们将仅采用一个简单的示例,
重用我们在第6章《探索高级几何》中看到的参数化几何。
如果在浏览器中打开 export-to-blender.html,
您可以创建一些参数化几何图形。
在右侧菜单的底部,我们添加了一个 exportScene 按钮:
当您单击该按钮时,模型将以 GLTF 格式保存并下载到计算机上。
要使用 Three.js 导出模型,我们可以使用 GLTFExporter,如下所示:
const exporter = new GLTFExporter();
const options = {
trs: false,
onlyVisible: true,
binary: false
};
exporter.parse(
scene,
(result) => {
const output = JSON.stringify(result, null, 2);
save(new Blob([output], { type: 'text/plain' }), 'out.gltf');
},
(error) => {
console.log('在解析场景时发生错误', error);
},
options
);