ue4 Worldmachine 结合使用
来源:互联网 发布:软件系统界面设计 编辑:程序博客网 时间:2024/06/05 07:57
所以我们决定使用 WorldMachine 作为地形的生成工具,将地形的高度图导入 Editor,再在 Editor 中对细节进行修改。WorldMachine 生成的高度图相对人工算出来的要真实,最重要的是快,用它找坡度,沟壑更加准确。
在 UE4 中使用 WorldMachine 还要解决几个问题。官方有篇 wiki 将的很清楚。World Machine to Unreal Engine 4 - In Depth Guide
问题1:高度图尺寸
UE4 的高度图有一些限制,这与 UE4 地形系统的组织有关。高度图中每一个像素对应着地形系统的一个顶点。UE4 的地形组织分为3层:组件 component
,分段 section
,四边形 quads
。Landscape Technical Guide
四边形是地形系统最小单位,每个四边形对应4个顶点。
分段由四边形组成,是 drawcall 和 LOD 的最小单位。因为要对每个分段单独做 LOD,高度图需要做 mipmap,所以每个分段的高度图都是2的整数次幂,可以是 8x8 到 256x256 中间的一个。分段中每个四边形共享顶点,所以每边四边形的个数是 x-1。
组件由分段组成,每个组件只能有 1x1 个或者 2x2 个分段。组件是渲染、可视性和碰撞的基本单元。每一边组件的数量可以是1到32中的一个,长和宽可以不相同。组件越多,CPU 消耗越大。
了解了以上的关系,高度图的尺寸就可以计算出来了。但是这里推荐的方法是在 Editor 里调整组件和分段的选项,来得到高度图的尺寸。
上图中的高度尺寸就是 505x505。
问题2:世界尺寸
第二个问题就是要弄清地形系统中的距离表示的实际世界尺寸。正常地形系统中顶点之间距离是1ued,代表实际中的1cm,但是在创建时可以看到 Scale 是 (100, 100, 100)。所以顶点间距离是1m。地形系统的高度范围是 -255 到 257,同样在 Scale = 100 时,单位是 m。如果希望上图中的设置,高度图1像素对应1m,那么 WorldMachine 的设置是,分辨率 505x505,宽是505m,高是505m。海拔的设置,由于world machine从0开始,所以要设成512m。
之后的操作就是在 WorldMachine 里做图并导入 Editor。WorldMachine 默认都是 km 级别的,可以放大 100 倍,方便在 WorldMachine 里操作。
问题3:地形材质
地形材质方面主要要搞清 LayerInfo 的2两种混合模式和材质中的3种混合类型的含义。
LayerInfo 的2两种混合模式:Weight-Blend(normal), No Weight-Blend
Weight-Blend 的层权重和为1,增加一个层的权重,其他层的权重就会减少。No Weight-Blend 的层单独计算权重,不对其他层有影响。
图中,红色和蓝色部分为 Weight-Blend,绿色部分为 No Weight-Blend。先刷红色,再刷蓝色,绿色。蓝色部分覆盖红色部分的区域,红色部分的权重变成了0。而绿色部分覆盖的区域红色部分权重没有变。
LB_WeightBlend,LB_AlphaBland,LB_HeightBland
WeightBlend 和 HeightBland 都是权重混合。在同一像素上不同层的权重和为1。但是 HeightBland 提供高度图。在边界产生下图效果。
WeightBlend 和 HeightBland 都是无序的, 减少一个层的权重,其他层的权重会增加,但是增加那个并不确定。
AlphaBland 是有序的,好像一层覆盖一层,减少一层会露出下一层。这里官方文档说的也不详细。查了一下代码int32 UMaterialExpressionLandscapeLayerBlend::Compile(class FMaterialCompiler* Compiler, int32 OutputIndex, int32 MultiplexIndex)
他们的关系应该是这样的。
w是权重,color 是这个点的颜色, AlphaBland 在最后才混合,每个 Alpha 层都会 lerp 一次,顺序不定。
- ue4 Worldmachine 结合使用
- 虚幻4结合worldmachine制作地形
- unity使用WorldMachine修整地形
- ue4音效、动画结合实例
- ue4-日志使用
- ue4数据表的使用
- Ue4使用OpenCV插件
- 使用UE4模拟冲击力
- ue4使用regex
- ue4-多线程使用
- UE4 C++使用反射
- UE4使用心得
- UE4使用第三方库
- 【UE4/C++】宏的使用
- UE4:C++中使用材质
- UE4蓝图函数的使用
- UE4使用第三方库
- UE4锚点使用解析
- geoserver使用curl发布 imagemosaic
- cesium+ geoserverTerrainProvide+png展示3D高程图展示
- RPC、HSF、bubbo、java动态代理
- 淌水 UE4的shootergame 案例 准备
- ue4 shooterGame 第一步 搭建git linux服务器
- ue4 Worldmachine 结合使用
- 将博客搬至CSDN
- 计算机图形学----直线与多边形的裁剪
- gdal和python在windows上的安装
- window 安装gdal和python
- 删除文件
- libjpeg安装和使用
- gdal source code c++ make windows
- java1.8 版本改成 java1.7版本