UE5 PCG 程序化场景 · 实机展示(视频)

【概述】 由整套 PCG 图表生成的最终场景实机演示:房屋、道路、草地、岩石、植被、装饰物等模块协同构成的一个完整、可漫游的场景。 【原创亮点与作用】 这是我整套程序化场景方案的"成片"——前面那一堆子图(建筑系统、散布筛选、生态、配套设施)在这里被主图统一驱动、一次性长成一个连贯的世界。 它的价值在于"可生长、可迭代":场景不是手摆死的,而是由规则和参数生成的;改地形、改密度、改建筑参数,整片场景就能重算出新的样子。视频展示的就是这套自建系统从规则到成景的真实效果。 完成时间:2026 年 | 个人独立完成

PCG 技术组合 · 程序化场景管线总览

PCG 技术组合 · 程序化场景管线总览

【概述】 一张思维导图,梳理我在程序化场景里实际串联起来的几条技术线:PCG 程序化生成(瓦片化草地、建筑 / 道路)、样条线辅助构建路径、Procedural Vegetation Editor 程序化植被,以及 Gaea 高度图导入地形等。 【原创亮点与作用】 重点不在某个单一技术点,而在"组合":我把地形(Gaea 高度图)、植被(PVE)、散布与建筑(PCG Graph)、路径(样条线)这些原本各自独立的环节,编排成一条可串联、可参数化迭代的生产管线,让一个场景从地形 → 植被 → 建筑 → 配套设施都能在统一规则下程序化产出。 这张图就是这套自建管线的"导航图",说明各模块的分工与衔接关系,帮人快速看懂整套程序化场景方案的全貌,也是我对自己技术体系的一次系统梳理。 完成时间:2026 年

标准草地(PCG 子图)

标准草地(PCG 子图)

【概述】 草地散布的"标准件"子图:依据地形数据在合法区域铺设草地,自动避开房屋、道路等区域,并把结果投影贴合到地面。是整套生态散布里复用率最高的基础模块。 【原创亮点与作用】 我把"种草"这件事做成了一个干净、可复用、带自我约束的子图,整条链路是这样跑的: · 先用"创建点网格 + 拷贝点"铺一层规整的候选点; · 用"差异"节点把房屋等输入区域从候选里减掉——草不会长进屋里或路上; · 叠加"Attribute 噪声"打散规整感,让分布看起来自然而非网格化; · 经"密度过滤 + Scale by Density"控制疏密,再用"距离"做进一步筛选; · 最后读取地形数据做"投影",把每株草精准贴到起伏的地表上,输出"到点 / 投影"两路结果给生成器。 它的作用是把草地从"手刷"变成"一接就长"的标准模块:只要喂入地形和需要避让的区域,就能得到自然、贴地、且不与建筑冲突的草地;房屋 / 道路一变,草地自动重新避让。可复用、可避让、可控密度,是我做程序化生态的基石之一。 完成时间:2026 年 | 个人独立完成

草地生成筛选(PCG 子图)

草地生成筛选(PCG 子图)

【概述】 在"标准草地"基础上加了一层更聪明的筛选:用坡度遮罩剔除陡坡、随机选择保留点,并避开道路与房屋区域,让草只长在该长的地方。 【原创亮点与作用】 我在这里解决的是"草地分布的真实感"问题: · 坡度遮罩——用"法线转密度 + 密度过滤"把陡坡上的点筛掉(陡崖上本就不该长草); · 随机选择——在保留点里再随机取舍,打破均匀感,做出疏密自然的草丛; · 区域避让——接入道路 / 房屋数据,凡是这些地方一律不长。 它的作用是让大片草地既贴合地形逻辑(缓坡密、陡坡疏 / 无)又不会侵入功能区,把"哪里该长草"从美术手刷变成一条可复算的算法规则——这是野外生态散布里很关键的一道筛选。 完成时间:2026 年 | 个人独立完成

程序化植物 · PVE + PCG 树木生成

程序化植物 · PVE + PCG 树木生成

