怀化汽车网站网站首页风格
文章目录
- 前言
 - 一、之前额外灯逐像素光照的数据准备好后,还有最后的处理
 - 二、额外灯的逐顶点光照
 - 1、逐顶点额外灯的光照颜色
 - 2、inputData.vertexLighting
 - 3、surfaceData.albedo
 
前言
在上篇文章中,我们分析了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时,计算好的反射率

 
