Unity ShadowMapping
2016-12-21 10:43
323 查看
原理:
场景中一个plane,一个cube,一个light,一个mainCamera为了在plane上呈现cube的shadow,先在light上放一个lightCamera(位置方向跟light相同)
把light角度看到的深度图(注意是深度数据,而不是light角度看到的完整图像)保存到一个RenderTexure
在mainCamera的角度,计算plane上某个点P的颜色时,比较从mainCamera看到这个点P的深度值和从RenderTexture中取出的深度值
如果前者深度大说明这个点P在阴影中,相反则不在阴影中
具体实现细节:
1 记录计算灯光视野下的深度信息到RenderTexture2 找到相机视野下某个点P在灯光视野下对应的P',P'和RenderTexture中某个像素点会有一个对应关系,找到这个有对应关系的像素点
3 读取像素点中的深度Zb,并跟相机视野下P的深度Za做比较,判断相机视野下P点是否在阴影中
精度优化:
参考基于shadow Mapping的阴影
http://blog.csdn.net/zjull/article/details/11740505
Shadow Map 原理和改进
http://blog.csdn.net/ronintao/article/details/51649664
http://blog.csdn.net/aceyan0718/article/details/52067264 https://chengkehan.github.io/ShadowMap.html
有具体实现代码
https://github.com/kokichi88/shadowmapping
相关文章推荐
- Unity使用外部版本控制SVN
- unity编辑器对对象属性的编辑
- Unity 动画插件 DOTween 的简单使用
- 【Unity编程小技巧】折叠大量代码
- 各种C#Unity知识点
- Unity IAP 谷歌支付,ios支付——最白话,手把手教你做系列。
- unity 断点下载
- Unity插件研究院之ResourceChecker
- unity资源包的依赖关系(2)
- Unity开发HTC vive 四、传送
- Unity Button监听onclick在StartCoroutine()中的使用
- C#篇-unity存储类成员数据
- unity 编辑器和插件制作(五)
- Unity笔记 SPACE SHOOTER 实例详解
- unity 移动端 缩放 旋转
- unity 利用ugui 制作技能冷却效果
- Unity_简单的摄像机绕物体旋转
- Unity 头发随动效果(SpringBone)
- 【源码】Unity打开网页
- Unity 优化全解析2