EZ-Tree:基于Three.js的程序化树木生成器

EZ-Tree:基于Three.js的程序化树木生成器

【免费下载链接】tree-js Procedural tree generator written with JavaScript and Three.js 【免费下载链接】tree-js 项目地址: https://gitcode.com/gh_mirrors/tr/tree-js

EZ-Tree是一个功能强大的程序化树木生成器,拥有数十个可调参数。该项目不仅提供独立的树木生成库,可以导入到您的应用程序中按需动态生成树木,还包含一个独立的Web应用,允许您在浏览器中创建树木并导出为.PNG或.GLB文件。

项目核心特性

EZ-Tree基于JavaScript和Three.js构建,采用递归算法生成复杂的分支结构,每棵树都能展现出独特的几何形态。通过精细的参数控制系统,用户可以全面定制树木的外观特征。

技术架构与应用场景

该项目采用模块化设计,核心库位于src/lib目录,包含树木生成的核心逻辑和算法。独立应用位于src/app目录,提供直观的用户界面和实时预览功能。

主要应用领域

  1. 游戏开发 - 为游戏世界创建丰富多样的生态环境
  2. 虚拟现实 - 构建沉浸式森林景观,提升用户体验
  3. 建筑可视化 - 在建筑设计和城市规划模型中添加逼真树木
  4. 教育科研 - 辅助学生和研究人员理解树木生长模式

快速开始指南

安装方法

npm i @dgreenheck/ez-tree

基础使用示例

// 创建新的树木实例
const tree = new Tree();

// 设置参数
tree.options.seed = 12345;
tree.options.trunk.length = 20;
tree.options.branch.levels = 3;

// 生成树木并添加到Three.js场景
tree.generate();
scene.add(tree);

本地运行独立应用

要本地运行独立应用,首先需要构建EZ-Tree库:

npm install
npm run app

使用Docker运行应用

docker compose build
docker compose up -d

树木参数详解

TreeOptions类定义了一个选项对象,控制程序化生成树木的各种参数。每个属性都允许自定义树木的外观,包括树皮、树枝和树叶。

通用属性

  • seed:设置随机生成的初始值,确保使用相同种子时生成一致的树木
  • type:定义树木类型,可设置为TreeType枚举中的选项

树皮参数

树皮对象控制树干的外观和属性:

  • type:指定要使用的树皮纹理类型
  • tint:确定应用于树皮的色调颜色
  • flatShading:布尔属性,指示是否对树皮使用平面着色
  • textured:布尔值,指示是否将纹理应用于树皮
  • textureScale:控制树皮纹理在x和y轴上的缩放比例

树枝参数

树枝对象定义树干和树枝级别的参数:

  • levels:递归分支级别的数量
  • angle:定义子分支相对于父分支生长的角度
  • children:指定每个级别的子分支数量
  • force:表示鼓励树木生长的外部方向力
  • gnarliness:定义每个分支级别应具有的扭曲或卷曲程度
  • length:每个级别的分支长度
  • radius:每个级别的分支半径(或粗细)
  • sections:沿每个分支级别长度的段数
  • segments:构成每个分支的径向段数
  • start:指定子分支应开始形成的父分支位置
  • taper:控制每个级别分支的锥度
  • twist:定义应用于每个分支级别的扭曲量

树叶参数

树叶对象定义控制树叶外观和放置的属性:

  • type:指定树叶纹理类型
  • billboard:定义树叶的渲染方式
  • angle:定义树叶相对于父分支的角度
  • count:要生成的树叶数量
  • start:指定树叶应开始生长的分支长度位置
  • size:树叶的大小
  • sizeVariance:指定每个树叶实例应具有的大小变化量
  • tint:应用于树叶的色调颜色
  • alphaTest:设置树叶透明度的alpha阈值

程序化树木生成效果 EZ-Tree生成的多样化树木效果展示

项目结构与资源

项目包含完整的源代码、预设配置和资源文件:

  • 核心库源码:src/lib/
  • 独立应用源码:src/app/
  • 预设配置:src/lib/presets/
  • 纹理资源:src/lib/assets/

通过EZ-Tree,开发者和艺术家可以轻松创建逼真的三维树木模型,为数字世界增添自然的生机与美感。

【免费下载链接】tree-js Procedural tree generator written with JavaScript and Three.js 【免费下载链接】tree-js 项目地址: https://gitcode.com/gh_mirrors/tr/tree-js

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值