技术分享连载(八十七)

  • 时间:
  • 浏览:0

关于Unreal 4的实现,楼上将会说得很完整性了,还可不能否 参考Unreal 4源码ShadowSetup.cpp/ShadowDepthRendering.cpp,搜索SDCM_StaticPrimitivesOnly相关的代码即可,我补充一下或多或少疑问报告 :

1、针对动静物体为什在么在补救

在手机上比较难完美,还可不能否 针对静物渲染一张SM,动态物件用planar shadow补救

当没人 Panel B的还会是正常的,我通过FrameDebug调试发现,当Panel B 被启用后,特效是永远最先绘制的,但通过读取Render Q 的值,原本特效要大于UI,告诉我是为那此。

上传了例子工程供参考:testRenderQ.unitypackage

我根据大伙项目遇到过的疑问报告 猜测下,着实项目资源导入某个地方有疑问报告 的将会性更大些,题主是是是否是是将会位于以下情况报告:

该疑问报告 来自UWA问答社区,如您对该疑问报告 仍有疑问报告 ,还可不能否 转至社区进行进一步交流。

https://answer.uwa4d.com/question/5a504eabfda3486d8d6811

3、还可不能否 光源动,Shadow Map用同一张 看你为什在么在动,将会是模拟日光,轻微转角,那你只有放弃精确阴影计算,在判断某个空间点是是是否是是在阴影区时增加偏转角,为宜把阴影做平行四边形变形 将会想350度转,目前我也没人 很好的思路能兼顾cache和平滑转动时的过度,毕竟物体的四面都长得不一样,不将会用一张shadow map做平行四边形变形而不穿帮。

6、将会都全是,只有尝试最小排除法了,删除项目绝大每项资源,或多或少点增加,本来打包,重现,排除愿因;不行话语本来删除代码,或多或少点加上,打包,重现...有还会笨方法也是最容易接近真相的。

以上回答由UWA提供。

Q1:大伙每次大批量地合入美术资源时,老要 会再次出现构建出来的版本再次出现材质引用丢失、Animator Controller引用错误、贴图引用错误等资源引用错误的疑问报告 ,美术资源在本地是正确的,或多或少人机器上Editor看也是正确的,构建机Editor看也是正确的,但构建出来的Bundle是坏的。有时删除Bundle再编会补救,有时则不行,目前遇到你这个 情况报告,只有让多多任务管理器 同事在构建机上删Meta重新做一次Prefab,费时费力也我太久 规范。

上传了工程例子供参考:testLightmap.unitypackage

Unreal 4的动态物体在计算阴影的之还会计算两次,一次是从静态场景投射到动态物体,一次是动态物体投射到静态场景。在计算静态场景投射到动态物体阴影时,引擎会缓存一张静态场景的Shadow Map,用于计算投射到动态物体上的阴影。本来,对于动态物体我太久 接收到来自静态场景的精确阴影遮挡,本来你这个 方法比较耗时,本来mobile本来支持。

Q3:我在Unity 5.5.4版本下烘焙建筑物(Windows平台下),里边楼层再次出现黑块,请问那此愿因愿因呢?,我只用了一三个小 方向灯,但烘焙的还会环境色用了白色,如下图:

我共同也参考了Cry Engine的文档:

http://docs.cryengine.com/display/SDKDOC2/Cached+Shadows

测了下例子着实还可不能否 复现。这是将会较新版本的NGUI,UI Panel也加入了SortingOrder的概念,在开启Panel B时,Panel A的SortingOrder从0变为1(Panel B的Depth比Panel A的Depth小),你这个 还会粒子的SortingOrder还是0,太久就被覆盖掉了。将会把Panel B禁用了,将会把PanelB的Depth改到40(大于Panel A的Depth)都还可不能否 使得粒子再次出现。

太久只有在particleLayerControl中加上SortingOrder的补救,即保持粒子的SortingOrder和所在的UI Panel的SortingOrder始终是相同的。

Q2:我在UGUI 使用一三个小 UIRoot,类型使用Screen Space - Camera,使用摄像机的 Culling Mask, 将会UIRoot可视,下面的UI子物体设置不可视Layer,是全是我太久 被裁掉?有没人 那此补救方法吗?

该疑问报告 来自UWA问答社区,感谢Yaukey提供了回答,如您对该疑问报告 仍有疑问报告 ,还可不能否 转至社区进行进一步交流。

https://answer.uwa4d.com/question/5a0e8184e8a3d9357ce19473

Q4:NGUI(3.11.1)、Unity5.6.4版本下再次出现三个小 Panel控件后,通过RenderQ控制特效层级失效的情况报告,具体操作如下:

2、Shadow Map Cascade

缓存话语,Shadow Map只有随时更新,将会镜头频繁大距离移动,cascade只有跟随镜头随时更新,过度将会会不自然,这只有根据项目形态学 权衡

我找到了另你这个 方法,修改LightmapParameters的,新建一三个小 LightmapParameters,修改里边的Backface,Tolerance改为很小的值就行,我的是0.2,如图:

3、打包AssetBundle时,在构建Bundle 还会有没人 使用文件操作API(全是 Unity 的AssetDatabase的API)来直接修改了某个文件夹将会或多或少会破坏引用关系的行为,本来构建Bundle,完成后恢复文件夹名字(将会恢复资源原始情况报告),原本丢失引用关系的几率很大;

4、有没人 将会发布机器上,看着正常,本来Perforce里边将会位于一堆已修改的Meta文件;你这个 疑问报告 常再次出现于美术本地三个小 A1,A三个小 相同资源在不同文件夹,A1受版本控制,本来将会你这个 操作,本地临时资源A2使用了原本A1的Guid,原本正确的 A1 被迫使用了不正确的新生成Guid(为宜两人交换),本来上传了A1的Meta,结果发布机器的下来的A1 Meta就会跟别人丢失引用,将会更新下来本地重新分配了新的Guid;美术策划最容易犯你这个 错误;

Unreal 4的你这个 Movable Light的Shadow Map Cache只有给Static、Stationary物体用,本来着实着实是想给Movable光照下的Static物体阴影计算做个优化。本来Mobile端没必要用Movable,Stationary就好,Static物体的阴影是预计算的。

5、大伙是Unity 5.3.8p2,上周遇到一三个小 疑似bug,美术多上传了一组相同的资源,大伙更新下来全是重新生成Guid,本来太久挂起的Meta在Unity里重新导入后,在版本控制里神奇地消失了,但修改还在;

该疑问报告 来自UWA问答社区,如您对该疑问报告 仍有疑问报告 ,还可不能否 转至社区进行进一步交流。

https://answer.uwa4d.com/question/5a07e839e923795076c9b5db

共同将会想移植到Unity,可行吗?将会让我 补救大面积实时阴影的疑问报告 (光源方向会变化,大每项物体是动态物体 本来频率全是高)有那此补救方案吗?让我 在光源Space下预烘焙数据来达到光源方向变化,用一张Shadow Map的将会性吗?类事 Directional Light Map那种建立空间的?

Q5:让我 问下Unreal 4的 Movable光源的Shadow Map Cache疑问报告 ,它的具体更新策略是那此样的呢?要怎样补救动态物体与静态物体的关系?需不只有对Shadow Map进行Cascade?

2、资源导入都重载过OnPostProcess并补救了资源设置,你这个 步是是是否是是修改了那此不合理的地方,比如破坏了引用关系;

该疑问报告 来自UWA问答社区,如您对该疑问报告 仍有疑问报告 ,还可不能否 转至社区进行进一步交流。

https://answer.uwa4d.com/question/5a0a50113a88251e734e5628

感谢 招文勇提供了回答。

在一三个小 UIroot下面三个小 Panel,Panel A 下面有个Effect 通过脚本particleLayerControl.cs 控制Render Q 来补救在UI上特效的层级疑问报告 ,当有原本Panel B(一三个小 空的Panel,它的layer < Panel A的Layer),就会位于特效永远最先绘制的疑问报告 。在附件富含个测试场景:

UGUI的网格合并是以Canvas为单位的,太久只有改Canvas的Layer才有效。将会本来个别UI元素要快速隐藏和显示,还可不能否 考虑用Scale为0来做,Scale为0时UI的顶点信息会被清空,太久隐藏时就我太久 参与网格重建了。

1、是是是否是是使用代码混淆。在Prefab 上挂的脚本忘记加上到排除混淆的列表,愿因序列化的字段被混淆,打完Bundle后的Prefab资源加载还会,下发的脚本再次出现引用错误;

想问问这是Unity的Bug吗?大伙有没人 规避将会优化的方法?在管理美术资源合入的还会有没人 更好的流程,大伙目前使用Perforce管理Unity工程,要求美术显式上传资源配套的Meta文件。

Unreal 4也提供了类事Unity的对静态场景投射到动态物体阴影近似补救方案,也是将shadow的预计算结果存储到富含间接光信息(也是SH)的点云(在Unity中本来light probe)中,本来根据动态物体的位置从点云插值出阴影遮挡,本来你这个 方法只有得到物体整体明暗度的变化,无法计算精确阴影。Unreal 4是推荐mobile上使用里边你这个 方法的。

只有补充一下的是,Unity补救动态物体接受静态物体烘焙阴影也是采用Light Probe的。题主说是动态光源,动态物体,最好还是实时阴影计算。将会是采用Shadow Map Cache的方案做优化,将会得看具体场景和需求。预计算烘焙多个Shadow Map的方案将会只有考虑三个小 因素,一是光源变化,二是动态物体变化。将会动态物体和光源变化频率全是高,没人 还可不能否 尝试对它们采样预计算好Shadow Map。本来原本带来的Shadow Map占用空间和内存开销大伙本来清楚,将会得尝试一下才知道。



原文出处:侑虎科技

本文作者:admin

转载请与作者联系,共同请务必标明文章原始出处和原文链接及本声明。