这是第144篇UWA技术知识分享的推送。今天我们继续为大家精选了若干和开发、优化相关的问题,建议阅读时间10分钟,认真读完必有收获。

UWA 问答社区:answer.uwa4d.com
UWA QQ群2:793972859(原群已满员)


本期目录:

  • Bake工作流下,如何实现卡通化渲染
  • Unity版本升级问题
  • 使用AssetBundle报错
  • C++ dll的.net版本无法更改
  • jenkins执行-executeMethod 一直提示找不到

卡通渲染

Q:在Bake的工作流下,如何实现卡通化渲染?是不是可以用以下两个方案之一?或者是采用其他方法?

1)自定义Bake的Shader,直接烘焙卡通化的Lightmap;
2)采用Unity的标准Lightmap作为贴图,来做后期的卡通画处理。

我们的具体情况是:在实时渲染中,我们通过各种Shader(有自己写的,也找了很多成熟的卡通Shader),实现了卡通画的是渲染(主要是描边,Ramp和Specular,如下图1所示),但是只要一烘焙就完全变了,如图2所示:

图1

图2

通过各种实验和全网搜索,我们发现如下要点:

1)Unity的标准Bake,是采用Standard的Shader进行的,也就是基于PBS的;这一点我们通过实验发现,不管怎么变Shader,Unity烘焙出来的Lightmap都不变;

2)不同的Shader,在Bake下表现会不一样,这些不一样,主要是Shader应用Lightmap的方法不一样;

3)有一些文章或者插件是关于自定义bake流程的(比如Amplify Impostors)。

我们的目标平台是手机(最低配置例如iPhone 6S这种),目前还在前期探索阶段;直接用动态实时光上真机帧率是比较低的;静态物体Bake之后,帧率有大幅提升,因此才有了以上需求。

A1:经常使用外部烘焙导入数据,使用自定义Shader,比如Max,maya甚至ue4.外部烘焙导入的好处有很多,风格化定制,无机型显示差距,静态Lightmap动态Normal等等。
感谢陈.scott@UWA问答社区提供了回答

A2:我也是菜鸟,我觉得你要想Bake一样,就把Shader的Meta Pass 自己改一下,改成Standard Shader的Meta Pass就行。您如果希望静态物体上面是卡通光照,也可以自己写那种CPU的烘焙,直接把颜色信息烘焙到顶点色里面的。先占坑,后面接着写。
感谢张言丰@UWA问答社区提供了回答

A3:我觉得首先得从你要的效果出发。题主要做的卡通画效果到底想要什么效果?卡通渲染其实有很多种类,像很多卡通动画电影走的其实也是PBS。所以为什么需要烘焙?是想要卡通渲染里增加一些间接光照还是什么?
1)假设按问题中的效果来看,这种二值化的Cell Shading感觉除了阴影可能想要Bake,其实并不需要Bake间接光照,通常只需要一个实时动态光。如果你真的想要Bake某些效果,那可以自定义Meta Pass就可以了。
2)如上,很多卡通效果使用的就是PBS流程,只是在绘制贴图上要下功夫,这种种类的卡通渲染走自带standard shader就可以了。
感谢乐乐@UWA问答社区提供了回答

A4:最新的Unity光追出来的效果,感觉不错:

其实很多人物的卡通渲染几乎都是通过大量的查表和美术工作量来获得的。卡通渲染的高光和阴影都是由一张图控制的,阴影部分的AO因为需要渐变效果使用了顶点色。可以说为了好看美术的工作量真的不少,如果按照赛璐璐卡通渲染的搞法,烘焙实在不如让美术把低频光照画上去好了……加上一张图控制下高光部分完美。
如果傲不过美术的话,那么老老实实PBR的搞法,卡通渲染搞的好的产品几乎都是突出人物,场景貌似牺牲了不少。
感谢SRP@UWA问答社区提供了回答

该问答来自UWA问答社区,欢迎大家转至社区交流:
https://answer.uwa4d.com/question/5c3026c274f78a31e53388ed


版本管理

Q:项目还有一个多月要上线,现在必须要考虑升级,否则以后Unity不再维护老版本会给项目带来特别的麻烦(上个项目一直是Unity 4.6.x,新项目开发用5.6.x,如果有相同的底层代码要维护两种,最后不得已赶时间升到了5.6.x)

我有知道每次升级的风险非常大。想提前向已经升级到2018的小伙伴们取点经,比如:是否建议这时候升级?是升级Unity 2018.3好,还是2018.2好呢?升级后会出现什么问题,要怎么绕开?有哪些特别的坑,不容易被发现?

希望伙伴们给点支持,也为下个要升级最新版Unity的伙伴提供点问答经验。

