请教unity怎么做柔和的unity 画面抖动效果

程序写累了,就来玩玩酷跑小游戏吧,嘿嘿。
雨松MOMO送你一首歌曲,嘿嘿。
Unity3D研究院之使用RenderTexture制作动态阴影(四十八)
Unity3D研究院之使用RenderTexture制作动态阴影(四十八)
围观65337次
编辑日期: 字体:
引子:MOMO这段时间有时会玩TempRun ,后来得知它的Android版本是用Unity3D做的。后来我发现了一个诡异的问题就是TempRun角色的动态阴影到底是怎么实现的??我手头上有一个三星的Nexus7平板测试机,可是我用Unity4制作阴影放在Nexus7上动态阴影死活不显示,可是我在同样的机器Nexus7装上TempRun动态阴影就显示的非常清楚。接着我查了一下发现Unity4只是在大部分移动平台手机支持动态阴影,Nexus7 属于Tegra 3 并不支持动态阴影。TempRun是怎么实现的呢?
后来,我尝试使用RenderTexture来制作动态阴影。做是做出来了,不过要做的很精细那么有点麻烦。文章的最后我会把我的想法说出来。如下图所示,这个阴影我就是用RenderTexture来制作的。
下面开始学习,在Project视图中,选择Creat-&RenderTexture ,接着在Hierarchy视图中在创建一个摄像机。(用来渲染RenderTexures)
Background :保持背景为透明,颜色值都改成 0 ,表示完全透明(截取只能按矩形所以背景需要做成透明了 不然就穿帮了)。
Culling Mshk :摄像机照射的层,这个摄像机会一直跟随主角移动,始终保持侧面观察主角。取得主角侧面每一帧的图像,并且渲染在地面上。从侧面观察难免会取到主角背景的图像,所以在这里我们把主角放在TransparentFX这个layer上,摄像机也只去这个Layer上截取模型。(当然你也可以重新创建一个Layer)
Target Texture :就是把这个摄像机每一帧所看到的图像复制给刚刚创建的RenderTexutre(刚刚创建的RenderTexure拖拽到这里即可)
然后在创建一个平面,记住一定要给它一个透明的材质球。这里我选了Transparent/Diffuse。然后是颜色,选择一个黑色偏灰色的颜色就可以。因为阴影是灰黑色的嘛。
然后在创建一条简单的脚本,把它绑在影子所在的平面上。像这样给他赋值。
12345678910111213141516
using UnityEngine;using System.Collections;&public class NewBehaviourScript : MonoBehaviour {& public RenderTexture t; & void Update () {
renderer.material.mainTexture = t; }& void OnGUI() {
GUI.DrawTexture(new Rect(0,0,100,100),t); }}
代码比较简单我也就不做解释了。。运行后效果,小牛头人一直在播放奔跑动画,它的影子动态的投影在身后的墙上了。
最后我在文章开始说过美中不足的地方
1.需要根据光照的旋转角度来动态计算阴影面的角度。如果光比较多那么计算量是非常庞大的,而且还有影子的根据光线的拉伸效果。
2.影子投射在地面时,如果地面凹凸不平,所以影子不能绘制在一个Plane上。而需要动态的计算影子的网格,目前我能想到的办法就是通过N条射线,从主角身后(根据主角的坐标与旋转角度来计算周围一定区域每一个点的坐标)从上方向垂直的地面发射射线,得到地面凹凸的每个点的坐标,在根据这些坐标动态的生成一个凹凸不平的网面。(如果你用的是unity3d地形那么有专门的方法得到地形的高度,如果地形使用美术建的模型来做的那么只能用这个方法喽)最后把上面做出来的RenderTexure渲在这上面。
补充。其实在StandardAssets中就有一个用投影做的简单阴影的包。在Project视图中
importPackage -& Projectors 。如下图所示,把Blob Shadows Projector 拖进Hierarchy视图中。简单的调节一下就可以了。
还有一个叫fastshadows的一个阴影插件。前几天我简单看了一下,如果是自身不会改变的话用它就挺好, 只占一个drawcall。
最后是本文的下载地址:
另外感谢楼下回复我的这个哥们,
这几天我要尝试一下shadowsmap了 哇咔咔。。
本文固定链接:
转载请注明:
雨松MOMO提醒您:亲,如果您觉得本文不错,快快将这篇文章分享出去吧 。另外请点击网站顶部彩色广告或者捐赠支持本站发展,谢谢!
作者:雨松MOMO
专注移动互联网,Unity3D游戏开发
如果您愿意花10块钱请我喝一杯咖啡的话,请用手机扫描二维码即可通过支付宝直接向我捐款哦。
您可能还会对这些文章感兴趣!
Pingback 引用通告:
Pingback 引用通告:
Pingback 引用通告:
Pingback 引用通告:
Pingback 引用通告:
Pingback 引用通告:后使用快捷导航没有帐号?
只需一步,快速开始
&加载中...
查看: 10869|回复: 14
请教一下这种,类似水波纹的效果在unity3d里怎么实现?
TA的其他好贴
马上注册,加入CGJOY,让你轻松玩转CGJOY。
才可以下载或查看,没有帐号?
QQ图片36.jpg (77.73 KB, 下载次数: 603)
13:01 上传
&&请教一下这种,类似水波纹的效果在里怎么实现?贴图?材质?
如何让别人关注你?
本楼回复(<span id="dp_count_)
如何让别人关注你?
一个扭曲材质,不过比较耗性能
本楼回复(<span id="dp_count_)
如何让别人关注你?
很不错 收益了
本楼回复(<span id="dp_count_)
如何让别人关注你?
下不下来啊
本楼回复(<span id="dp_count_)
如何让别人关注你?
看了LZ的帖子,我只想说一句很好很强大!
本楼回复(<span id="dp_count_)
如何让别人关注你?
这种扭曲材质网页游戏不清楚&&但是手机游戏的话最好别用&&手机是带不动的& &这种扭曲效果放到手机里就是一张黑色的片
本楼回复(<span id="dp_count_)
如何让别人关注你?
你好,我是Julie,广州一家手游公司的HR,我们公司急招3D特效、场景原画、角色原画、3D场景&角色,另有策划、技术岗位热招中,工作地点在广州天河华夏路30号。待遇好商量,项目挺给力的哦& &,如果有兴趣可以加QQ详聊,有认识3D特效、场景原画高手也欢迎推荐哦~
本楼回复(<span id="dp_count_)
如何让别人关注你?
本楼回复(<span id="dp_count_)
如何让别人关注你?
我也想知道
本楼回复(<span id="dp_count_)
如何让别人关注你?
Powered by请问如何才能在unity里面渲染白模效果呢? - 知乎46被浏览4071分享邀请回答181 条评论分享收藏感谢收起0添加评论分享收藏感谢收起查看更多回答Unity灯光效果及设置详解 _达内Unity3D培训
400-111-8989
Unity灯光效果及设置详解
Unity已经成为游戏程序员中越来越受欢迎的游戏引擎。这是因为Unity直接支持多种平台,如移动、桌面和控制台环境。此外,对于低收入开发者或工作室来说,它是免费使用的。
Unity支持多种技术和组件。一些关键部件是灯光和照明技术。在Unity中,你可以通过模拟复杂的灯光行为或者通过简单的灯光模型来照亮场景。
本教程将重点讲解如何在Unity 5使用照明工程,照明类型和属性,以及如何使用它们来创建丰富的照明效果。
首先,确保你有最新版本的Unity。在本教程中,我们使用的版本5.5.0f3。确保您使用的是最新的Unity版本,否则您可能会在教程中使用物理连接后出现问题。
下一步,下载LightingIn-Starter文件,解压并在Unity中打开项目。Demo场景应该能够自动打开,如果不行,可以从Assets文件夹中打开。
定向和非定向光
在现实世界中,你有两种类型的照明效果:直接和间接照明。直接照明,顾名思义,是直接从光源照射的灯光(灯,太阳或其他)。另一方面,间接照明是来自另一物体的光。
在场景中的Action中你就可以看到直接照明,正如你能注意到的一样,场景中有一个直接光源叫做Directional Light
直接光源主要用于太阳以及月亮等户外光源,他们影响场景中所有物体的表面。他们也是开销最小的图形处理器
你可以在检视面板中选择Directional
Light并查看其属性。你会注意到一些有趣的属性,比如类型,颜色以及敏感度等等。你可以改变颜色和旋转属性并实时查看结果。通过改变这些值,你可以直接改变你的定向光。
这时候,你的3D场景中没有任何的非定向光。你可以通过将球体移动至贴近红色或者绿色的墙来检查,发现球体颜色没有改变,说明场景中没有非定向光。
使用非定向光的方法之一就是使用静态对象。请记住,静态对象的使用可以提高游戏渲染的性能,但也会降低游戏质量,所以你必须在游戏中找到最佳的平衡。
在场景中添加一个方块,将它放置到球体的旁边,并命名为Cube
选中这个Cube,并在细节面板中启用静态属性
当启用静态属性时,Unity将自动为该对象创建一个光照贴图,并应用正确的光照模型。现在你可以将相机移动到Cube并发现非定向光开始起作用了。绿色或者是红色的光现在蔓延到了立方体上。
如果你改变定向光的方向,你会发现Unity将会自动更新光照贴图。
被施加到立方体上的间接照明不适用于球体,因为球体不是静态的。你可以通过使球体静态(检视&静态)来解决这个问题。
这个时候,你可以添加和配置定向以及非定向光到静态对象。然而,3D大多都是由动态对象组成。因此,我们如何将这些效果应用到那些动态对象呢?我们接下来将具体说明
光照探测器
当你的场景中包含非静态的物体,你需要使用特定的照明技术,正确地照亮他们,使他们看起来不像从场景中断开
通过使用光探针及其位置,可以在场景中采样点。每个光探针可以采样特定区域,然后计算该特定区域的照明。这些计算足够快,可用于游戏期间。光探针的使用避免了移动物体的照明和场景中的静态光映射对象之间的连接断开
球体是一个动态物体,因此,与它看起来的相反,它没有被正确地照亮。如果你把定向灯关闭,你会注意到,唯一影响球的照明是环境光。要正确地照亮球体,你需要使用光探测器
要添加光探针,你需要在Component & Rendering & Light Probe
Group下打开。这样会在场景中创建一个光探针组
下一步是将探头放在正确的位置。你现在要将他们放在盒子的每个角落
最好的办法是改变一个视图(单击在场景右上角的立方体)。然后,选择每个光探测节点并将其拖到每个框角
重复上述步骤,直到你在所有的角落中安装了光探头
有些场景需要额外的探针正确地照亮物体。为了添加更多的探针,您可以选择一个探头,然后在检视面板中,单击重复选定按钮。
复制之后,您需要将新节点放置在正确的位置(复制的一个节点将与所选的位置处于同一位置)
如果你仔细查看界面的督察,你会注意到,您还可以添加自定义探针(添加探针),删除探针(删除选定),或选择所有的探针从组(选择所有)。
在运动中观察光探头,选择球体,并为它添加一个刚体(添加组件&刚体)。然后,给对撞机分配一个材质。您可以使用橡胶材料。
现在,把球体放在盒子的顶部并按下播放键,现在你可以看到球体的适当光照了。要观察差异,禁用光照探头,并且再次播放
点光源是游戏中最常见的光源。它们通常用于爆炸和灯泡。因为它们在各个方向发光,所以它们在图形处理器上有一个平均成本。然而,计算阴影时使用点光源更昂贵。
通过选择对象&光&点光源加一点光源。然后,将点光源放在靠近顶部的盒子内。
选择点光源,并查看检视面板中的参数
第一个参数是类型。这里可以设置要使用的光类型。您可以选择点,方向,点,或区域。每个提供了特定的光效果。您可以选择任何选项,并看到结果的实时。然而,对于本教程,您将使用点选项。这将创建一个灯泡效果(光照所有方向相同)。
第二个参数是Baking。您可以将其设置为实时、烘焙或混合。将值作为默认值。范围参数定义光从点光源的中心发射多远。颜色参数定义发出的光的颜色
Intensity定义了光的亮度,并且Bounce Intensity定义了间接光强度倍数。 Shadow
Type定义了阴影属性和阴影类型。你可以设置它 No Shadows, Hard Shadows,或者是Soft
Shadows。记住,电光源的阴影对于引擎来说开销是最大的,所以要小心选择此选项。
如果选择Hard Shadows 或Soft
Shadows,你会看到球体和点光源产生的阴影。当你改变强度值时,阴影也会减轻或加重。该分辨率允许您定义阴影的详细级别。最后, Bias 和Normal
Bias让您在配置偏移时被使用来比较像素位置在光空间与阴影贴图。
cookie是一个可选的参数,它代表一个纹理的alpha通道,用来确定不同位置的光的亮度。因为这是一个点光源,必须使用一个立方体贴图纹理
Draw Halo选项只在光源周围呈现光晕。耀斑定义了一个在光的位置呈现的耀斑的引用。当调试3D场景和可能的瓶颈时,耀斑和Draw
Halo可能是有用的
Mode定义了当渲染器渲染场景时照明是多么重要。更重要的是,渲染将更密集。渲染模式可以设置为自动的,重要的,或不重要的。最后,剔除遮罩用于选择或排除,由点光源影响的对象组。
点光源从特定区域的光源发射光。它们只照亮一个特定区域内的物体,一个由三维圆锥体分隔的区域。基本上,他们的工作就像汽车的前灯。你可以想象,他们是完美的手电筒,汽车大灯,或灯柱。他们在图形处理器中也是开销很大的。
现在让我们把点光变成聚光灯。选择您创建较早的点光源并将其类型更改为聚光灯。下一步,旋转的光线,以便它可以照亮地板的盒子。重命名为聚光灯。
正如你可能已经注意到的,在检视面板中,聚光灯的参数和点光源的参数是很相似的。但是,有一个新的参数叫做Spot Angle
Spot Angle决定光锥度数的角度
无论直接和间接照明,聚光灯工作完全像点光源。你有同样的局限性和优势。因此,在游戏中设置灯光平衡时必须小心。
注意,你可以总是使用阴影和烘烤以平衡外观和性能
区域光是在一个平面的矩形区域的所有方向上发出的光。这个矩形是定义在宽度和高度属性。区域光仅在光贴图烘焙时可用,这意味着它们在运行时不会对对象产生影响。
选择点光源并将其类型更改为区域,并将其名称改为区域光。下一步,把灯放在盒子里,然后在检查员里面改变宽度和高度,以盖住盒子里面的整个区域。
通过查看区域灯光参数,你会发现大多数的参数都类似于以前的,例如,Draw Halo, Flare, Render Mode, 以及Culling
真正的新参数是宽度和高度。两者都用来设置矩形光区的大小。
如果你按播放,你会看到该地区的光是投在其范围内的所有对象的光。矩形的大小由宽度和高度属性决定。光被投射的一侧是平面的法线,与光的正z方向相同。光从矩形的整个表面发射出去。正因为如此,阴影和阴影从受影响的对象往往是比点光源或定向光源要柔和得多。
区域光的照明计算相当处理器密集型,所以它们在运行时不可用,只能被烘烤成光贴图。
这结束教程关于照明Unity 5。你了解了几种照明效果和配置。有了这方面的知识,您现在可以应用几个照明效果到您的游戏或应用程序。
转载自网络 如有侵权请联系我们感谢您的关注
Unity3D培训教程分享Unity3D 中用触摸(点击或拖动来缩小,手指捏放来放大)设备包括及iOS,以及用桌面上的鼠标(点击和拖动来缩小,鼠标滚轮来放大)及游戏的WebGL版本来缩放照相机。
unity3d培训机构为大家分享一下Unity上的Json序列化,应该一说到这个词语,我们肯定会觉得,这应该是很常用的一个功能点
对于大多数人来说,可能不知道Unity3D是什么,但是却稍微了解VR虚拟现实是什么,更不会把VR虚拟现实和Unity3D联系在一起,外行的人根本不知道这两者之间有什么关系。
在unity3d中,有多种方式可以改变物体的坐标,实现移动的目的,其本质是每帧修改物体的position,通过Transform组件移动物体
Copyright (C)
All Rights Reserved
选择城市和中心
达内北京亦庄大学生实训基地
达内北京网络营销中心
达内北京会计中心

我要回帖

更多关于 unity3d 去掉启动画面 的文章

 

随机推荐