All Houdini Unreal Engine 4

Houdini Unreal 支持输出碰撞体

    官方文档:https://www.sidefx.com/docs/unreal/_collisions.html     官方预设了很多的标记,主要实现了两种功能。【不加打组标记生成得模型是默认不带碰撞体的,因此需要碰撞体的模型都需要参考这里的设置】     第一种就是,生成StaticMesh模型的同时,通过标记设定这个模型的简单碰撞体或者复杂碰撞体如何生成。要注意的是,这边支持的是设定碰撞体生成的方式,不是设定碰撞体的模型。 所有 rendered_ 开头的标记作用都是这个。 rendered_collision_geo 使用模型本身作为复杂碰撞体 rendered_collision_geo_ucx 使用模型的凸包作为复杂碰撞体 rendered_collision_geo_simple 使用默认的简单碰撞体 rendered_collision_geo_simple_box 使用Box作为简单碰撞体 rendered_collision_geo_simple_sphere 使用Sphere作为简单碰撞体 …

All Houdini Unreal Engine 4

Houdini Unreal 支持输出到指定编辑层

    原来有 no weight blend 和 unreal_landscape_layer_inputonly 两个标签,对于混合高度图已经足够用。     但是发现一个问题,对于材质层,一旦启用了多层高度图,新的材质层输出结果都会到新的层上面,但是最终结果是新层与旧层数据的混合。但是不管新的全刷的情况,与旧的混合后都会导致权重被稀释。     这个问题后续使用了材质 alphablend 来解决,因此上一篇的 Houdini 添加 output global,该功能不再支持。 https://iwiki.woa.com/pages/viewpage.action?pageId=253293365 …

All Houdini Unreal Engine 4

Houdini Unreal 支持多地形的输入输出

简介:     该功能是对world composition的地形的支持。     对于大地形,一般来说会支持world composition,将原有的地形切成n*n大小的地形,然后分别放到各个子场景。这样的好处一方面是不同的人可以分别同时修改各个子场景,实现工作的并行;另一方面各个子场景在游戏中的加载释放也是分布式的,有利于游戏优化内存,不用整个大场景都一次性载入到游戏内。     因此我们前期的Houdini插件也是支持world composition的地形的,对于每块子地形,我们都可以作为输入输出。但是对于一些特殊的使用场景,比如全局生成河流等,需要的是全场景的信息作为输入,这时候我们只能将高度图作为输入来实现,因此这里需要一个功能,将切好的地块还可以拼合起来作为Houdini的输入。     使用:     更新了 Landscape Input 的输入界面,加入了Export …

All Houdini Unreal Engine 4

Unreal Landscape LOD 2 贴图获取

    生成了能保持边界的模型后,还需要做的就是给模型赋予贴图,这个贴图的生成方式如下。     首先要从顶视图获取一张足够大无光照的视角图像。     需要打开场景所有的子关卡来拍顶视图,我们选择视角是Top,无光照模式,显示所有的地形和模型。     然后我们使用Unreal自带的 High Resolution Screenshot工具,调整Screenshot Size Multiplier倍数,使得最终得到的全场景分辨率达到6144左右,导出得到一张高分辨率的图像。     下一步我们使用Photoshop来处理,建立一张6144*6144大小的画布,然后将上面得到的图片导入,铺满整个画布。 然后选中Slice工具,在画布右键点击,选择Devide Slice,将整个画布等分6*6,这样做的目的就是使得我们能够导出6*6张1024*1024大小的材质贴图,正好每单块地形使用一张1024*1024大小的地形贴图。 …

All Houdini Unreal Engine 4

Unreal Landscape LOD 1 Houdini 生成 StaticMesh 地形

    这边的方案是利用Houdini来生成保持模型边界的地形模型,用于远处的地形LOD。     HDA实现:     输入就是地形高度图,留了接口给Unreal。  第一步就是将高度图转换成网格模型,这边的参数都是默认     第二步是标记边界上的点,利用Group节点的边界属性做如下设置即可     第三部是polyreduce,并定义条件保留boundary的点     这样即可实现保留原边的地形网格化HAD       …

All Houdini Unreal Engine 4

Houdini 支持 unreal bake foliage with mark

    需求:区分 Foliage 对象是由哪个 Houdini HAD 生成的 或者 是否是人工刷出来的。     使用:     所有的 Houdini HDA 在 Bake Foliage 这一步骤的时候,都会给生成的Foliage打上标记。这一步是用户无感知的,也不可以不打标记。 …

All Houdini Machine Learning

Houdini PDG 点云数据批量生成植被覆盖图

    在获取了特征化点云数据后,我们来使用houdini生成高度图以及植被的覆盖图。     首先是数据导入Houdini,并根据类型分组。     然后使用前面高度图处理的时候的方法,对点云数据做预处理,使得其符合要求。 最后根据最早的分组来获取两个处理好的数据集,以便用于后续的运算。         然后我们根据植被信息的高度来判断是否是植被,比如这边我们设定的核心数值就是10,在使用射线从头顶向下打,如果植被信息的数据与地面的数据信息差距大于10的时候,则判断这边的部分是植被覆盖,通过这个我们就可以生成植被mask层。         最终我们设定输出,这边要注意的是我们要保证输出的图片的格式是和unreal的设定一致的,因此输出的高度图格式和mask图格式如下:     …

All Houdini Unreal Engine 4

Houdini Unreal StaticMesh Bake To Level 使用

    目前这个不支持 Instance 对象的分level,这个要等解决houdini怎么输出instance的问题。     这个做法和 Foliage 类似,我们以生成的悬崖为例,步骤如下:     标记参与分配的子关卡     这一步的做法和 Foliage一致,需要对参与运算的子level,勾上 Landscape Bound 选项。     …

All Houdini Unreal Engine 4

Houdini Unreal StaticMesh Bake To Level 实现

这边的实现思路是和 Foliage 完全一致的,因此首先因为原来的 bUseFoliageBound 标记为了复用,这边改了名字:bLandscapeBound     然后操作界面有添加了新的按钮以及响应函数:         真正实现的函数:FHoudiniEngineBakeUtils::BakeHoudiniActorToActorLevels 这里面的逻辑就是 BakeHoudiniActorToActors_StaticMeshes,BakeHoudiniActorToActors_InstancedActors,BakeHoudiniActorToActors_SplitMeshInstancers 都必须按照level走一遍。     BakeHoudiniActorToActors_StaticMeshes 函数内部,判断逻辑和foliage一致     …

All Houdini Unreal Engine 4

Houdini Foliage Bake to levels 使用

Update 20200529     Foliage Bake 分配的在属性面板上 Use Foliage Bound 命名改成了 Landscape Bound,勾上即可     ———————————————————————————–     新功能:Bake Foliage 支持自动按照位置 Bake …