unity urp 点光源自定义阴影
时间: 2023-09-01 20:13:09 浏览: 107
在Unity URP中,点光源的自定义阴影需要通过脚本来实现。具体步骤如下:
1. 创建一个新的着色器,并设置其为使用“Universal Render Pipeline/Lit”着色器。
2. 在着色器中添加一个新的块,用于计算阴影:
```hlsl
#pragma shader_feature __ _SHADOWS_SOFT
#pragma shader_feature __ _SHADOWS_CASCADE
float3 ComputeShadowCoord(float4 pos)
{
float3 shadowCoord = pos.xyz / pos.w;
shadowCoord = shadowCoord * 0.5f + 0.5f;
#if defined(_SHADOWS_SOFT)
shadowCoord.z += 0.0005f;
#endif
#if defined(_SHADOWS_CASCADE)
shadowCoord.z += 0.0001f * pos.w;
#endif
return shadowCoord;
}
```
3. 在Pass中添加以下代码,用于计算阴影:
```hlsl
#ifdef LIGHTMAP_ON
SHADOW_COORDS_LIGHTMAP
#elif defined(SHADOWS_SCREEN)
SHADOW_COORDS_SCREEN
#else
float3 shadowCoord = ComputeShadowCoord(UnityObjectToClipPos(v.vertex));
#endif
```
4. 在Pass中添加以下代码,用于生成阴影:
```hlsl
#if defined(_SHADOWS_SOFT)
float shadow = ComputeSoftPointShadow(shadowCoord, _LightPosition, _LightRadius, _ShadowmapTexture, _ShadowStrength);
#elif defined(_SHADOWS_CASCADE)
float shadow = ComputeCascadePointShadow(shadowCoord, _CascadeShadowmapTexture, _CascadeShadowStrength, _CascadeShadowDistance);
#else
float shadow = ComputePointShadow(shadowCoord, _LightPosition, _ShadowmapTexture);
#endif
return shadow;
```
其中,ComputePointShadow函数用于计算点光源的阴影。您可以通过调整参数来自定义阴影的外观和行为。
希望这能帮助到您!
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)