• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >游戏开发 > Unity 3D使用笔刷绘制地形

Unity 3D使用笔刷绘制地形

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2022-04-30

匿名通过本文主要向大家介绍了等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
在 Unity 3D 中,除了使用高度图来创建地形外,还可以使用笔刷绘制地形。

因为 Unity 3D 为游戏开发者提供了强大的地形编辑器,通过菜单中的 GameObject→3D Object→Terrain 命令,可以为场景创建一个地形对象。

初始的地表只有一个巨大的平面。Unity 3D 提供了一些工具,可以用来创建很多地表元素。

游戏开发者可以通过地形编辑器来轻松实现地形以及植被的添加。

地形菜单栏一共有7个按钮,含义分别为编辑地形高度、编辑地形特定高度、平滑过渡地形、地形贴图、添加树模型、添加草与网格模型、其他设置,如下图所示,每个按钮都可以激活相应的子菜单对地形进行操作和编辑。

地形编辑工具

地形高度绘制

在地形编辑器中,前 3 个工具用来绘制地形在高度上的变化。

左边第一个按钮激活 Raise/Lower Height 工具,如下图所示。

当使用这个工具时,高度将随着鼠标在地形上扫过而升高。

如果在一处固定鼠标,高度将逐渐增加。这类似于在图像编辑器中的喷雾器工具。如果鼠标操作时按下 Shift 键,高度将会降低。不同的刷子可以用来创建不同的效果。例如,创建丘陵地形时,可以通过 soft-edged 刷子进行高度抬升。

而对于陡峭的山峰和山谷,可以使用 hard-edged 刷子进行高度削减。

Raise/Lower Height/Smooth Height工具

左边第二个工具是 Paint Height,类似于 Raise/Lower 工具,但多了一个属性 Height,用来设置目标高度,如下图所示。

当在地形对象上绘制时,此高度的上方区域会下降,下方的区域会上升。

游戏开发者可以使用高度属性来手动设置高度,也可以使用在地形上 Shift+ 单击对鼠标位置的高度进行取样。在高度属性旁边是一个 Flatten 按钮,它简单地拉平整个地形到选定的高度,这对设置一个凸起的地平线很有用。

如果要绘制的地表包含高出水平线和低于水平线的部分,例如在场景中创建高原以及添加人工元素(如道路、平台和台阶),Paint Height 都很方便。

Paint Height工具

左边第三个工具 Smooth Height 并不会明显地抬升或降低地形高度,但会平均化附近的区域。这缓和了地表,降低了陡峭变化,类似于图片处理中的模糊工具(blur tool)。

Smooth Height 可以用于缓和地表上尖锐、粗糙的岩石。地形表面平滑工具选项设置及功能介绍如下表所示。

参 数含 义功 能
Brushes笔刷设置笔刷的样式
Setting设置 
Brushes Size笔刷尺寸设置笔刷的大小
Opacity不透明度设置笔刷绘制时的高度
Height高度设置绘制高度的数值

地形纹理绘制

在地形的表面上可以添加纹理图片以创造色彩和良好的细节。

由于地形是如此巨大的对象,在实践中标准的做法是使用一个无空隙地(即连续地)重复的纹理,在表面上用它成片地覆盖,可以绘制不同的纹理区域以模拟不同的地面,如草地、沙漠和雪地。

绘制出的纹理可以在不同的透明度下使用,这样就可以在不同地形纹理间形成渐变,效果更自然。

地形编辑器左边第四个按钮是纹理绘制工具,单击该按钮并且在菜单中执行 Add Texture 命令,可以看到一个窗口,在其中可以设置一个纹理和它的属性。

添加的第一个纹理将作为背景使用而覆盖地形。如果想添加更多的纹理,可以使用刷子工具,通过设置刷子尺寸、透明度及目标强度(Target Strength)选项,实现不同纹理的贴图效果,如下图所示。地形纹理绘制工具选项如下表所示。

参 数含 义功 能
Brushs笔刷设置绘制地形纹理的笔刷样式
Textures纹理设置绘制地形纹理图片样式
Setting设置设置纹理相关参数
Brush Size笔刷尺寸设置绘制纹理的笔刷的大小
Opacity不透明度设置笔刷绘制纹理时的不透明度
Target Strength目标强度设置所绘制的贴图纹理产生的影响

纹理贴图面板

树木绘制

Unity 3D 地形可以布置树木。可以像绘制高度图和使用纹理那样将树木绘制到地形上,但树木是固定的、从表面生长出的三维对象。

Unity 3D 使用了优化(例如,对远距离树木应用广告牌效果)来保证好的渲染效果,所以一个地形可以拥有上千棵树组成的茂密森林,同时保持可接受的帧率。

单击 Edit Trees 按钮并且选择 Add Tree 命令,将弹出一个窗口,从中选择一种树木资源。

当一棵树被选中时,可以在地表上用绘制纹理或高度图的方式来绘制树木,按住 Shift 键可从区域中移除树木,按住 Ctrl 键则只绘制或移除当前选中的树木。树木绘制面板如下图所示。树木绘制工具选项如下表所示。

树木绘制面板

