前言
大部分情况下,我们的模型都是建模小哥哥或小姐姐通过建模软件,比如3DMax,C4D,Blender等,结合她们高超的技艺,制作出来的。 然后导出模型为GLTF或者FBX等文件格式,UEer在拿到模型文件,导入,调效果,然后就可以生成好看的在UE下能够展示的模型。比如下图:
但是有的时候,我们希望能够基于一些基本数据,能够动态生成一些模型。比如,最近我们开发的楼层编辑器,就是可以基于数据生成楼层(包括墙体,地板等)和区域,以及楼层的管路等,如下:
该编辑器从服务端(数据库)读取墙体的路径数据,区域的路径数据,然后基于数据动态生成楼层模型和区域模型。同时还可以基于门窗的位置,动态给墙体进行挖洞,也可以基于数据,对于地板进行挖洞。 并提供了Runtime下的区域编辑能力,可以动态调整区域的形状。
其中动态生成墙体和区域 用到的技术是Geometry_Script,这是一种程序化建模。 如果了解我们的Web端三维,就知道 Geometry_Script技术,在Web3d里面也是经常用到的,比如我们web端的墙体,地板,管路等等也是通过路径数据动态生成的。 比如: