Unity中URP下逐顶点光照


前言

在上篇文章中,我们分析了Unity中URP下额外灯,逐像素光照中聚光灯的角度衰减。

在这篇文章中,我们来分析一下URP下的逐顶点光照。
在这里插入图片描述


一、之前额外灯逐像素光照的数据准备好后,还有最后的处理

在这里插入图片描述

  • 在CalculateBlinnPhong中把额外灯颜色、距离衰减、阴影衰减相加了
    在这里插入图片描述
  • 然后,再和Lambert漫反射光,进行相加混合

二、额外灯的逐顶点光照

  • lightingData.vertexLightingColor += inputData.vertexLighting * surfaceData.albedo;
    在这里插入图片描述

1、逐顶点额外灯的光照颜色

  • lightingData.vertexLightingColor

2、inputData.vertexLighting

  • 我们来看一下该变量存储的是什么

  • input.fogFactorAndVertexLight.yzw
    在这里插入图片描述

  • 在顶点着色器中,我们在fogFactorAndVertexLight.yzw中存入了 VertexLighting计算好的逐顶点光计算结果
    在这里插入图片描述

  • VertexLighting

  • 计算的大概内容和逐像素的差不多

  • 先获取逐顶点灯总数,再去计算逐顶点灯相关数据

  • 最后,让逐顶点灯颜色 和 距离衰减相乘即可
    在这里插入图片描述

3、surfaceData.albedo

  • 在片元着色器中,初始化surfaceData时,计算好的反射率
    在这里插入图片描述

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-28 05:46:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-28 05:46:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-28 05:46:01       82 阅读
  4. Python语言-面向对象

    2024-01-28 05:46:01       91 阅读

热门阅读

  1. 【计算机二级考试C语言】C头文件

    2024-01-28 05:46:01       51 阅读
  2. Vue2 长文本展示和收起

    2024-01-28 05:46:01       59 阅读
  3. 蒙特卡洛模拟之合成控制法

    2024-01-28 05:46:01       49 阅读
  4. spring与spring boot的区别

    2024-01-28 05:46:01       52 阅读
  5. Vue 插槽讲解

    2024-01-28 05:46:01       51 阅读
  6. Linux/Uinx 系统编程:getopt()函数用法

    2024-01-28 05:46:01       53 阅读