【概述】 在 UE5 中用 Procedural Vegetation Editor(PVE)程序化生成树木(示例为欧洲山杨 European Aspen),并接入 PCG 与风力示例(Wind_Example_PCG);左侧为单株树的实时预览,右侧为节点图。 【原创亮点与作用】 这一环解决的是"连植被资产本身也程序化"的问题:不是摆放现成的树模型,而是用 PVE 按参数生成树的枝干与树冠结构,再交给 PCG 把这些植物按规则散布进场景、并叠加风动。 它的作用,是让植被从"单棵生成"到"成片散布"全程可控、可调——树形、密度、风感都能参数化迭代;并与前面的 Houdini 地形顶点色遮罩、PCG 散布筛选相衔接,共同构成一套从地形到植被的完整程序化生态。 完成时间:2026 年

道路生成(PCG 子图)

道路生成(PCG 子图)

【概述】 沿样条线生成道路并投影贴合地形,用边界修改器控制路面范围,最后由静态网格体生成器铺出路面。 【原创亮点与作用】 我用一条样条当"路的中心线",让路面沿它生成,并投影到起伏地形上自动贴地,再用边界修改器约束路宽 / 边缘。 它的作用是把"修路"变成画一条线的事——样条怎么走,路就怎么走,还能自动随地形上下起伏;道路同时又是其他模块(草地避让、路灯 / 井盖布置)的依据,是连接场景各功能区的骨架。 完成时间:2026 年 | 个人独立完成

地板尺寸传参(PCG 子图)

地板尺寸传参(PCG 子图)

【概述】 把地板 / 瓦片的尺寸作为参数在各子图之间传递,让墙体、屋顶等模块都按同一套模数对齐。 【原创亮点与作用】 这是我给整套建筑系统立的"统一度量衡":关键尺寸只在一处定义,再通过属性 / 参数传递分发给所有需要它的模块。 它的作用看似不起眼,却很关键——保证地板、墙、屋顶用的是同一个基准尺寸,拼起来才不会出现错位或缝隙;尺寸一改,全屋按比例联动,是模块化、规范化程序化建筑的"地基中的地基"。 完成时间:2026 年 | 个人独立完成

地板生成(PCG 子图)

地板生成(PCG 子图)

【概述】 在地基之上按楼层程序化铺设地板,构成每一层的水平结构。 【原创亮点与作用】 我依据楼层信息和地板尺寸参数,把地板网格自动排布、对齐到结构网格上,逐层铺设。 它的作用是让"每层的地面"随楼层自动生成并对齐——配合楼层自定义,房子加一层就多一层地板,且模数统一、不会错位,是逐层拼装建筑的基础一环。 完成时间:2026 年 | 个人独立完成

地基生成(PCG 子图)

地基生成(PCG 子图)

【概述】 生成建筑地基的通用子图,为上层结构提供统一的基面与对齐基准,可被不同房屋模块复用。 【原创亮点与作用】 我把"地基"抽象成一个独立、可复用的零件:用点 / 网格运算生成基面,尺寸参数化,谁需要就接谁。 它的作用是统一所有建筑的"地基标准"——基面对齐方式一致,后续模块就能放心对齐;同时因为是公共子图,改一处即可影响所有调用它的房子,体现了模块化、可复用的程序化设计思路。 完成时间:2026 年 | 个人独立完成

多层房屋生成墙(PCG 子图)

多层房屋生成墙(PCG 子图)

【概述】 为多层房屋按楼层程序化生成墙体,处理逐层堆叠与墙面排布。 【原创亮点与作用】 我依据楼层数与每层地板的边界,自动沿边生成墙面,并逐层往上堆叠;层数、墙面模块、开口位置都可参数化。 它的作用是让"墙"跟着楼层自动长高——不论是一层小屋还是多层楼房,都用同一套逻辑生成,墙体始终贴合地板边界、层层对齐,省去逐面手摆的繁琐。 完成时间:2026 年 | 个人独立完成

房屋地基生成(PCG 子图)

房屋地基生成(PCG 子图)

【概述】 在确定的房屋落点上生成地基轮廓与基座,作为楼层和墙体的承载基面。 【原创亮点与作用】 我以房屋落点为种子,向外扩展出地基的几何形状,并把尺寸、形态都做成可调参数。 它的作用是给每栋房子一个干净、对齐的"起跳面"——后续地板、墙体都以此为基准对齐,保证从基座到主体的拼装严丝合缝,也让不同占地大小的房子都能用同一套逻辑生成。 完成时间:2026 年 | 个人独立完成

房屋生成及参数演示(视频)

