Unity-URP学习笔记(九)使用stencilmask制作哈利波特巧克力蛙巫师牌效果
URP制作巫师牌效果
结果展示
第一步-制作卡牌
首先,在ps里把卡牌的外框抠出来,
丢到场景中。
材质球使用URP的Unlit就可以了
如图
第二步-制作stencil mask层
新建一个plane遮住卡牌正面的镂空处。
编写shader,赋予材质。
如图
Shader "MyURP/StencilMask"
{
Properties
{
[HideInInspector] __dirty( "", Int ) = 1
}
SubShader
{
Pass
{
Name "MASK"
Tags
{
"RenderType" = "Opaque"
"Queue" = "Geometry+0"
"LightMode" = "LightweightForward"
}
Cull Back
ZWrite Off
Stencil
{
Ref 1
Comp Always
Pass Replace
}
ColorMask 0
HLSLPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma target 3.0
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
//传入顶点着色器的数据
struct a2v
{
float4 vertex : POSITION;
float2 uv : TEXCOORD0;
};
//传入片元着色器的数据
struct v2f
{
float4 worldPos : SV_POSITION;
};
//顶点着色器
v2f vert(a2v v)
{
v2f o