unity学习笔记

  • postproceing搭配urp使用
  • 在标准的渲染方式下开启后处理
  • 在urp的环境下开启后处理
  • 有关用unity自带的urp项目和自己通过下载插件搭建urp环境的不同


postproceing搭配urp使用

由于项目里的特效需要,将项目的渲染方式改为了urp,之前标准的shader会出现紫色的材质丢失问题,可以通过在editor的

unity sprite renderer 显示圆形 unity onpostrender_项目创建


这个选项去一键更新材质球

也可以自己新建urp的材质球进行手动的替换

为啥要先说这个,因为后处理的实现方式在标准的渲染和urp的渲染方式有所不同

如果使用标准的渲染的流程去开启后处理是不能出现效果的

具体的原理还没有去了解,个人的拙见是两者使用的语言和识别的方式不大相同,所以需要用不同的方式开启才行

就像前面的篇章讲到的,标准的shader使用的是cg语言,而urp使用的是hlsl语言

不过多解释(确实不太了解)

前提条件
在packagemanager里下载postproceing插件

在标准的渲染方式下开启后处理

相对比较复杂一点
设置一个新的ui层,然后新建一个空对象用于挂载后处理的脚本
给摄像机添加postlayer的脚本,给新建的空对象添加postvolume的脚本
然后把这两个对象的ui层级设置为刚才新建的ui层
在空对象里还需要新建一个profile的文件,用于保存我们设置的后处理的效果信息
然后就可以在空对象/profile文件里添加效果了
目前小弟研究的只有bloom(模糊)
和viggttee(视角)
这两个效果
添加上去感觉马上就不一样了

在urp的环境下开启后处理

这个相对上面的更简单一点

第一步:创建一个新的空对象,然后给他挂载volume的脚本

第二部:在需要渲染的摄像机里勾选启动后处理即可

unity sprite renderer 显示圆形 unity onpostrender_环境搭建_02


unity sprite renderer 显示圆形 unity onpostrender_环境搭建_03


然后在volume脚本里新建一个profile,就可以通过add override添加和标准渲染里相同的后处理效果了

如果不给摄像机勾选后处理的效果,你只能在编辑器的scene环境里看到后处理的效果,实际运行的时候还是看不到的~

希望能帮助到其他人~

加油

有关用unity自带的urp项目和自己通过下载插件搭建urp环境的不同

2021.7.27更新
时间关系就不多说废话
不同1
灯光实现方式有所不同, 具体的区别小弟没有去研究,只知道用unity自带的urp项目创建出来的灯光和我们自己通过packagemanager下载urp相关环境之后打出的光是不同的,不能说天差地别,但是至少一眼能直接看到区别
目测是因为自己下载urp相关环境搭建的时候原生的一些配置信息还是保留着,两个不同的环境之间出现了冲突,程序不知道要以哪一个为准,就出现了问题,我估计是以默认的为准
不同2
使用vfxshadergragh去制作特效的时候,两个之间的区别更大了,在标准的urp项目下搭建的特效美如画, 到了自己搭建的urp里就黯然失色,比如颜色出现了很大的差异,又或者是颜色直接不匹配,还遇到了使用里面的一些函数的时候失效了的情况
一开始我以为是我的操作方式还是其他的有问题,一直找不到原因。直到用新的urp项目区运行的时候发现是可以的, 这才有了这个感想
总结就是在原生标准的环境去使用urp不是不行,就是在后面的使用过程中会有很多功能有问题
我的建议就是项目开始之前先确定好渲染的环境,是标准的还是urp还是hdrp,确定了之后再做会比较好,不然特效师和地编之类的做好的东西在我们这对接的时候就会很痛苦
如果一定要转环境,我的建议就是重开一个项目,然后把前面的项目内容移植到这个新的环境里
亲测是可以的~