第一个pass随便你怎么写,直接用URP自带的也可以,我自己写了一个高光+兰伯特+阴影,可以无视第一个pass
USEPASS "Universal Render Pipeline/Lit/ForwardLit"

直接上shader吧,复制就能用了,好耶!
Shader "HLSL/PlanarPlayerShadow" {
Properties{
_BaseMap("Example Texture", 2D) = "white" {}
_BaseColor("Example Colour", Color) = (0, 0.66, 0.73, 1)
_Specular("Specular",Float) = 1
_Smoothness("Smoothness",Float)=0.5
_ShadowColor("ShadowColor",COLOR)=(0,0,0,0)
_ShadowFalloff("ShadowFalloff",Range(0,1))=0.5
_Plane("Plane",float)=0
}
SubShader{
Tags { "RenderType" = "Opaque" "RenderPipeline" = "UniversalPipeline" "Queue" = "Transparent"}
HLSLINCLUDE
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
CBUFFER_START(UnityPerMaterial)
float4

本文介绍了如何在UniversalRenderPipeline中使用HLSL shader实现高光、兰伯特散射和阴影效果,包括Diff+Sp Pass和PlanarPlayerShadow Pass,适合Unity开发者学习和实践.
最低0.47元/天 解锁文章
2341

被折叠的 条评论
为什么被折叠?