【概述】 演示房屋程序化生成的全过程,并实时调节楼层数、尺寸等参数,展示"一处改参、整栋重算"的效果。 【原创亮点与作用】 这段视频是我建筑系统"参数化"价值的最直观证明:拖动楼层 / 尺寸参数,房子就当场从地基到屋顶整体重建——平房秒变多层,占地一改,墙、屋顶、支撑全部自适应跟上。 它的作用是说明这套房子不是固定模型,而是一组"活"的规则:美术想要什么体量,调参数就行,不必回去重搭。这正是程序化建筑相对手工搭建的核心效率优势。 完成时间:2026 年 | 个人独立完成

房屋生成逻辑(PCG 子图)

房屋生成逻辑(PCG 子图)

【概述】 房屋生成的核心逻辑子图,组织起地基、楼层、墙体、屋顶、门洞等模块的生成顺序与依赖关系,是整套程序化建筑的"主干"。 【原创亮点与作用】 我把"盖房子"这件事拆成一条有先后的流水线:先定地基基面,再逐层铺地板、按层生成墙体,最后封屋顶、抠门洞。每一步都把上一步的结果当作输入,确保结构上严丝合缝。 它的作用是把建筑从"摆模型"变成"按规则长出来"——同一套逻辑能生成不同体量、不同层数的房子,既保证结构合理,又能批量产出,大幅减少手工搭建的重复劳动。 完成时间:2026 年 | 个人独立完成

房屋位置定义(PCG 子图)

房屋位置定义(PCG 子图)

【概述】 确定房屋在场景中"长在哪、朝哪边"的子图,为后续地基、楼层生成提供落点与朝向基准。 【原创亮点与作用】 我用点的生成与筛选来决定每栋建筑的落位:先铺候选点,再按密度、间距、可建区域等规则筛掉不合适的位置,并给每个保留点赋予朝向。 它的作用是把"城镇/聚落的布局"也纳入程序化——落点规则一改,整片建筑的疏密与排布随之变化,而不必逐栋手动摆放,是整套建筑系统的"选址"环节。 完成时间:2026 年 | 个人独立完成

关卡实例生成(PCG 子图)

关卡实例生成(PCG 子图)

【概述】 把 PCG 的生成结果以"关卡实例(Instance)"的形式落地,统一管理大量重复资产的实例化与组织。 【原创亮点与作用】 我让海量重复资产(草、石、栏杆、装饰……)走实例化生成,而不是各自独立的 Actor。 它的作用直指性能与可维护:实例化大幅降低 DrawCall 和内存管理成本,支撑起大场景的高效渲染;同时这些资产被有组织地归拢,方便整体管理与迭代。是把"程序化生成"真正落到"可在引擎里跑得动的大场景"的关键一步。 完成时间:2026 年 | 个人独立完成

关卡实例生成演示(视频)

【概述】 演示把 PCG 结果以关卡实例形式批量落地的过程,展示大量重复资产的实例化生成与组织。 【原创亮点与作用】 视频里能看到成片资产以实例化方式一次性铺开、并被有序管理。 它的作用是展示我对"程序化结果如何高效落到引擎里"的考量——靠实例化压住 DrawCall 与内存开销,让大体量场景仍跑得动。是连接"生成得出来"和"跑得起来"之间的关键一环。 完成时间:2026 年 | 个人独立完成

简易岩石(PCG 子图)

简易岩石(PCG 子图)

【概述】 程序化散布岩石资产,控制位置、随机旋转与缩放,丰富地表细节。 【原创亮点与作用】 我在合法区域采样落点,给每块岩石随机一个朝向和体量,并避开道路、建筑等区域。 它的作用是用很低的成本把空旷地表"填实"——随机化让石头不重样、不呆板,避让规则保证它们不会怼进路面或房子里,是快速提升场景自然度的散布模块。 完成时间:2026 年 | 个人独立完成

井盖生成(PCG 子图)

井盖生成(PCG 子图)

【概述】 在道路 / 地面上程序化点缀井盖等小型地表细节,提升场景真实度。 【原创亮点与作用】 我在道路区域采样落点并实例化井盖,数量与分布参数化可调。 它的作用是补足那种"一看就有人住"的生活细节——这类小物件手摆很枯燥,交给程序按规则点缀,既省事又能保证分布合理,是让街道更可信的画龙点睛。 完成时间:2026 年 | 个人独立完成

