UE4的自动建树工具
UE4的自动建树工具
一、功能介绍
本工具主要用于对UE4中草坪、花坛、道路等相关模型周边进行自动建树,主要分为四个流程:
-
拆分整体模型
-
生成子图块外轮廓
-
轮廓偏移
-
对偏移部分插值种树
1.拆分整体模型
由于UE4的模型通常为一个整体模型,需要对模型进行拆分,得到单独的子模型图块。UE4支持导出模型三角网的信息,故从模型的三角网着手对其进行拆分。
拆分大致流程为:从模型的第一个三角网索引进行遍历,如果其它三角网中存在索引与此三角网相同则对此三角网进行递归,并将有索引关联的三角网收集,直至没有三角网索引相同,则最终得到该图块所有三角网信息。
2.生成子图块外轮廓
对分离好的每个子图块的三角网进行如下判断:如果图块中的三角网信息不存在共边情况(每条边只被访问一次),则此边为子图块的外轮廓边。为此对每个子图块建立其顶点个数长度的矩阵,对每条边进行遍历,每遍历一次其访问次数加一。最终统计访问次数为一的边即为子图块外轮廓边。
3.轮廓偏移
对需要种树的子图块采用轮廓偏移算法,其算法思路为:对多边形轮廓的每个点产生的前后两条边进行判断,如图(b),两条边由连续三个点P2、P、P1组成,偏移距离为L则偏移后的点为Q。对草坪外轮廓偏移的主要流程为:首先对外轮廓边进行排序,根据边的起点与终点的关联关系进行遍历拼接,其次对排序好的边根据其点的顺序进行判定,逆时针为内缩,顺时针为外扩。对每个点采用上述偏移算法最终生成偏移后的轮廓。
(a)多边形内缩偏移
(b)算法思路
4.对偏移部分插值种树
将偏移后各边长度累加得到总长度,对此长度进行等差变换,公差为插值距离,计算出每棵树所在长度;对偏移后的各点距离与树所在长度进行分析,得到树对应的坐标;最终得到所有树的位置;之后导出所有树数据并提供给UE4进行建模。
二、效果展示
本工具目前经过测试,可根据树干直径、树冠直径和插值距离在UE4中自动生成相关的树,除此之外在原先只能种植一种类型树的基础上,增加了双层方案,可种植不同种类和间距的树。但是,由于现场实际草坪的情况多种多样,后续还需要不断的样本数据测试,并对树木生成的结果进行优化和完善。
作者:卞明月
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!