3D地图中光影作用
3D地图的渲染主要基于三维坐标的坐标转换,构造出3D图形在屏幕平面内的可视效果。但是立体图形就等于立体效果了吗?如下图所示,由于立体建筑的侧面都是同一颜色且没有勾勒轮廓线,我们无法区分侧面的分界线,也就没有立体效果。
我们平时在真实世界中是如何感知立体的呢?除了近大远小的透视投影之外,最重要的就是光照所带来的明暗变化,不同面因为在光照下呈现出不同的颜色而能够区分开来,才让我们感知到了立体图形的形状。
如果我们在3D地图中加入光照所带来的明暗变化和阴影,不仅能表现出更强的立体感,还可以模拟物体表面的粗糙度,以及水面的波动,让地图表现得更加真实。
光照基础
冯氏光照模型
光源(投光物)
光照实现
顶点数据
模型矩阵
法向量
光照参数
光强及光源配置
相机位置
光照计算
多光源的处理
漫反射
镜面反射
- 传统Phong镜面反射
- Blinn-Phong镜面反射
Gouraud着色 vs Phong着色
LDR vs HDR
阴影实现
阴影贴图
阴影着色
改进优化
- 性能问题,延迟渲染
- 多光源动态支持
- 深度精度一致性问题
- 相机可视范围与光源可视范围不一致的问题