参 数含 义功 能
Setting设置设置树木绘制相关参数
Brush Size笔刷尺寸设置种植树时笔刷的大小
Tree Density树木密度设置树的间距
Tree Height树木高度设置树的高度,勾选Random选项,可以出现树木高度 在指定范围内随机变化的效果
Lock Width to Height锁定树木的宽高比锁定树木宽高比
Tree Width树木宽度设置树的宽度,勾选Random选项,可以出现树木宽度 在指定范围内随机变化的效果
Random Tree Rotation树木随机旋转设置树木随机旋转一定的角度

草和其他细节

一个地形表面可以有草丛和其他小物体,比如覆盖表面的石头。草地使用二维图像进行渲染来表现草丛,而其他细节从标准网格中生成。

在地形编辑器中单击 Edit Details 按钮,在出现的菜单中将看到 Add Grass Texture 和 Add Detail Mesh 选项,选择 Add Grass Texture,在出现的窗口中选择合适的草资源,如下图所示。草绘制工具选项如下表所示。

草绘制面板

参 数含 义功 能
Detail Texture细节纹理指定图片作为草的纹理
Min Width最小宽度设置草的最小宽度值
Max Width最大宽度设置草的最大宽度值
Min Height最小高度设置草的最小高度值
Max Height最大高度设置草的最大高度值
Noise Spread噪波范围控制草产生簇的大小
Healthy Color健康颜色设置草的健康颜色,此颜色在噪波中心处较为明显
Dry Color干燥颜色设置草的干燥颜色,此颜色在噪波中心处较为明显
Billboard广告牌草将随着摄像机同步转动,永远面向摄像机

地形设置

单击地形编辑器最右边的按钮可以打开地形设置面板,如下图所示。该面板用于设置地形参数,如下表所示。

地形设置面板
基本地形参数:

参 数含 义功 能
Draw绘制绘制地形
Pixel Error像素容差显示地形网格时允许的像素容差
Base Map Dist.基本地图距离设置地形高度的分辨率
Cast Shadows投影设置地形是否有投影
Material材质为地形添加材质

树和细节参数:

参 数含 义功 能
Draw绘制设置是否渲染除地形以外的对象
Detail Distance细节距离设置摄像机停止对细节渲染的距离
Detail Density细节密度设置细节密度
Tree Distance树木距离设置摄像机停止对树进行渲染的距离
Billboard Start开始广告牌设置摄像机将树渲染为广告牌的距离
Fade Length渐变距离控制所有树的总量上限
Max Mesh Trees网格渲染树木最大数量设置使用网格形式进行渲染的树木最大数量

风参数:

参 数含 义功 能
Speed速度风吹过草地的速度
Size大小同一时间受到风影响的草的数量
Bending弯曲设置草跟随风弯曲的强度
Grass Tint草的色调设置地形上的所有草和细节网格的总体渲染颜色

风域

地形中的草丛在运行测试时可以随风摆动,如果要实现树木的枝叶如同现实中一样随风摇摆的效果,就需要加入风域。

执行 GameObject→3D Object→Wind Zone 菜单命令,创建一个风域,风域的参数如下图所示,风域参数如下表所示。

风域

参 数含 义功 能
Mode风域模式设置风域模式:Directional模式下整个场景中的树木都受影 响,Spherical模式下只影响球体包裹范围内的树木
Main主风设置主要风力,产生风压柔和变化
Turbulence湍流设置湍流风,产生一个瞬息万变的风压
Pulse Magnitude波动幅度定义风力随时间的变化
Pulse Frequency波动频率定义风向改变的频率

风域不仅能实现风吹树木的效果,还能模拟爆炸时树木受到波及的效果。

需要注意的是,风域只能作用于树木,对其他游戏对象没有效果。场景中不同模式下的风域参数设置如下表所示。

实现的效果参数
MainTurbulencePulse MagnitudePulse Frequency
轻风吹效果10.11.0或以上0.25
强气流效果350.11.0
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2022-04-30Unity 3D Drag Window控件
  • 2017-06-05 Java用Cocos写游戏的程序,靠谱吗?写游戏用什么语言比较敏接??
  • 2017-06-05 关于D3D纹理混合的实现
  • 2017-06-05 请教unity中读取数据、配置文件相关
  • 2017-06-05 cocos2d-x310Sprite外发光效果怎么实现啊?是在触摸事件下的
  • 2022-04-30Unity 3D UGUI Button控件
  • 2017-06-05 如果励志成为一个资深的游戏开发者,我是应该选择哪个
  • 2017-06-05 游戏画面管理与切换控制
  • 2017-06-05 小弟有个外行的问题问一下各位大神
  • 2017-06-05 c#一段看不懂的事件和委托

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Unity 3D Panel控件
    • 出现这个错误是什么情况,怎么解决啊
    • unity的grass问题
    • cocos2d-x精灵
    • cocos2d-x游戏开发服务器端,用什么样的呢?
    • Unity 3D UGUI实例演示
    • 如下图知道各点xyz坐标如何生成3dmax模型或能导入u3d的模型?
    • Unity 3D UGUI Toggle控件
    • 离线地图哪个地图引擎比较好?求介绍。
    • 找Cocos2d-x游戏开发教程

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有