A:我的建议如下:
1)已有项目升级建议升级到2017.4稳定版本,从Unity 5.6过渡到2017.4没有太大的问题。除非渲染从Gamma空间转线性空间会有一些新的坑。场景需要重新烘焙,所以建议根据项目情况考虑烘焙方案是否需要调整;
2)如果新成立项目才建议考虑Unity 2018,使用2018的一些新特性都是需要在项目中重新制定规范和使用流程的。

  • 渲染:使用自定义渲染管线HDRP暂不支持移动平台。使用LWRP也有不稳定的地方,新项目可以慢慢磨合使用。如果不使用LWRP仍然使用3D Project,那么选择2017.4也没有太多的差异。
  • 编辑器:主要是场景方面的问题。Unity 2018可以使用Progressive烘焙模式。2018.3的地形支持多地形系统,适合制作大尺寸地图,当然制作无缝大世界要考虑很多加载卸载策略、美术对地形边界和物件的处理等。
  • 打包:2018.3的Prefab支持嵌套,打包策略可能因为此特性发生变化。
    UI:NGUI不再更新,新项目肯定会选UGUI了。

感谢文雅@UWA问答社区提供了回答,欢迎大家转至社区交流:
https://answer.uwa4d.com/question/5c2c845774f78a31e53388a4


编译

Q:C++ dll的.net版本无法更改,我选的明明是3.5,这里会变成4呢?

A:从Unity的反馈情况来看,这个插件使用的是.Net4.x。不能被使用.Net3.5版本的工程使用。建议重新审查一下插件的项目工程环境。找到该项目工程后,用txt方式打开.vcxproj。查看”TargetFrameworkVersion v4.5.2 /TargetFrameworkVersion“所定义的版本,并做相应修改后重新编译。

感谢Vest@UWA问答社区提供了回答,欢迎大家转至社区交流:
https://answer.uwa4d.com/question/5c2e088fd832ca31ea08a781


编译

Q:我使用AssetBundle打包,经常报这个错是为什么? is corrupted! Remove it and launch unity again!
2018-12-21 16:17:24.399 19653-19674/? E/Unity: Mismatched serialization in the builtin class ‘Transform’. (Read 68 bytes but expected 80 bytes)

1  (Filename:  Line: 1901)

2018-12-21 16:17:24.399 19653-19674/? E/Unity: The file ‘archive:/CAB-2ac09b746803d54354bb4ff326f03c3f/CAB-2ac09b746803d54354bb4ff326f03c3f’ is corrupted! Remove it and launch unity again!
[Position out of bounds!]

1  (Filename:  Line: 221)

A1:archive:/CAB这个是一个资源的索引,可以用Unity的官方工具查看,就在Unity的安装目录里,这样可以定位到哪个资源挂了,一般是Prefab损坏或者音频文件,这样定位问题是最快的,不用大海捞针。
感谢郑骁@UWA问答社区提供了回答

A2:https://forum.unity.com/threads/unity-5-6-0b4-problem-with-asset-bundle-the-file-archive-cab-8bc5a956f7efa6356fcd1d00c8005f99.452006
看看这个帖子有没有帮助。 用郑晓同学说的方法,用内置工具WebExtract把bundle资源解开确认下是那个bundle,然后再看下这个bundle对应的原始资源到底有什么问题,这样定位最快。
感谢赵林@UWA问答社区提供了回答

A3:如果不是资源损坏,那就是正在异步加载的时候调用了Resources.UnloadUnusedAssets,这API有个可怕的BUG,会把正在加载的资源卸载掉,报错和你这个差不多。这个问题很容易写个Demo模拟出来,Unity一直没修(到最新的2018.3也可重现)
解决办法目前只有控制时机了,延后Resources.UnloadUnusedAssets。
感谢littlesome@UWA问答社区提供了回答

该问答来自UWA问答社区,欢迎大家转至社区交流:
https://answer.uwa4d.com/question/5c1cb53d4e577c207402d318


构建

Q:请问下有没有使用过jenkins打包Unity的,我在Invoke Unity3d Editor里面使用指令-quit -batchmode -executeMethod PlayerBuilder.BuildPlayerDebugHK总是提示找不到PlayerBuilder这个class,但是我项目里面是有的。

A:需要满足以下条件:
1)必须是Editor下的代码。
2)如果有命名空间,需要写成:命名空间.Class.Method

感谢黄晓文@UWA问答社区提供了回答,欢迎大家转至社区交流:
https://answer.uwa4d.com/question/5c2f147cd832ca31ea08a789

今天的分享就到这里。当然,生有涯而知无涯。在漫漫的开发周期中,您看到的这些问题也许都只是冰山一角,我们早已在UWA问答网站上准备了更多的技术话题等你一起来探索和分享。欢迎热爱进步的你加入,也许你的方法恰能解别人的燃眉之急;而他山之“石”,也能攻你之“玉”。

官网:www.uwa4d.com
官方技术博客:blog.uwa4d.com
官方问答社区:answer.uwa4d.com
官方技术QQ群:793972859(原群已满员)

封面图来源:Unity Hair Shader
https://lab.uwa4d.com/lab/5b5ce26fd7f10a201fe9b23a

