| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> 【Unity Shader学习笔记】9.复杂光照 -> 正文阅读 |
|
[游戏开发]【Unity Shader学习笔记】9.复杂光照 |
文章目录学习资料:《Unity Shader入门精要》第9章 源代码:Github Unity的渲染路径设置渲染路径:Edit —— Project Settings —— Player —— Other Settings —— Rendering Path,默认前向渲染 摄像机的渲染路径也可以单独设置,会覆盖全局设置
前向渲染每个几何对象都要迭代场景中的所有灯光 处理光照的方式:逐顶点、逐像素、球谐函数(Spherical Harmonics) 根据光源的重要性(距离物体的远近、光源强度等)进行排序 判断规则:
Base Pass:只执行一次 Additional Pass:每个额外逐像素光源各执行一次 内置光照变量内置光照函数延迟渲染第一个Pass:不进行任何光照计算,只计算哪些片元是可见的,把可见片元的相关信息存到G-buffer中 第二个Pass:使用G-buffer的各个片元信息进行光照计算 G缓冲包含的渲染纹理 Unity的光源类型
计算光源的衰减使用衰减纹理:得到光源空间下的坐标,对衰减纹理进行采样,得到衰减值 Unity的阴影阴影实现原理Shadow Map把摄像机位置与光源重合,场景中该光源的阴影区域也就是摄像机看不到的地方 Shadow Map本质上是一张深度图,记录了从该光源的位置出发,能看到的场景中距离它最近的表面位置(深度信息),Shadow Map是针对某个光源而言的 LightMode标签为ShadowCaster的Pass用来计算光源的阴影映射纹理 向其它物体投射阴影时,需要用到这个步骤 屏幕空间的阴影映射先调用LightMode标签为ShadowCaster的Pass计算光源的阴影映射纹理和摄像机的深度纹理,得到屏幕空间的阴影图 如果摄像机的深度图中记录的表面深度大于阴影映射纹理中的深度值,说明该表面是可见的,但是处于该光源的阴影中 总结
不透明物体的阴影投射阴影
Fallback的VertexLit会回调到有ShadowCaster的Pass 接收阴影
帧调试器查看阴影绘制过程
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/28 3:44:45- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |