Unity中URP下的 额外灯 逐像素光 和 逐顶点光

文章目录

  • 前言
  • 一、额外灯 的 逐像素灯 和 逐顶点灯
    • 1、存在额外灯的逐像素灯
    • 2、存在额外灯的逐顶点灯
  • 二、测试这两个宏的作用
    • 1、额外灯的逐像素灯
    • 2、额外灯的逐顶点灯


前言

在之前的文章中,我们了解了 主光相关的反射计算。

  • Unity中URP下的SimpleLit的 Lambert漫反射计算
  • Unity中URP下的SimpleLit的 BlinnPhong高光反射计算

    在这篇文章中,我们来了解一下额外灯的 逐像素光 和 逐顶点光。

一、额外灯 的 逐像素灯 和 逐顶点灯

1、存在额外灯的逐像素灯

在这里插入图片描述

2、存在额外灯的逐顶点灯

在这里插入图片描述


二、测试这两个宏的作用

1、额外灯的逐像素灯

  • 在片元着色器

#if defined(_ADDITIONAL_LIGHTS)
outColor = 1;
#else
outColor = 0;
#endif
return;

  • 当前场景没有 逐像素 额外灯。所以,返回黑色
    Unity中URP下的 额外灯 逐像素光 和 逐顶点光_第1张图片

  • 我们添加一个额外灯
    Unity中URP下的 额外灯 逐像素光 和 逐顶点光_第2张图片

  • 并且在URP设置中,修改额外灯类型为逐像素
    Unity中URP下的 额外灯 逐像素光 和 逐顶点光_第3张图片

  • 我们的Shader最终显示白色
    Unity中URP下的 额外灯 逐像素光 和 逐顶点光_第4张图片

2、额外灯的逐顶点灯

  • 在片元着色器

#if defined(_ADDITIONAL_LIGHTS_VERTEX)
outColor = 1;
#else
outColor = 0;
#endif
return;

  • 当前场景的额外灯为逐像素灯。所以,返回黑色
    Unity中URP下的 额外灯 逐像素光 和 逐顶点光_第5张图片
  • 修改URP设置中,额外的类型为逐顶点后,显示为白色
    Unity中URP下的 额外灯 逐像素光 和 逐顶点光_第6张图片

你可能感兴趣的:(Unity,unity,游戏引擎)