当前位置: 首页 > news >正文

Unity(2022.3.41LTS) - 地形

目录

一、地形的创建

二.页面详解

1.创建相邻的 Terrain 瓦片。

2.雕刻和绘制地形。

3.添加树。

4.添加细节,如草地、花朵和岩石。

5.更改所选 Terrain 的常规设置

三、地形编辑工具

四、地形的属性设置

五、地形的优化

六、地形的应用场景



一、地形的创建

地形是一种用于创建游戏世界中自然地貌和环境的重要工具.

  • 在 Unity 中,通过菜单栏的 “GameObject”→“3D Object”→“Terrain” 来创建地形对象。创建后,地形会以一个平面的初始状态出现在场景中。

分别为

  • 创建相邻的 Terrain 瓦片。
  • 雕刻和绘制地形。
  • 添加树。
  • 添加细节,如草地、花朵和岩石。
  • 更改所选 Terrain 的常规设置

二.页面详解

1.创建相邻的 Terrain 瓦片。

在场境内就会显示出来辅助线

点击线框

就会创建出来相邻的地形.

2.雕刻和绘制地形。

  • Raise or Lower Terrain(升高或降低地形):绘制高度贴图
    使用画笔工具。
  • Paint Holes:隐藏 Terrain 的部分。
  • Paint Texture:应用表面纹理。
  • Set Height:将高度贴图调整为特定值。
  • Smooth Height:平滑高度贴图以柔化地形特征。
  • Stamp Terrain:在当前高度贴图上标记画笔形状。

Raise or Lower Terrain

选择好形状,画笔大小,然后在地图上按住鼠标左键拖动

按住Shift加上鼠标左键可以降低高度

挖出一个洞

固定最高高度

编辑地图形

选择合适的纹理

就可以用画笔绘制

可以对贴图进行更改

平滑地形

初始

平滑后

stamp terrain

3.添加树。

先编辑树

选择树设置好画笔的大小,和树的密度

4.添加细节,如草地、花朵和岩石。

选好合适的画笔大小

5.更改所选 Terrain 的常规设置

修改地形大小,修改材质等等.

三、地形编辑工具

  1. 地形绘制工具:

    • 抬高 / 降低地形:这是最常用的工具之一。通过选择不同大小和强度的画笔,在地形上涂抹可以抬高或降低地形的高度。可以模拟山脉、丘陵、山谷等地形特征。例如,使用较大的画笔和较高的强度可以快速创建大型山脉,而使用较小的画笔可以进行精细的地形调整。
    • 平滑地形:用于使地形的高度变化更加平滑自然。在创建地形后,可能会出现一些不自然的尖锐边缘或高度突变,使用平滑工具可以解决这些问题。可以调整平滑的强度和范围,以达到理想的效果。
    • 绘制纹理:地形可以使用多种纹理来模拟不同的地表材质,如草地、泥土、石头等。在绘制纹理工具中,可以选择不同的纹理,并通过画笔在地形上涂抹来分配纹理。还可以调整纹理的混合比例、颜色和透明度等属性,以实现更加真实的地表效果。
  2. 地形雕刻工具:

    • 雕刻地形:类似于抬高 / 降低地形工具,但可以进行更精细的雕刻操作。可以使用不同形状的画笔,如圆形、方形等,来雕刻出特定的地形形状,如洞穴、峡谷等。雕刻工具的强度和深度可以根据需要进行调整。
    • 拉伸地形:可以整体拉伸地形的高度,使地形变得更高或更低。这个工具对于快速调整地形的整体高度非常有用,例如创建高原或低洼地区。可以设置拉伸的幅度和方向,以实现特定的地形效果。
  3. 地形绘制细节工具:

    • 绘制细节:用于在地形上添加细节物体,如草、花、石头等。可以选择不同的细节物体,并通过画笔在地形上涂抹来放置它们。可以调整细节物体的密度、大小、颜色和旋转等属性,以实现更加自然的地表细节。
    • 细节纹理:除了主要的地形纹理外,还可以使用细节纹理来增加地表的细节和真实感。细节纹理通常是一些小的纹理图案,如草的纹理、石头的纹理等。可以在地形上混合不同的细节纹理,以实现更加丰富的地表效果。

四、地形的属性设置

  1. 地形材质:

    • 地形可以使用多种材质来模拟不同的地表材质。在 Inspector 面板中,可以选择地形的材质,并设置材质的属性,如颜色、纹理、光滑度、反射率等。
    • 可以创建自定义的地形材质,使用 Shader Graph 等工具来实现复杂的材质效果。例如,可以创建具有动态光照效果、透明效果或反射效果的地形材质。
  2. 地形高度图:

    • 地形的高度信息存储在高度图中。高度图是一个二维图像,其中每个像素的灰度值代表地形的高度。可以在 Inspector 面板中导入和导出高度图,以便在不同的项目中使用相同的地形高度信息。
    • 可以使用外部的图像编辑软件来创建和编辑高度图,然后导入到 Unity 中。这样可以实现更加复杂的地形形状和高度变化。
  3. 地形树和细节:

    • 可以在地形上种植树木和绘制细节物体。在 Inspector 面板中,可以设置树的种类、密度、大小、颜色等属性。还可以设置细节物体的类型、密度、大小、颜色等属性。
    • 可以使用预制的树模型或自己创建的树模型。对于大规模的森林场景,可以使用树实例化技术来提高性能。细节物体可以使用粒子系统或其他技术来实现动态效果。

