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 的两种方法

    仅仅修改Houdini文件即可实现的方法     网络上很多文章都有说明,如果我们在Houdini这一测使用其提供的TileSplit节点的时候,是可以在Unreal里面一次性生成多张地图,其效果如下: 但是这里存在两个问题: 这不是正确的Unreal里面使用流式加载地形的正确方式。 不同地形之间的接缝是很难消除的,因为他们隶属于不同的高度图,高度图生成地形还要基于采样生成模型,这个过程对于不同的高度图之间,他们是不会考虑相互影响的,因此总会存在下列情况。     因此从Unreal的角度出发,如何来实现大地形。Unreal默认就提供了可以根据多张切好的高度图来生成大地形的工具,我们可以借用这个工具,让Houdini直接输出切好的地形高度图即可实现。     Houdini这一侧的做法,如下图所示,如要注意的如下: 采用heightfield_output节点作为输出 保证输出的图片的格式是Unreal可以读取的高度图格式,也就是单通道的16比特浮点数据 对高度图做切分,但是一定要保证切分的高度图之间的TilePverlap数值为1 得到的文件效果图,注意这里的自动命名正好是Unreal可识别的命名方式。       …

All Unreal Engine 4

Unreal 编辑器扩展

    UI系统区分     UMG,虚幻运动图形界面设计器(Unreal Motion Graphics UI Designer) 一个可视化的UI创作工具,用来创建UI元素,如游戏中的HUD、菜单或其它界面相关元素。 设计器(Designer)选项卡允许界面和基本函数的可视化布局 图表(Graph)选项卡提供所使用控件背后的功能。 可以暴露于BP     Slate ,虚幻引擎中的自定义用户界面系统。 主要用于编辑器的实现 在游戏中也可以使用 只能应用于C++   …

All Unreal Engine 4

UE4 HLOD 使用

    官方文档: 启用: https://docs.unrealengine.com/zh-CN/Engine/HLOD/HowTo/Enabling/index.html 使用: https://docs.unrealengine.com/zh-CN/Engine/HLOD/HowTo/BuildingHLODs/index.html     使用步骤: 启用功能 在关卡编辑器的工具栏中,单击 设置(Settings) 按钮,并选择 世界场景设置(World Settings)。 然后,在 世界场景设置(World Settings) 菜单中的 LOD系统(LODSystem) 下,启用 …

All Unreal Engine 4

UE4 Instance 使用

    这个部分目的就是降Drawcall。 Unreal官方没有对这个部分做完整的说明,因此我这边会讲的较详细。主要分为两大部分,首先是静态合批,然后是4.23开始支持移动端的动态合批的使用。     静态合并     这个部分有三种合并方式,具体见开发工具 合并相同材质的多个对象为一个     使用: 如图所示我们在场景中放置两个对象,他们的材质是一样的。 这时候我们可以同时选中这两个对象,然后在Merge Actors面板,你就可以看到如下现象。在对参数做确认后即可合并对象。 最后会在资源管理器生成一个新的staticmesh对象。     直接合并多个对象为一个,生成新的材质   …

All Unreal Engine 4

UE4 剔除 使用

官方文档 https://docs.unrealengine.com/zh-CN/Engine/Rendering/VisibilityCulling/index.html 可视性和遮挡剔除方法的大体思路是减少任意给定时刻的可见对象数量,从而达到优化性能的目的。 GPU-Driven 则是后面的趋势,可以全部采用Compute Shader来做OC,后面对于IB/VB进行合并处理。     方法     距离剔除     每个Actor都有自己的绘制距离设置,可以使用 细节(Details) 面板进行设置。     剔除距离体积(Cull Distance Volume):对于优化包含精细内部空间的大型室外关卡非常有用。当室内空间小到可被视为不重要时,可以剔除它们。用法: …