分享一个基于Three.js封装的树生成器插件@dgreenheck/ez-tree,它能够帮助开发者轻松创建不同类型且渲染效果极为真实的3D树木模型。该插件生成的树木不仅仅是静态模型,还包含了动态的风动效果,整体视觉表现力出色。
安装
通过 npm 或 pnpm 等包管理器将插件安装到本地项目:
npm i @dgreenheck/ez-tree
# 或
pnpm add @dgreenheck/ez-tree
使用
其API设计简洁,核心步骤分为三步:引入、实例化并添加到场景,然后在动画循环中更新。这对于熟悉Three.js基础用法的开发者来说几乎没有学习成本。
import { Tree } from '@dgreenheck/ez-tree';
// 1. 创建并生成树
const tree = new Tree();
tree.generate();
// 2. 进行位置、缩放等基础变换
tree.position.set(0, 0, 0);
tree.scale.set(0.1, 0.1, 0.1);
// 3. 将树对象添加到Three.js场景中
this.scene.add(tree);
为了让树木产生自然的摇曳动画,需要在你的渲染循环(如requestAnimationFrame)中调用其更新方法:
sceneAnimation(): void {
this.renderAnimation = requestAnimationFrame(() => this.sceneAnimation());
const elapsedTime = this.clock.getElapsedTime();
// 更新Tree的动态效果(如风动)
if (this.tree) {
this.tree.update(elapsedTime);
}
this.renderer.render(this.scene, this.camera);
}
在本地项目中的效果如下图所示,即使没有精细调整光照,其细节表现也已十分出色:

放大查看,树叶与树枝的渲染细节处理到位,真实感强:

参数与定制
该插件并非只有单一形态的树木,它提供了丰富的参数用于生成不同类型的树木。你可以在其官网进行实时调试,直观地调整各项参数。
例如,可以创建不同品种的树:

调整树枝的生长方向:

控制树叶的疏密程度:

这些参数化的控制,使得它能够适应游戏场景、数据可视化大屏或需要自然生态元素的3D可视化项目需求。
项目地址
ez-tree 由国外开发者 dgreenheck 创建和维护,如果你的项目需要快速引入高质量、带动态效果的植被模型来丰富场景,这个插件是一个高效的选择。
GitHub 项目地址:https://github.com/dgreenheck/ez-tree
|