楼层自定义(PCG 子图)

楼层自定义(PCG 子图)

【概述】 把房屋的楼层数、层高等做成可自定义参数,驱动地板 / 墙体 / 屋顶按设定逐层生成。 【原创亮点与作用】 我用一个参数化的楼层循环来控制建筑体量:设几层、每层多高,子图就生成几层、堆多高,地板、墙、屋顶全程跟着联动。 它的作用是把"建筑的高矮胖瘦"变成一个旋钮——一处改参即可在平房、二层、多层之间自由切换,配合落点规则就能快速铺出层次错落的聚落,极大提升场景搭建效率。 完成时间:2026 年 | 个人独立完成

路灯生成(PCG 子图)

路灯生成(PCG 子图)

【概述】 沿道路 / 样条按间距程序化布置路灯,保持等距排列与正确朝向。 【原创亮点与作用】 我以道路样条为依据等距采样落点,参数化控制间距与偏移,再实例化路灯。 它的作用是让"沿街设施"自动跟着路走——路改线,路灯自动重排;间距一调,整条街的疏密随之变化。是把道路从"一条路面"扩展成"有街景"的配套环节。 完成时间:2026 年 | 个人独立完成

木制台生成(PCG 子图)

木制台生成(PCG 子图)

【概述】 程序化生成木制平台 / 台架类道具,作为场景中的功能性 / 装饰性构件。 【原创亮点与作用】 我用落点 + 尺寸参数把木台的结构自动拼出来,形态和分布都可调。 它的作用是让这类重复出现的木结构道具不必逐个手搭——一套逻辑生成不同大小的木台,既统一风格又有变化,丰富场景的层次与可交互感。 完成时间:2026 年 | 个人独立完成

木桩生成(PCG 子图)

木桩生成(PCG 子图)

【概述】 沿路径 / 边界程序化布置木桩,控制间距、随机高度与朝向,形成自然的栅栏 / 边界感。 【原创亮点与作用】 我沿样条 / 边界等距采样落点,再给每根木桩随机一点高度和朝向后实例化。 它的作用是用最简单的元素拉出"边界"语言——等距保证成排的秩序感,随机高度 / 朝向又带来手作般的不齐整,做出自然的篱笆 / 围栏,比手摆一根根快得多且更耐看。 完成时间:2026 年 | 个人独立完成

排除第一层生成装饰物(PCG 子图)

排除第一层生成装饰物(PCG 子图)

【概述】 在生成装饰物时排除建筑第一层 / 指定区域,避免装饰物与主体结构或通行区冲突。 【原创亮点与作用】 我用分层标记 + 过滤规则把"不该放装饰物"的层级 / 区域先排除掉,再在剩下的合法区域散布装饰。 它的作用是让装饰既丰富又不添乱——比如不堵住一层的门窗 / 通道,只在合适的位置点缀;这种"先排除、再生成"的思路在整套系统里反复用到,是保证程序化结果可用、不穿帮的细节把控。 完成时间:2026 年 | 个人独立完成

平面勾股过滤点(PCG 算法子图)

平面勾股过滤点(PCG 算法子图)

【概述】 一段纯节点实现的算法子图:用勾股定理算出点到某个基准(如平均点 / 中心)的平面距离,再按距离比较筛选出中点、拐点等目标点。 【原创亮点与作用】 这是我用 PCG 节点"手搓"出来的一套距离判定算法,整条链路没有借助任何现成节点的黑盒: · 先用"属性减少"求出参考基准(如一组点的平均位置); · 拷贝位置后求差,分别对 X、Y 分量取平方(幂数)、相加,再开平方根——也就是把 √(a²+b²) 这条勾股公式一节一节搭出来; · 最后拿算出的距离做比较、过滤,精确挑出符合条件的点(图中标注的"中点 or 拐点")。 它的作用是给程序化流程提供一个可复用的"按几何关系选点"的工具——比如在样条或轮廓上找拐角、找中点、按半径圈选。能把课本里的勾股定理拆成节点链落地,体现的是我对 PCG 数据流和底层数学的双重掌控,而不是停留在调用现成功能。 完成时间:2026 年 | 个人独立完成

树生成(PCG 子图)

