![a135034349d3ba2d968dfa68d4036446.png](https://i-blog.csdnimg.cn/blog_migrate/7e03978943250ae9642149b29620b5ec.jpeg)
前言
如题所示,本篇内容主要聊一聊外发光和内发光。
下面我们用简单的内发光和外发光来做个小太阳。
首先我们来分析下实现原理。
实现原理
- 外发光
- 常用做法跟描边非常近似,在顶点着色器中将模型顶点坐标延法线方向延申
- 视角与法线点乘,产生中间向四周逐渐衰减到0的值,赋给透明通道,形成光晕效果
- 内发光
- 跟外发光很类似,计算世界空间的观察方向,将观察方向和法线向量传到片元着色器
- 视角与法线点乘,产生中间向四周逐渐衰减到0的值,后1-点乘结果来叠加发光颜色,形成边缘光晕
具体实现
- 外发光核心代码
![4f4fe182c87cf17dfe7fb79b7e0ba867.png](https://i-blog.csdnimg.cn/blog_migrate/cdc8a31ef4f33f31fb62b0f1c4c460d3.jpeg)
- 内发光核心代码