Unity的实时阴影技术效率低吗

U3D没有阴影是怎么个情况。。【unity3d吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:78,434贴子:
U3D没有阴影是怎么个情况。。收藏
材质 模型 灯光弄了个遍都不好使。。求老司机带带我
达内unity3d培训全程&实战教学&,unity3d金牌讲师授课.免费unity3d课程试听中!到达内unity3d学院学习unity3d,只需4个月速成unity3d游戏工程师.
有教程啊。
摄像机的一个参数Rendering Path改成Forward
话说灯光的阴影选项开了么?。。
好像试用版是没有运行时的阴影的。。。?
你是发布成什么?pc还是web
1、模型倒入的时候勾选 Generate Lightmap UVS 没有?2、shader 是不是选的 Mlbile/Unlit(Supports Lightmap)?3、进行烘焙了么?
楼主,你遇到的情况是可以烘焙出阴影,但是实时的阴影看不见吗?有个地方可能有关系,就是设置阴影的可视距离,不过忘了在哪,应该是在Edit菜单栏里面的,爪机请见谅。——来自 爱贴吧 Windows Phone 用户端
如果你要把阴影烘焙在 plane上 plane也要勾静态,才能出阴影。光勾物体不行的。
楼主,你这问题有解决吗?如果可以能告诉我一下么~~我跟你遇到相同的问题!!
51CTO学院11年行业品牌,1400万用户选择,中国专业IT技能学习平台,unity能做什么.通过在线学习的方式,帮助广大技术人员实现技能提升,高薪就业的职业梦想,unity能做什么.
检查几个地方,shader不能用透明类别下的,透明shader不会有阴影,quality setting里的当前设置要打开阴影,要有风光,免费版只有方向光能产生阴影,并且风光的设置里要选择实时阴影
我也同样问题,痛苦了一天终于搞定~Edit&Project Setting&Qualityshadows&shandows&Hard and soft shadows不谢!~
如果以上都调整了还不奏效,就把模型缩小一点,镜头拉近,就可以看到阴影了!
奇怪了我转到android平台就没了,什么情况
请问楼主,,没有阴影这个问题解决了吗??如果解决了,,希望能够告诉我。。
这个问题找到了。分享答案啊。。。在unity中,点击Edit,Project Settings,Quality,Shadow Distance。将Shadow Distance的数值调高就能看到实时的投影了。
选到灯,找到shadow Type 调成Hard shadows就有阴影了,运行也有!下面的数值调整
自己研究吧
Edit&Project Setting&Qualityshadows&shadows&shadow distance 的数值调到60
点那个小太阳了吗?
你的模型网格渲染器开了接受阴影投掷阴影了吗,还有灯光改为mixed,
是不是显卡不兼容。
seting里面的有设置
登录百度帐号推荐应用【图片】一一一安卓几乎所有机型实时漂亮的阴影解决一一一【unity3d吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:78,434贴子:
一一一安卓几乎所有机型实时漂亮的阴影解决一一一收藏
研究了半年了,因为看炉石做的实时阴影,目前我研究出来了,可以是正常阴影效率的5%左右,可以达到炉石阴影的漂亮程度。。。已经卖给了三家类似炉石的研发公司,还有没有想要的。。可以卖灯光是这样的都可以打到羽化效果,目前我做的这个阴影可以实现10层物体的叠加投影 和 4次投影折射在周围物体,可以吸附一个层级的6个颜色(多了不支持)支持3展灯光的多重投影,在这几个同时开始时,达到正常投影的15%
达内unity3d培训全程&实战教学&,unity3d金牌讲师授课.免费unity3d课程试听中!到达内unity3d学院学习unity3d,只需4个月速成unity3d游戏工程师.
私密你了,回一下,我的项目弄了1年了卡在这个问题上,钱好说,回我一下,给你我的手机号了
楼主可以放上unity商店大赚一笔啊..
还有有需求的没。。。我以为我解决的问题会万众瞩目。。然而就几个人要了。。
一个卡牌游戏都要实时阴影了啊 何必这样为难手机呢
放商店里面吧,应该会好卖一些
支不支持IOS?
手机上跑的性能怎么样?
你最好用轮胎模型看下自阴影的投射接受情况简单模型很难看出啥区别。
51CTO学院11年行业品牌,1400万用户选择,中国专业IT技能学习平台,unity能做什么.通过在线学习的方式,帮助广大技术人员实现技能提升,高薪就业的职业梦想,unity能做什么.
实时~要不是我知道有烘焙,差点就信了。还有,一楼正好有此需求,而且从来不来此吧。来了就正好看到此贴,又正好第一个回复。我他妈居然还大半夜在挖坟贴,一切都好巧。
我要这个阴影 QQ6808228
给个样例或者视频看看
大概讲解一下原理给大家涨涨知识啊,
买这东西的公司是有多挫,也对,毕竟山寨
效率的5%,应该是2000%吧,效率不该是速度么,我刚看的时候就觉得奇怪了,效率这么慢还有公司买
楼主多少钱
我勒个去,这篇文章又被翻上来那就顺便揭穿一下吧楼主发的第一张图是另一篇maya渲染效果里的,链接在此里面讲的是maya的渲染技术,跟unity实时灯光无关,所以大家可以看到后面的破板子阴影跟第一张完全不是一个级别。LZ口口声声解决方案,发来发去图都是系统默认组件,那个生成虚化阴影角上露出个投射器图标,并非什么自己研发的牛逼技术~通过13楼的回复,目测是个刚刚入行研究u3d的小学生,觉得自己学到点东西截图出来装个B,顺便骗点钱~~~以上~~~ 其它人自重
看见这个帖子好久了,今天完整看完,和小说一样精彩
你是在出售你的技术么?可以向你请教这个影子的制作步骤不??QQ:
多少钱呢?QQ:
登录百度帐号推荐应用U3D技术讲解 之 移动端实时阴影 - 蛮牛教育 - 国内最大的Unity在线学习平台|Unity培训|Unity3d培训|Unity视频学习|Unity教程 Unreal 虚幻 AR VR - Powered By EduSoho
就是一个卵,有个蛋用 坑钱!!!!!!
你还没有登录,请先或!
看课程封面,以为是能解决RenderTexture对于不平整地面的处理呢,是否可以整合Projector的贴图为RenderTexture来模拟呢还有就是一个角色要给一个单独的层,这个不太可能吧,希望...
你还没有登录,请先或!
收藏了课程
收藏了课程
收藏了课程
收藏了课程
开始学习课时当前位置: >
Unity3D代码及效率优化总结
时间: 09:18 来源:互联网 作者:网络 浏览:
Unity3D代码及效率优化总结1、在使用数组或ArrayList对象时应当注意length=myArray.L&&&&for(int&i=0;i&i++)&&&&{&&&&}&&避免for(int&i=0;i&myArray.Li++)&&&&&{&&&&}&&2、如果没有必要每帧都处理,则可以每隔几帧处理一次void&Update(){&if(Time.frameCount%6==0)&{&DoSomething();&}}&&3、定时重复调用可以使用InvokeRepeating函数实现,比如,启动0.5秒后每隔1秒执行一次 DoSomeThing 函数:void&Start()&&&{&&&&&&&&&InvokeRepeating(&DoSomeThing&,&0.5f,&1.0f);&&}&&&4、少使用临时变量,特别是在Update OnGUI等实时调用的函数中。void&Update()&&{&&&&&Vector3&&&&&&pos=transform.&&}&&可以改为:private&Vector3&&&void&Update()&&{&&&&&pos=transform.&&}&&5、主动进行垃圾回收void&Update()&&{&&&&&&if(Time.frameCount%50==0)&&&&&&{&&&&&&&&&System.GC.Collection();&&&&&&}&&}&&6、优化数学运算,尽量避免使用float,而使用int,特别是在手机游戏中,尽量少用复杂的数学函数,比如sin,cos等函数。改除法/为乘法,例如:使用x*0.5f而不是 x/2.0f 。7、压缩&Mesh&&导入&3D&模型之后,在不影响显示效果的前提下,最好打开&Mesh&Compression。&&Off,&Low,&Medium,&High&这几个选项,可酌情选取。对于单个Mesh最好使用一个材质。8、&运行时尽量减少&Tris&和&Draw&Calls&&&&&&& 预览的时候,可点开&Stats,查看图形渲染的开销情况。特别注意&Tris&和&Draw&Calls&这两个参数。&&一般来说,要做到:&&Tris&保持在&7.5k&以下&&,Draw&Calls&保持在&35&以下。9、避免大量使用&Unity&自带的&Sphere&等内建&Mesh&&&&&&& Unity&内建的&Mesh,多边形的数量比较大,如果物体不要求特别圆滑,可导入其他的简单3D模型代替。&10、如果可能,将GameObject上不必要的脚本disable掉。如果你有一个大的场景在你的游戏中,并且敌方的位置在数千米意外,这是你可以disable你的敌方AI脚本直到它们接近摄像机为止。一个好的途径来开启或关闭GameObject是使用SetActiveRecursively(false),并且球形或盒型碰撞器设为trigger。11、删除空的Update方法。当通过Assets目录创建新的脚本时,脚本里会包括一个Update方法,当你不使用时删除它。12、引用一个游戏对象的最合乎逻辑的组件。有人可能会这样写someGameObject.transform,gameObject.rigidbody.transform.gameObject.rigidbody.transform,但是这样做了一些不必要的工作,你可以在最开始的地方引用它,像这样:privateTransform myTvoid Start(){&&& myTrans=}&13、协同是一个好方法。可以使用协同程序来代替不必每帧都执行的方法。(还有InvokeRepeating方法也是一个好的取代Update的方法)。14、尽可能不要再Update或FixedUpdate中使用搜索方法(例如GameObject.Find()),你可以像前面那样在Start方法里获得它。15、不要使用SendMessage之类的方法,他比直接调用方法慢了100倍,你可以直接调用或通过C#的委托来实现。16、使用javascript或Boo语言时,你最好确定变量的类型,不要使用动态类型,这样会降低效率,你可以在脚本开头使用#pragmastrict 来检查,这样当你编译你的游戏时就不会出现莫名其妙的错误了。
(责任编辑:雷霆风)
免责声明:Unity之家部分内容来源于互联网,如有侵权,请联系我们,本站将立即进行处理。
猜你也喜欢看这些 ??????
其他类型的开发经验 ??????Unity3D手游开发-移动平台实时阴影方案 - 简书
Unity3D手游开发-移动平台实时阴影方案
阴影这个东西,说来就话长了,很多年前人们就开始研究出各种阴影技术,但都存在各种瑕疵和问题,直到近几年出现了PSSM,也就是CE3的CSM,阴影技术才算有个比较完美的解决方案.Unity自带的实时阴影,也是这种技术,在电脑上很成熟的.我也是目睹了阴影技术的发展,以前也自己写过一些阴影,本来以为以后再也不用担心阴影了,结果做移动游戏以后,发现情况没那么乐观.这种基于深度的shadow map 技术,需要浮点纹理的支持,但有的移动平台不支持浮点纹理,即使支持,这种技术开销也特别大.所以我们需要重新思考,移动平台到底什么样的阴影方案比较合适.我把常见的实时阴影技术分3个大的类别,逐一分析.1. 基于模板的体积阴影基于模型边缘的,模型需要特别处理,正是由于基于模型边缘的,属于顶点级别,而不是像素级别,导致不能支持alpha test,比如主角的翅膀.放弃2. 基于投影Projector的shadow map基于投影的,投影纹理,需要RenderTexture,支持alpha test,但是这种技术也有很多问题,比如反向投影(可加一张fall of 纹理解决), 多重投影(比如桥上和桥下),等等阴影质量和RenderTexture纹理大小关闭很大,如果要一张RenderTexture纹理渲染很多角色,纹理就要大一些,要处理阴影边缘,但是用来处理单个角色,就能避免很多问题.可考虑.3. 基于深度Depth的shadow mapUnity自带的就是这种,保存深度需要浮点纹理,但是有的手机不支持,且开销很大,不考虑.通过以上分析,再结合自己游戏的实际情况,45度视角游戏,我最后定的方案是:中等画质:1.只有主角采用基于投影Projector的shadow map2.其他角色,采用最简单的阴影面片绑在脚下.(如果怪物被击浮空,就隐藏面片,落地再显示,防止穿帮)这样的好处是,既有实时阴影,又保证了效率.高画质:1.视野内全部角色基于投影Projector的shadow map实现原理:很简单,先渲染角色到RenderTexture,再用Projector投影到地面.1.投射shader:Shader "Luoyinan/Projector/ShadowCast"{Properties{_ShadowColor ("Main Color", COLOR) = (0.5, 0.5, 0.5, 1)}SubShader{Pass{Color [_ShadowColor]}}}2.接收shader:Shader "Luoyinan/Projector/ShadowReceive"{Properties{_Color ("Main Color", Color) = (1,1,1,1)_ShadowTex ("Cookie", 2D) = "" {}_MaskTex ("Mask", 2D) = "" {}}Subshader{Tags {"Queue"="Transparent"}Pass{ZWrite OffFog { Mode Off }ColorMask RGBBlend DstColor ZeroOffset -1, -1CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"struct v2f{float4 uvShadow : TEXCOORD0;float4 pos : SV_POSITION;};float4x4 _Pv2f vert (float4 vertex : POSITION){v2o.pos = mul (UNITY_MATRIX_MVP, vertex);o.uvShadow = mul (_Projector, vertex);}sampler2D _ShadowTsampler2D _MaskTfixed4 frag (v2f i) : SV_Target{fixed4 texM = tex2Dproj(_MaskTex, UNITY_PROJ_COORD(i.uvShadow));fixed4 texS = tex2Dproj(_ShadowTex, UNITY_PROJ_COORD(i.uvShadow));texS.rgb += texM.return texS;}ENDCG}}}优化:1. RenderTexture尽量简单,大小最好不要超过512,格式用没alpha通道的565,关闭抗锯齿,因为只渲染单一颜色,可关闭深度,2. 阴影投射的shader尽量简单,为了效率,我的shader没用主纹理,所以不支持alpha test.如要支持,可自行修改shader.3. 阴影摄像机看到的对象比游戏主摄像机看的多一些,只让主摄像机看到的对象才产生阴影.能少渲染几个角色.用OnBecameVisible来实现.4. 为了避免反向投影穿帮,阴影方向尽量不要太斜.5. 远处的阴影边缘衰减,用一张掩码纹理:
最终效果,可以看到远处的阴影自然衰减,也能投影到斜坡上,:
Don't reinvent the wheel.}

我要回帖

更多关于 实时阴影技术 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信