树生成(PCG 子图)

【概述】 在场景中程序化散布树木,控制分布密度、随机朝向与缩放,并避让道路 / 建筑。 【原创亮点与作用】 我基于地形和排除规则采样落点,再给每棵树随机姿态后实例化成片。 它的作用是快速铺出有疏密、有变化的林木——密度可调,随机化避免"复制粘贴感",避让规则让树不会长到路上或屋里;与草地、岩石一起,构成层次完整的野外生态。 完成时间:2026 年 | 个人独立完成

屋顶生成(PCG 子图)

屋顶生成(PCG 子图)

【概述】 在房屋顶层程序化生成屋顶结构,完成封顶并与墙体边界对齐。 【原创亮点与作用】 我以顶层轮廓和"屋顶支撑计算"得出的几何为依据,生成屋顶网格,形态与坡度可调。 它的作用是给每栋房子一个贴合主体、比例正确的顶——不论建筑占地形状如何,屋顶都能自动随之适配、与下方墙体对齐,是程序化建筑收尾、成形的关键一步。 完成时间:2026 年 | 个人独立完成

屋顶支撑计算(PCG 子图)

屋顶支撑计算(PCG 子图)

【概述】 计算屋顶的支撑结构(梁 / 柱 / 支撑件)的位置与缩放,让屋顶不只是一个漂浮的"盖子",而是有结构上说得通的承托——本图核心是"屋顶支撑缩放"逻辑。 【原创亮点与作用】 这是我在建筑系统里写得比较硬核的一段纯节点几何运算: · 沿 X、Y 两个轴分别求出支撑件应落的位置与跨距,按屋顶 / 墙体的实际尺寸推导,而不是写死数值; · 关键一步是"缩放"——支撑件会按它要跨越的距离自动拉伸 / 收缩,正好顶到屋顶与结构之间,不留缝也不穿模; · 落点 + 缩放全部由属性数学算出,屋顶大小一变,支撑的数量和长度随之自适应。 它的作用,是把"建模师凭经验摆梁柱"这件事翻译成一套可计算、可复算的程序化规则——让程序生成的屋顶在视觉与结构上都站得住脚,也是我"用算法驱动几何"理解的集中体现。 完成时间:2026 年 | 个人独立完成

PCG 主函数图表(程序化生成总控)

PCG 主函数图表(程序化生成总控)

【概述】 整套程序化场景的 UE5 PCG 主图表,统筹调度下面所有子图——房屋、道路、草地、岩石、植被、装饰物、关卡实例等,把它们串成一条从地形到细节的完整生成流程。 【原创亮点与作用】 我把整个系统拆成"模块化子图 + 主图编排"的结构:每个子图只负责一件事(地基、墙、屋顶、散布……),主图负责按依赖关系把它们接起来、并把关键参数透传下去。 这样做的作用是——整张场景由一处入口驱动,改一个参数就能让相关模块联动重算;子图之间解耦、可复用、可单独调试,让程序化场景方案具备工程化的可维护性,而不是一张越接越乱的大图。 完成时间:2026 年 | 个人独立完成

PCG 主函数生成演示(视频)

【概述】 演示主函数图表运行时、各子图协同生成场景的过程:从地形铺底,到建筑、道路、植被等模块依次落地。 【原创亮点与作用】 这段视频把我那套"模块化子图 + 主图编排"的运转过程摊开给人看——能直观看到一张空场是怎么被规则一层层"长"出内容来的。 它的作用是证明整套系统不是静态截图里的节点图,而是真能跑、能联动、能即时响应参数变化的生产管线;也方便面试 / 协作时快速理解我程序化方案的工作方式。 完成时间:2026 年 | 个人独立完成

子图过滤门位置(PCG 子图)

子图过滤门位置(PCG 子图)

【概述】 在墙体生成过程中筛选出门洞所在的位置,把该处的墙面替换或排除,为门预留开口。 【原创亮点与作用】 我用点筛选 / 属性过滤来定位"哪一段墙该开门",再对这一段墙面单独做排除或替换处理。 它的作用是让程序生成的房子"进得去"——不是一堵密不透风的盒子,而是有门有出入口;门的位置规则可调,墙体重算时门洞也跟着自动对位,是建筑细节合理化的重要一环。 完成时间:2026 年 | 个人独立完成