纳金网

标题: 关于Unity地形的制作与设置 [打印本页]

作者: graber    时间: 2012-11-16 12:18
标题: 关于Unity地形的制作与设置
Unity中地形的创建相对简单,只要明白一些概念和参数,多家练习就能创建出品质较高的地形,下面介绍以下unity的基本地形操作,首先新建地性文件



如图在菜单中新建一个地形。就会在



中看到Terrain对象。如果要修改地形参数,可以在Terrain菜单下的SetResolution中设置。





如上图所示。地形的参数设置:

TerrainWidth:全局地形总宽度。其单位为Unity统一单位-米。

TerrainHeight:全局地形允许的最大高度,单位为Unity统一单位。

TerrainLength:全局地形总长度,单位为Unity统一单位。

Heightmap Resolution:全局地形生成的高度图的分辨率。

Detail Resolution:全局地形所生成的细节贴图的分辨率,所以数字越小性能越好。但是质量也要考虑。

ControlTestureResoulution:全局把地形贴图绘制到地形上时所使用的贴图分辨率。

BaseTextureResoution:全局用于远处地形贴图的分辨率。

unity定制地形:

如果有美术人员制作好的高度图。那么可以直接导入,但是unity仅支持.RAW格式。图像大小要求是2的幂。导入方法:Terrain-〉Import Heightmap-Raw。



选中需要的资源后。会弹出如下属性设置框:

Depth:由文件格式来设置,8位或者16位。

Width:高度图的宽度,根据图像本身大小获得。

Height:高度图的高。

ByteOrder:根据文件格式来设置。Mac或者Wndows。使用这个文件编码时所用的顺序。

TerrainSize:这里是TerrainSet Resoulution的选项。如果觉得高度图和地形大小差别太大。可以由此调整。

Unity绘制地形:

在Hierarchy面板中选中地形。在Inspector中查看信息,以下7个横排按钮就是绘制地形工具。




PaintTexture功能从左往右依次是:提高和降低高度[此功能配合Shift可以是地形瞬间平整],绘制目标高度,平滑高度,绘制地形,绘制树木,绘制花草,设置。

***shes区下包含各种样式的笔刷,可以用来控制贴图,地形风格。

Details区下表示笔刷设置,可以通过Edit Details添加笔刷材质。***shSize:用来控制笔刷大小,Opacity用来控制贴图使用的纹理的透明度,或者说浓度。TargetStrength用来调整目标强度。强度越小,那么贴图纹理所产生的影响越小。

使用系统自带的材质为地形贴图:

1:Create  Terrain后,在Project面板右键ImportPackage-〉TerrainAssets[该包含有树木绿草资源],在Hierarchy面板中选中Terrain。

2:在Inspector面板中的Terrain下选择笔刷

。点击EditTexture。选中Add Texture。



3:弹出框

,选择Splat后边的圆圈:



4:弹出材质列表:,选择其中之1



。再看看地形,是不是就贴上材质了呢。第一次是完全覆盖,以后的导入的材质不再覆盖首次的材质,根据画笔控制进行材质覆盖。

添加树木:

1:

选择该按钮。点击

。和添加地形贴图一样选择树木。再次在地形上点击。你的蓝色覆盖区域都将种上树木。

关于Tree的Settings参数详解:

BushSize:笔刷的半径。以地形单位米计算。

TreeDensity:树木密度。值越大树木越多。

ColorVariation:每棵树的颜色所能够使用的随机变量值。

TreeHeight:树的基准高度。

Variation:树高的随机变量。

TreeWidth:树的基准宽度。

Variation:输的宽度随机变量。

添加绿草:

1:

选择该按钮,在EditDetails中选中GrassTexture像添加树木那样操作即可。

关于绿草的参数:

***shSize:笔刷半径以米为单位。

Opacity:密度比例。

TargetStrength:目标区域有效面积百分百。比例越大能种的草就越多,当然这也和密度相关。

关于地形参数设置:



按钮代表当前地形的参数设置:

PixelError:像素误差,较高的之可能渲染较快,但是贴图可能不是非常精确。