最初为sine.space虚拟世界构建的头发着色器,专为Unity3D的PBR渲染系统而设计和构建

Bake工作流下,如何实现卡通化渲染?相关推荐

  1. opencv 图片边缘渐变_基于OpenCV的图像卡通化

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本期将创建一个类似于Adobe Lightroom的Web应用程序 ...

  2. 用 python 快速「卡通化」人物头像

    大家好,我是天作. 这个项目让我想起了以前玩QQ秀的时光.有了这个项目,再也不用找同学了,我自己也可以把头像卡通化了. 该项目为小视科技卡通肖像探索项目.可使用微信扫描下方二维码或搜索"AI ...

  3. Unity线性工作流下UI保持Gamma的解决方案收集

    本文地址:https://blog.csdn.net/t163361/article/details/125746935 传统的UI都是基于Gamma空间来制作的.当Unity中切换为线性工作流后,导 ...

  4. 实战精通OpenCV第一章--基于Android的图片卡通化及肤色改变(三)

    第一章 基于Android的图片卡通化及肤色改变 一.基于Visual Studio的图片卡通化 二.基于Visual Studio的肤色改变 三.Android代码移植 最近由于工作比较忙,很抱歉没 ...

  5. python视频处理为卡通风格_用 python 快速「卡通化」人物头像

    这个项目让我想起了以前玩QQ秀的时光.有了这个项目,再也不用找同学了,我自己也可以把头像卡通化了. 下图是我的头像.不得不说还真是神似. 人像卡通风格渲染的目标是,在保持原图像ID信息和纹理细节的同时 ...

  6. 漂亮的人脸卡通化,小视科技开源成熟模型与训练数据

    卡通画一直以幽默.风趣的艺术效果和鲜明直接的表达方式为大众所喜爱.近年来,随着多部动漫电影陆续成为现象级爆款,越来越多的人开始在社交网络中使用卡通画作为一种表意的文化载体. 在这个过程中,以表情包和定 ...

  7. opencv实践项目-图像卡通化

    目录 1.如何使图像卡通画 2.铅笔素描滤波器 3. 细节增强滤波器 4. 双边过滤器 5. 铅笔边缘滤波器 1.如何使图像卡通画 我们通常需要执行两个主要步骤将图像转换为卡通图像:边缘检测和区域平滑 ...

  8. GitHub 热榜:人像卡通化!

    公众号关注 "GitHubDaily" 设为 "星标",每天带你逛 GitHub! 转自机器之心 之前开源的「人脸变卡通」项目往往可以提供很多鬼畜素材,要么嘴歪 ...

  9. 视频、图片一键卡通化的开源工具!

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 小柴不饿 来源 | https://www.o ...

最新文章

  1. Opera 扩展文章目录
  2. ecmall开发记录(三)
  3. VPGAME 的 Kubernetes 迁移实践
  4. JavaScript 异步执行的学习笔记 - 什么是事件循环 Event loop?
  5. Linux kubuntu x64系统下解决QT5.12编辑菜单和工具栏不显示图标问题
  6. 从头开始开发gis_DevRel工程师一:从头开始建立开发人员关系团队
  7. Java共现矩阵的构建(用于社交网络结构分析)
  8. 数据库连接池Spring JDBC(JdbcTemplate)
  9. word转网页html,Word转网页html
  10. 小程序订阅消息(服务通知)实现 wx.requestSubscribeMessage
  11. 抖音数据统计_抖音账号数据分析
  12. Java 关于中文乱码问题的解决方案与经验【转载】
  13. ARM8/ARM7/A9/A15
  14. 伦敦大学学院的新研究报告揭示主流分布式账本技术网络的能耗水平
  15. 老闪创业那些事儿(50)——校园招聘(下)
  16. MIKE 21 教程 2.8 水中构筑物(堰、涵洞、阀门、堤防、桥墩、涡轮机)
  17. 微信小程序布局篇课程构思----Position+Flex
  18. 网上某位牛人的deep learning学习笔记汇总
  19. 前端开发-Vue-element 电商管理系统
  20. 鸿蒙系统能装在小米电视上吗,小米会用鸿蒙系统吗_小米会不会用鸿蒙系统

热门文章

  1. js简易计算器 黑马pink老师
  2. 桂林电子科技大学 c语言数组的使用报告,桂林电子科技大学C语言数组实验
  3. ico的使用和工具和生成
  4. 选型宝访谈:当网盘既具备分享协作能力,又具备非结构化内容的管理能力,将会怎样?
  5. Explainability in Graph Neural Networks:A Taxonomic Survey
  6. 设计师更高效_要成为更好的设计师,我们需要更多的时间进行游戏
  7. [Vue warn]: Unknown custom element: usertree - did you register the component correctly? For recur
  8. python算法笔试面试题_哔哩哔哩笔试题 算法岗 Python
  9. 我家的无线WIFI你别连---教你怎么屏蔽外人的WIFI连接
  10. ATTCK v12版本战术介绍——提权(一)