Unity3D手册中介绍了两种地形创建方法:
1、使用heighttools直接在SceneView中绘制;
2. 使用外部工具制作的高度图;
要生成真实地形,需要使用 heightmaps 方法。 具体操作如下:
1、准备一张img或tiff格式的DEM数据,并准备GlobalMapper和Photoshop软件;
2、在GlobalMapper 14.1中文版中,“文件”->“打开数据文件”unity 点击弹出对话框,选择DEM数据文件,如test.img,然后在弹出的对话框中选择“全部”;
打开后如图:
3、打开地形文件后,在工具栏下拉列表中选择“渐变渲染”。 该列表框后面有一个“启用/取消着色”按钮。 我们需要取消渲染;
4、此时显示的是dem数据的灰度图技能特效,如下:
我们可以导出这个图像; 点击“文件”->“输出光栅/图像格式”,在弹出的对话框中选择JGP,然后点击确定,会弹出另一个框unity 点击弹出对话框,选择确定,会弹出下一个框。
5、在此对话框中设置jpg的属性; 您可以自己填写采样间隔。 值越小,图像的经度越大。 如果您不知道如何选择,可以先按默认值,稍后检查图像分辨率,然后根据需要重新设置。 参数,“图像质量”也可以自己选择创作人,“光栅输出波段设置”中必须选择“灰度(18字节波段)”。 下面的“生成世界文件”和“生成投影文件”可以不勾选。 如果选中,该文件与导入的地形无关;
6、此时生成一个“test.jpg”; 我们使用photoshop打开并编辑它; 打开图像后,选择“图像”->“画布大小”; 选择像素为单位,长宽值需要是2的指数次方,例如1024或者2048(我使用的Unity版本中导入图片的大小不能大于2048,否则会出现会发生错误)。 此时我将宽度和高度设置为2048(这里长和宽需要设置为相同的值),点击确定;
7.导出原始文件; 选择“文件”->“另存为”,格式中选择raw,“保存”,生成test.raw文件;
8、打开Unity,在“Terrain”->“CreateTerrain”中创建地形,然后点击“Terrain”->“ImportHeightmap-Raw”导入新生成的raw文件;
点击“设置”:
“ImportRaw”在这里:
9. 在弹出的对话框中进行设置。 Depth选择8bit,Width选择2048,Height输入2048,ByteOrder根据自己的情况选择Mac或Windows。 地形x和z首先默认为2000,y为高度,表示地形最高点的高度。 ,我写200,直接点击“导入”导入地形;
10、如果原始地形有地貌,可以利用Globalmap中的地貌导出jpg文件作为可以导入到Unity中的纹理,根据地形的大小粘贴到导入的地形上。
这里的x和y必须和之前地形的x和y一致才可以完全附着在地形上。
最终效果如下(还不错):
(PS:如果导入图片后发现图片与地形位置不对应,可以在PS中翻转、旋转图片进行调整):
文章来源:https://blog.csdn.net/lingbaoer1234/article/details/45242371