手把手带你在URP中实现指定物体的外轮廓描边效果【Unity创作心得#13-1】
Description
这期视频分享一个在URP中制作的指定物体外轮廓描边效果,希望能帮到大家。 卷积介绍视频:BV1Vd4y1e7pj 如何在URP中写一个全屏shader?Perform a full screen blit in URP | Universal RP | 15.0.7 (https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@15.0/manual/renderer-features/how-to-fullscreen-blit.html) HLSL的shader中的纹理采样器。Unity - Manual: Texture samplers (https://docs.unity3d.com/Manual/SL-SamplerStates.html) (弹指一挥间居然快一年半没更新Unity视频了,真是怠惰呢!(^∀^
Comments
感谢,跟着做了个项目[OK]。主要是为了了解下URP的Renderer Feature的流程。Unity太操蛋了一直更新一直换接口乱七八糟的。 把视频里提到的问题都处理了,还增加了 Rendering Layer Mask 的配置和Volume的配置。 有了Volume就能直接在运行时修改描边参数了。后面有时间做下异形描边和基于顶点的描边。 项目丢这有需要的小伙伴可以用。 https://github.com/blurfeng/unity-urp-outline
♥ 11 ↩ 3
[支持]跟着做了下 在最新的Unity6 得去Project Settings中 Graphics 最下面勾上Compatibility Mode
♥ 11 ↩ 1
shader代码有个问题,当超出屏幕边缘的时候会在另一侧出现错误的描边,例如某个物体底部超出了屏幕区域,则会在顶部对应区域显示描边,需要在计算卷积偏移采样之前做一下判断 //计算卷积结果 for(int j = 0; j < 8; j++) { // 添加屏幕边界保护(手动钳制UV坐标) half2 sample_uv = i.uv + i.offset【j】; //判断是否是屏幕边缘 if(sample_uv.x <= 0.0 || sample_uv.x >= 1.0 || sample_uv.y <= 0.0 || sample_uv.y >= 1.0) { continue; } //只采样alpha通道,取卷积核中不同点的alpha const half mask = SAMPLE_TEXTURE2D_X(_OutlineMask, sampler_linear_clamp_OutlineMask, sample_uv).a; gx += mask * kernelX【j】; gy += mask * kernelY【j】; }
♥ 5
【【官方双语】那么……什么是卷积?】 https://www.bilibili.com/video/BV1Vd4y1e7pj/?share_source=copy_web&vd_source=17214a4f3174d96da8e510e00e433a52
♥ 5
https://loveforyou.tech/posts/urp-screen-space-outline/ 我实现过一个类似的效果[给心心]
♥ 5 ↩ 8
宝藏up,你的每节课我都要学习一下,给你点赞了!
♥ 3 ↩ 1
unity6才终于有根据name找到renderinglayermask的api[笑哭]
♥ 2 ↩ 1
[热词系列_爷青回]上次更新的时候还在学Unity,现在已经转UE了(
♥ 2
夸夸up,讲得太好了[打call],顺便问一下有交流的群聊吗
♥ 2 ↩ 1
好东西,点了
♥ 2 ↩ 1
想请教一下Up主如何保证物体在有正确的遮挡关系下将颜色写入RT,我现在更改了desc.depthBufferBits的值来保存深度信息,但这么修改之后RT中物体本身的颜色信息就会丢失,只剩下红色的深度信息了[笑哭]
♥ 1 ↩ 5
我这里遇到了一个问题,就是没有描边算法时,与视频中完成95%的阶段一样,但是跟着教程添加了描边算法后,竟然变成了最初没有添加Shader的时候的样子,怎么办啊
♥ 1 ↩ 2
[冰糖IO 蜕变·闪耀_?看看]这下爷青回了
♥ 1
URP12可以实现么?
♥ 1 ↩ 1
必须三连,很详细很专业的教程
♥ 1
nice啊UP,好教程,关注了[点赞]
♥ 1
[支持]
♥ 1
我的青春回来了
♥ 1
[支持][支持][支持]
♥ 1
Up 为啥你的在rider里写shader的时候引入Common.hlsl不会爆红,是有啥插件么
↩ 1