CustomMesh组件?
? ? ? ? 记录最近使用过的一个虚幻4的功能点,动态绘制网格体。
? ? ? ? 需求比较简单,规则的图形用几何参数描述来动态绘制网格体。核心组件是Custom Mesh。
????????CustomMesh关联的函数很少,都是围绕三角形的。先列一下函数。
CustomMesh函数
添加自定义网格体三角形 | Add Custom Mesh Triangles | 设置自定义网格体三角形 | Set Custom Mesh Triangles | 清除自定义网格体三角形 | Clear Custom Mesh Triangles |
????????添加自定义网格体三角形和设置自定义网格体三角形非常相似,设置自定义网格体三角形可以理解为清除之后添加,官方建议使用设置自定义网格体三角形。函数形式完全一直,都是需要一个CustomMeshTriangle的数组,目标为CustomMesh组件。调用之后模型就会在场景中绘制。
? ? ? ? CustomMeshTriangle的创建需要一个CreateCustomMeshTriangle函数。向量顺序影响三角形法线朝向,虚幻为右手定则。这里我投了一下懒,使用了双面材质,忽略了法线影响。
?我的使用
? ? ? ? 我在GameInstance?中放置一个三维向量的数组来存储参数,UI操作调整几何参数。点到三角形为硬编码,固定的三角形组合方式。(没想到太好的算法)
? ? ? ? 因为是硬编码所以封装了一个通过索引从集合取点创建?CustomMeshTriangle的宏。
? ? ? ? ?而后硬编码创建CustomMeshTriangle集合。
?????????创建集合之后通过事件触发更新,进行绘制。
总结
????????CustomMesh的使用本身比较简单,但是目前硬编码的方式不太友好,写起来也是非常枯燥。
? ? ? ? 我尝试写了一个算法,但是暂时没有办法规避面重合的问题,所以计算量非常大,再加上我用得SpinBox调整得参数导致引擎已经报无限循环的错误了。
? ? ? ? 如果有好办法可以留言算法的思路。
|