五、地形的优化

  1. 地形细分:

    • 地形细分是一种根据相机距离自动细分地形的技术。当相机靠近地形时,地形会自动增加细分级别,以显示更多的细节。当相机远离地形时,地形会自动降低细分级别,以提高性能。
    • 在 Inspector 面板中,可以设置地形细分的参数,如细分级别、细分距离等。可以根据游戏的性能需求和视觉效果进行调整。
  2. 地形 LOD:

    • 地形的层次细节(LOD)技术可以根据相机的距离自动切换不同细节程度的地形。当相机靠近地形时,使用高细节的地形模型;当相机远离地形时,使用低细节的地形模型。这样可以在不影响视觉效果的前提下提高性能。
    • 在 Inspector 面板中,可以设置地形 LOD 的参数,如 LOD 级别、切换距离等。可以根据游戏的性能需求和视觉效果进行调整。

六、地形的应用场景

  1. 游戏场景:

    • 地形是游戏场景中不可或缺的一部分,可以用于创建各种自然景观和人工景观。例如,可以创建山脉、森林、河流、湖泊、城市、建筑等。
    • 地形可以与其他游戏对象(如角色、道具、特效等)进行交互,创造出丰富的游戏体验。例如,角色可以在地形上行走、奔跑、跳跃,道具可以放置在地形上,特效可以与地形进行融合。
  2. 虚拟现实和增强现实:

    • 地形在虚拟现实和增强现实场景中也有广泛的应用。可以创建逼真的虚拟环境,让用户沉浸其中。例如,可以创建虚拟的山脉、森林、城市等,让用户进行探索和交互。
    • 地形可以与虚拟现实和增强现实设备的传感器进行交互,实现更加真实的体验。例如,用户可以通过头部运动来改变视角,地形会根据用户的视角进行实时渲染。
  3. 模拟和可视化:

    • 地形可以用于模拟自然现象和地理环境,如地震、洪水、山体滑坡等。可以使用地形的高度图和材质来模拟不同的地形特征和地表材质,然后使用物理引擎来模拟自然现象的发生和发展。
    • 地形还可以用于可视化地理数据和地形信息,如地图、卫星图像等。可以将地理数据导入到 Unity 中,然后使用地形系统来创建可视化的地形模型,以便更好地理解和分析地理信息。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 口语笔记——虚拟语气
  • 智慧灯塔,照亮企业AI Agent实施明路
  • MYSQL:简述对B树和B+树的认识
  • 使用maven搭建微服务框架
  • 基于七牛云上传,下载文件
  • 【数据库】两个集群数据实现同步方案
  • Node.js-身份证号实名认证-小程序实名认证接口集成方法
  • C语言中的预处理器字符串化与拼接操作符:底层原理及实现细节
  • 谷歌发布新AI GameNGen:AI也能实时生成游戏画面!
  • C++ day3
  • OpenStack创建云主机——超级详细步骤
  • Java的IO模型详解-BIO,NIO,AIO
  • Java并发编程(21)—— CurrentHashMap源码分析
  • redis集群部署
  • 字符串的内存存储
  • Android 控件背景颜色处理
  • css布局,左右固定中间自适应实现
  • HTTP请求重发
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • Lsb图片隐写
  • Objective-C 中关联引用的概念
  • Python_OOP
  • React Transition Group -- Transition 组件
  • Vue2 SSR 的优化之旅
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • Web标准制定过程
  • 飞驰在Mesos的涡轮引擎上
  • 解析 Webpack中import、require、按需加载的执行过程
  • 前端面试题总结
  • 如何设计一个比特币钱包服务
  • 数据仓库的几种建模方法
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • #git 撤消对文件的更改
  • (2024)docker-compose实战 (9)部署多项目环境(LAMP+react+vue+redis+mysql+nginx)
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (二)换源+apt-get基础配置+搜狗拼音
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (转)大型网站的系统架构
  • (转)人的集合论——移山之道
  • ./mysql.server: 没有那个文件或目录_Linux下安装MySQL出现“ls: /var/lib/mysql/*.pid: 没有那个文件或目录”...
  • .bat批处理出现中文乱码的情况
  • .gitignore文件设置了忽略但不生效
  • .NET 的程序集加载上下文
  • .NET 发展历程
  • .NET 服务 ServiceController
  • .Net 高效开发之不可错过的实用工具
  • .NET6使用MiniExcel根据数据源横向导出头部标题及数据
  • @EnableWebSecurity 注解的用途及适用场景
  • [100天算法】-目标和(day 79)