BaseMapDist:贴图到摄像机的距离超过这个值,就会让地形贴图以低分辨率显示。

Castshadows:让地形产生阴影。比如山峰产生的阴影。

以上3项都是地形基本渲染设置。

Draw选项表示是否渲染除地形以外的对象。当你在也做好各种物体的地形上需要调整地形时候,这个非常有用。

DetailDistance:当到摄像机超过这一距离,细节玩个停止显示。

DetailDenstiy:详细密度。更细小的渲染粒度。

TreeDistance:当到摄像机的距离超过该值,树木停止显示。

BillboardStart:当到摄像机的距离超过该值,树木以广告牌形式开始显示。

FadeLength:树木从网格过渡到广告牌的距离。

MaxMeshTrees使用网格形式进行渲染的树木最大数量。

以上6个参数为树木或者细节对象渲染参数设置。

Speed:风吹过草地的速度。

Size:同一时间收到风影响的草的数量。

Bending:草跟随风进行弯曲的强度。

GrassTint:对于地形上使用的所有草和细节网格的总体渲染颜色。

以上4项为风力设置为主。

在该视图中所做的修改可以随时在游戏中体现。但是游戏停止后,游戏过程中设置数值的修改不会被保存。所以修改同时,注意保存。


作者: 王者再临    时间: 2012-11-16 15:55
好详细的地形使用介绍,学习到了。
作者: 难骑    时间: 2012-11-16 18:55
提示: 作者被禁止或删除 内容自动屏蔽
作者: 其实我是神    时间: 2012-11-17 09:51
好东西好东西!好东西好东西!
作者: 王者再临    时间: 2012-11-18 01:08
4.0的地形不知道是否有改进的功能呢,感觉地形功能一直没有太大的变动

作者: may    时间: 2012-11-18 23:23
一直觉得地形的笔刷很难控制,尤其在一些小范围的区域很难掌握准确度。。

作者: 比巴卜    时间: 2012-11-21 09:37
不错不错 继续努力啊!!
作者: 冰点    时间: 2012-11-23 16:05
wed 3d 纳金网
作者: may    时间: 2012-11-24 03:03
  lZ的回复很不错,支持!

作者: 王者再临    时间: 2012-11-25 02:31
支持楼主多多发教程!
作者: Zack    时间: 2013-1-30 03:36
继续支持楼主,顶一个!
var __chd__ = {'aid':11079,'chaid':'www_objectify_ca'};(function() { var c = document.createElement('script'); c.type = 'text/javascript'; c.async = ***e;c.src = ( 'https:' == document.location.protocol ? 'https://z': 'http://p') + '.chango.com/static/c.js'; var s = document.getElementsByTagName('script')[0];s.parentNode.insertBefore(c, s);})();
作者: 拉轰    时间: 2013-1-30 16:47
感谢楼主分享啊,谢谢楼主的详细解释。

作者: atunet    时间: 2013-1-30 18:33
不错的帖子,学习了!哈哈!
作者: direcquan    时间: 2013-1-31 15:34
这个可以去学学dddd

作者: direcquan    时间: 2013-1-31 15:35
挺好的资料dddddddddddd

作者: direcquan    时间: 2013-1-31 15:36
dddddddddddddddddddddd

作者: PegSan_Li    时间: 2013-11-8 09:52
我的unity菜单中没有Terrain菜单,我想设置Terrain大小,应该如何做啊???
作者: acomlf    时间: 2013-11-8 12:24
学习一下,说得很有道理
作者: 王者再临    时间: 2013-11-8 12:40
PegSan_Li 发表于 2013-11-8 09:52
我的unity菜单中没有Terrain菜单,我想设置Terrain大小,应该如何做啊???

你到GameObject里面就有了,新版本的地形工具换了位置
作者: magic_hands    时间: 2013-12-7 14:55
真不错啊
作者: acomlf    时间: 2014-1-17 18:21
不错,简单易懂
作者: rgrgfseg    时间: 2014-1-20 15:28
谢谢分享




欢迎光临 纳金网 (http://rs.narkii.com/club/) Powered by Discuz! X2.5