欢迎光临散文网 会员登陆 & 注册

【Unity】尝试把官方HDRP资源包降级成URP版本

2020-11-22 00:43 作者:YouSing  | 我要投稿

一、前言

    事情是这样的,AssetStore的亚洲风格资源原本比较少,又看到有慈善打包卖Snaps Art HD系列的亚洲花园,所以想没怎么想就剁手了。可鄙人的小破笔记本,使用Unity的HDRP后,简直就是PPT播放器了。

Snaps Art HD | Asian Garden

    其实也有专供URP的Snaps Prototype系列,然而画风却是这样的(还能愉快地玩耍吗?)。

Snaps Prototype | APAC Garden

二、先吐槽一下

    我用公司的台式电脑,其实没法太正常地运行HDRP,基本上都出现各种各样的小问题。而自己的小破笔记本,导入资源就开始假死= =?其实看看源文件大小也知道了,20GB的高清资源,大部分是高清贴图,无论解压,还是图片导入的转码,够你等个半天。

    所以要让我的小破笔记本能正常使用这个资源,也只能切换成URP。大致解决思路就是,文件解压→缩小图片→切换Shader→(亿点细节)。

三、解决过程

    由于手动操作会有一些失误,而且业余也不适合做枯燥的事情,所以还是脱离Unity,做一个自动化工具。Unity Package Tool的Unity Package,指的是资源包,跟Packages没半毛关系。

    https://github.com/MrYouSing/UnityPackageTool

    由于篇幅问题,就简要地讲解工具原理。用压缩软件打开*.unitypackage,你会很容易发现内部文件结构,然后照着写代码解压出来就行。而缩小图片,直接用第三方库FreeImage。由于懒得写界面,所以使用Lua脚本编辑参数了。

把图片的最大尺寸修改为1024

    让工具自己跑一个小时后,生成了原版资源和修改资源的压缩包。

    最后把20GB的资源搞成1GB,暴力压缩资源>~<

    导入Unity后,启用HDRP和URP,准备切换Shader。由于HDRP和URP的属性命名和贴图种类都有差异,别想用Unity的API来把HDRP材质切换到URP版本,我这边是使用代码打开材质文件的文本,替换相应的属性名,再保存材质文件。

由于HDRP资源标准不一样,URP版本只能使用漫反射和法线

    ShaderGraph打开另外编写的HDRP着色器,添加一个URP的主节点。将兼容的输出属性,也连进URP主节点,但还是会有一些渲染问题。

先简单连一连,这个水Shader还是有渲染问题

    资源部分处理好后,切换成URP模式,打开场景,去掉HDRP的组件,重新修改光照设置(可能有些参数不兼容,导致渲染不正常),接着就是一般编辑流程。

四、结语

    这个文章不算是教程,算是过程记录日志。很多工具都在开发中,也没有示例文件,可能对新手没那么友好。其实URP没那么差啦,也不是什么游戏都要超高清才能玩。论结果而言,除了画质没HDRP那么好,翻车的地方也不算多。说得这么多,还是归结于没钱买新显卡(酸)。

    反正最近开发的脑洞比较多,应该是做个矢豆视频合集,或者记录日志来着。


【Unity】尝试把官方HDRP资源包降级成URP版本的评论 (共 条)

分享到微博请遵守国家法律