unity玻璃材质shader shader怎样制作地图

【风宇冲】Unity3D教程宝典之Shader篇:第十七讲Heightmap与地形
我的图书馆
【风宇冲】Unity3D教程宝典之Shader篇:第十七讲Heightmap与地形
原创文章如需转载请注明:转载自
&&&&Shader第十七讲&Heightmap与地形
Heightmap, 高度图。通常Heightmap高度图储存成Gray Scale
Image也就是常说灰度图。越白该点就越高,纯黑表示最低点,纯点表示最高点。
8位灰度图有256阶。16位灰度图有65536阶。如果依然精度不够用的话(例如绘制大型场景),那么可以使用标准的RGB位图来储存高度图,那么精度就是256的3次方=阶。同理还可以再升为RGBA。
Heightmap可以用3D软件(Unity的地形也可以)来绘制,或者Photoshop里的插件。
高度图主要用在3个地方。
(2)&凹凸纹理 Bump
(3) 置换贴图&Displacement
(2)和(3)后面讲会详细介绍,这里主要讲(1)地形
地形的导入与导出
unity3d自带地形编辑器,可以绘制地形。地形的起伏即高度信息可以用高度图储存。
既可以导入raw后缀的HeightMap生成地形,也可以在unity3d里绘制好地形导出raw后缀的Heightmap。HeightMap比起用3D地形模型节省很多储存空间。
TA的推荐TA的最新馆藏[转]&
喜欢该文的人也喜欢摘要前言在前面的文章中,我们已经了解了怎样使用 Shader来绘制简单的点和线,本文将延续上次的话题,讲述一下如何在场景中使用Unity Shader绘制自由多边形。
在前面的文章中,我们已经了解了怎样使用 Shader来绘制简单的点和线,本文将延续上次的话题,讲述一下如何在场景中使用Unity Shader绘制自由多边形。
本文所述的程序,支持在地图中用鼠标点击,确定多边形顶点,并且绘制多边形的边,在内部填充半透明的颜色。先展示一下最终效果,完整的工程在文末的附件中。
1、开发工具介绍
Windows 10(64位)
Unity 5.4.1(64位)
2、建立工程
首先建立一个新工程,命名为Polygon,并创建一个Scene。在场景中新建一个Plane,该Plane是默认带有碰撞体的,这个碰撞体必须有,因为我们在后边使用鼠标选取位置的时候,涉及到碰撞检测。给该Plane加上贴图。
3、核心代码实现
Polygon.cs脚本中实现的是鼠标点击和向shader传递信息的功能
(1)为了实现鼠标点选场景中的3D位置,需要使用射线
(2)向shader传递顶点的位置和数量
(3)将鼠标点击的位置转化为屏幕坐标
3.2 Polygon.shader中实现多边形的绘制功能
(1)计算两点之间的距离函数
(2)绘制线段的函数
(3)绘制多边形的函数
4、完整的C#脚本和Shader代码
Ploygon.cs
Polygon.shader
5、运行效果
本文介绍的是关于Unity Shader的一种基本应用。使用了简单的绘制技术,完成了在场景中进行自由多边形区域的选择功能。
<span class="tipso_style" id="tip-p" data-tipso='
您可以选择一种方式赞助本站
支付宝扫一扫赞助
QQ钱包扫描赞助
2,577 views
<span class="tipso_style" id="tip-w-j" data-tipso=''>首先,我先声明,关于美工制作我是一点都不了解,甚至基本上没接触过,所以今天开始我就兼并这美工加程序来学习。
当然,我只是对unity中的美术比较感兴趣而已,仅此而已。
所以,如果我在文章中讲的不对的地方,还请大牛帮忙指正。
今天呢,我随手研究了一下场景中关于云彩飘动的制作,其实很简单,就是在一个长方形的mesh中呢,添加云彩的shader,然后在让材质球的贴图呢,每帧移动一点点距离的偏移量。
这样就达到飘动的效果额。仔细观看上方云彩的飘动。
制作这样的云彩需要的工具:
(1)一张长方形带有两边弯曲的mesh,其实quad也行(但是只能取上或下其中一部分做云彩)
(2)一张全白色的贴图
就是如此简单。
然后制作材质球,我们选择Mobile/Particles/Additive这个shader,然后把贴图赋值上去。
接着写代码:CloudFlow.cs
using UnityE
using System.C
#region 模块信息
/*----------------------------------------------------------------
// 模块名:CloudFlow
// 创建者:chen
// 修改者列表:
// 创建日期:
// 模块描述:云彩偏移脚本
//----------------------------------------------------------------*/
#endregion
public class CloudFlow : MonoBehaviour
public float m_speedU = 0.1f;//偏移速度,也就是云彩飘动速度
void Update()
float newOffset = Time.time * m_speedU;
if (this.renderer)
this.renderer.material.mainTextureOffset = new Vector2(newOffset, 0);//设置主贴图的偏移量
运行之后,就可以看到云彩飘动的效果啦。
阅读(...) 评论()扫一扫,访问微社区
后使用快捷导航没有帐号?
签到成功!您今天第{todayrank}个签到,签到排名竞争激烈,记得每天都来签到哦!已连续签到:{constant}天,累计签到:{days}天
当前位置: &
查看: 2462|回复: 27
小地图的制作-最简单最实用!入门菜鸟必备!图文讲解
本帖为抢楼帖,欢迎抢楼!&
7排名<font color="#FF昨日变化2主题帖子积分
在线时间1 小时
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
才可以下载或查看,没有帐号?
本帖最后由 摞你命3000 于
20:20 编辑
小地图效果预览:
snap0215.jpg (33.61 KB, 下载次数: 7)
19:21 上传
snap0220.jpg (51.37 KB, 下载次数: 4)
20:11 上传
学Unity一个星期了,其中一边看相关教程和知识点,翻阅各种圣典,网上的实例。现在和大家一起来分享一下我的小地图制作的过程教程。
本教程最适合初学者,通俗易懂,并没有复杂的代码。当然你要在小地图上面添加更多功能,还需要自己动动脑筋,哈哈~~~
为何要写这个教程呢?因为我发现很多插件用上后,有的出错,有的代码复杂,有的根本代码就有,不能运行。比如这个KGFMapSystem,非常强大,点几下鼠标就能自动生成一个小地图了。可是我测试的时候发现,在新建场景中,他可以正常显示。但在我已经做了几天的工程里使用就会出现小地图上没有地图,也没有图标等等。它也不报哪里代码有冲突或者错误。所以碰到这种郁闷的问题,往往会令本来非常感兴趣的初学者一下失去兴趣。学好一门课程重点在于保持兴趣的热度和耐心的学习态度。
所以,大家可以跟我做一下这个小地图,很简单,包你一看就懂。大神高手等级就路过吧!
来我们开始。
1:首先,小地图里需要一张俯视图(顶视图)的略缩图。
在unity中点击坐标切换到Y顶视图,用截图软件将地图的全貌截下来。
snap0216.jpg (88.94 KB, 下载次数: 7)
19:22 上传
如果顶视图是这个灰蒙蒙的话,就是北京的雾霾吹到了你的地图上了,呵呵,
snap0217.jpg (30.51 KB, 下载次数: 4)
19:23 上传
我们来把雾霾吹开,到菜单edit ------rendersettings里 把fog 钩钩取消掉。当然你没有做过渲染设置的话是不会有雾霾的,也就不用做这一步了。
snap0218.jpg (130.3 KB, 下载次数: 8)
19:26 上传
好了雾霾没有了,截图吧。
然后用PS,做个地图的边框和名称元素等东西,保存格式用PNG透明底。那个地图的框框到百度上搜索图片就有了,很多,不过都要自己ps一下,融合到你的地图上。
mp.jpg (44.56 KB, 下载次数: 38)
19:31 上传
好了,图片就做完了,下面真正的主角出场了,就是代码了。代码的重要初学者需知道的我都做了注解。你可以根据你的需要进行更改。比如更改里面显示的图标啦,添加要在地图上显示的物体和图标啦,比如当物体被摧毁后,地图上的图标发生变化啦等等,根据自己需要进行更改即可。
代码在附件,下载即可使用~~~
好了,现在把代码绑到主摄像机上就完成了。。。简单吧~~记得把玩家Player对象,绑定到Player位置那里!
snap0219.jpg (33.66 KB, 下载次数: 4)
19:39 上传
实际运行后的效果:
snap0214.jpg (173.52 KB, 下载次数: 58)
19:42 上传
这个效果符合我的需求了,我做的这个是第三人称视角的类dota游戏,当然了,我还没有做定位敌人的英雄和小兵的位置,根据他们的位置变化,在小地图用图标显示出来,把代码改改就行,地图上那4个圆圈图标代表野怪的位置。我放了4个Cube暂时代替。
教程写完了,有问题的跟帖。
如何学好学好unity
20:15 上传
点击文件名下载附件
1.39 KB, 下载次数: 265
售价: 1 蛮牛币 &[]
小地图文件
每日推荐:
3175/300排名<font color="#FF昨日变化7主题帖子积分
偶尔光临, 积分 175, 距离下一级还需 125 积分
偶尔光临, 积分 175, 距离下一级还需 125 积分
在线时间53 小时
这么帅。。。小地图是目前第一第三人称视角必备的吧~赞·
每日推荐:
61337/1500排名<font color="#FF昨日变化2主题帖子积分
蛮牛粉丝, 积分 1337, 距离下一级还需 163 积分
蛮牛粉丝, 积分 1337, 距离下一级还需 163 积分
蛮牛币5331
在线时间383 小时
学了一周就有这水平啦。。。相比之下。。。我真是学渣
每日推荐:
7排名<font color="#FF昨日变化2主题帖子积分
在线时间1 小时
这么帅。。。小地图是目前第一第三人称视角必备的吧~赞·
小地图是很多游戏必备的啦,哈哈 不过切水果那种就算了。。。
每日推荐:
7排名<font color="#FF昨日变化2主题帖子积分
在线时间1 小时
学了一周就有这水平啦。。。相比之下。。。我真是学渣
是的 整整学了一周,自学。不过我有编程基础。。。。你也别那么急,学东西要一点一点的学的。其实我现在也只是学到些皮毛而已。
每日推荐:
4307/500排名<font color="#FF昨日变化2主题帖子积分
四处流浪, 积分 307, 距离下一级还需 193 积分
四处流浪, 积分 307, 距离下一级还需 193 积分
在线时间35 小时
这貌似确实是我见过最简单的了。。。。之前还考虑把小地图功能去掉减少开发难度呢。。。
每日推荐:
72109/5000排名<font color="#FF昨日变化1主题帖子积分
日久生情, 积分 2109, 距离下一级还需 2891 积分
日久生情, 积分 2109, 距离下一级还需 2891 积分
蛮牛币3107
在线时间437 小时
你这个小地图 有高度限制吗?、
我是说:玩家爬山、或者掉坑里、能在小地图上看出区别吗?
每日推荐:
5649/1000排名<font color="#FF昨日变化主题帖子积分
熟悉之中, 积分 649, 距离下一级还需 351 积分
熟悉之中, 积分 649, 距离下一级还需 351 积分
蛮牛币1775
在线时间103 小时
好东西,楼主真是学霸
每日推荐:
5649/1000排名<font color="#FF昨日变化主题帖子积分
熟悉之中, 积分 649, 距离下一级还需 351 积分
熟悉之中, 积分 649, 距离下一级还需 351 积分
蛮牛币1775
在线时间103 小时
好坑爹啊,用的是js写的,您敢不敢写一个c#的啊,大神
每日推荐:
5679/1000排名<font color="#FF昨日变化1主题帖子积分
熟悉之中, 积分 679, 距离下一级还需 321 积分
熟悉之中, 积分 679, 距离下一级还需 321 积分
蛮牛币1105
在线时间37 小时
这是一个不错的办法,当然也可以不用截图,直接用相机俯视拍也是可以的
每日推荐:
5632/1000排名<font color="#FF昨日变化1主题帖子积分
熟悉之中, 积分 632, 距离下一级还需 368 积分
熟悉之中, 积分 632, 距离下一级还需 368 积分
在线时间244 小时
做dota确实可以了,没有场景移动和切换
每日推荐:
116/50主题帖子积分
注册看看, 积分 16, 距离下一级还需 34 积分
注册看看, 积分 16, 距离下一级还需 34 积分
在线时间6 小时
顶顶顶顶顶顶顶顶顶顶顶顶顶顶
每日推荐:
7排名<font color="#FF昨日变化2主题帖子积分
在线时间1 小时
你这个小地图 有高度限制吗?、
我是说:玩家爬山、或者掉坑里、能在小地图上看出区别吗? ...
我这个地图里没有山,小地图只是用来显示人物在地图上的对应位置 ,而不是要显示具体在爬山或者在坑里吧,在山上或者在坑里,难道你在主场景里看不出来?
每日推荐:
7排名<font color="#FF昨日变化2主题帖子积分
在线时间1 小时
好坑爹啊,用的是js写的,您敢不敢写一个c#的啊,大神
呵呵 我不是大神,我是刚学一个星期的超级菜鸟,你说要c的语言版本我可以改一个给你,迟点放上来。
每日推荐:
7排名<font color="#FF昨日变化2主题帖子积分
在线时间1 小时
做dota确实可以了,没有场景移动和切换
场景移动可以通过检测鼠标x的变化实现拖动屏幕,但我这个是第三人称视角,就不需要了。
每日推荐:
购买游戏蛮牛书籍

我要回帖

更多关于 unity 透明shader 的文章

 

随机推荐