UnityShader入门精要读书笔记
文章平均质量分 84
LuckySawa
摸
展开
-
【实验记录 1】使用帧调试器查看渲染事件
实验目的熟悉帧调试器的功能,各个面板的意义等进一步理解渲染流程帧调试器基本介绍帧调试器可以查看每一个渲染事件使用的shader、pass、keywords等属性,以及当前渲染的目标(如阴影映射纹理、深度纹理、帧缓存等),还可以查看shader中一些计算变量(纹理、坐标、矩阵等),配合Game窗口可以很好的理解渲染的步骤场景搭建光照平行光:Shadow Type为Soft,Render Mode为Auto(当前实验中实际执行时是Important)物体立方体:Cast Shadows原创 2021-03-07 17:58:23 · 205 阅读 · 0 评论 -
《Unity Shader入门精要》自学笔记(八)第九章 更复杂的光照 —— Unity的阴影
产生阴影的原理:光沿直线传播即,从光源出发,看不到的地方都处于阴影中Unity处理阴影的两种途径传统的阴影映射调用LightMode为ShadowCaster的Pass,获取光源的阴影映射纹理ShadowMap(包含可以被光源照亮的点的z值)在正常渲染的Pass中,将顶点转换到光源空间中,获取该顶点在光源空间中的xy坐标,以及深度值z使用顶点在光源空间中的xy坐标,对ShadowMap进行采样获得深度值Z若z > Z,则该点处于阴影中屏幕空间的阴影映射(Screenspace Sh原创 2021-03-05 12:30:17 · 472 阅读 · 1 评论 -
《Unity Shader入门精要》自学笔记(七)第九章 更复杂的光照 ——光照衰减
Unity中的光源Unity中光源的属性Light组件中的3个属性颜色(Color)强度(Intensity)衰减(Attenuation):Unity光源的Inspector面板中,使用该光源可以照亮的半径Range来表示以及Transform组件中的两个属性位置(Position):与衰减、强度参数一起计算到达顶点的光照强度方向(Direction):与到达顶点的光照强度、光照颜色等属性计算顶点接受的光照上面的5个属性用一个可以调节亮度的手电筒来理解就再简单不过了:颜色:手原创 2020-12-09 23:31:18 · 710 阅读 · 6 评论 -
《Unity Shader入门精要》自学笔记(六)第九章 更复杂的光照 —— 渲染路径
渲染路径原创 2020-12-06 12:22:16 · 257 阅读 · 0 评论 -
《Unity Shader入门精要》自学笔记(五)第八章 透明效果
这一章的内容巨多啊,信息量比五六七章加起来还多不过整清楚渲染顺序、深度测试、深度写入、透明度测试、透明度混合,以及它们对渲染的影响,学通这一章也就没啥问题了深度缓冲区Z-Buffer存储屏幕上的每个像素当前的深度值,值越大,离屏幕越远深度测试将当前片元的深度值与深度缓冲区中的深度值比较,若比深度缓冲区中的值大,则说明这个片元会被之前渲染过的片元挡住,没有必要再继续渲染了,所以会被丢弃(当然也可以手工设置远被舍弃,还是近被舍弃,还是一些其他的判断标准)深度写入ZWrite当一个片元通过了深度测试原创 2020-11-21 09:25:02 · 329 阅读 · 0 评论 -
《Unity Shader入门精要》自学笔记(四)第七章 基础纹理
如果不确定一个变量需要在哪个着色器计算,可以判断一下它是否需要一个纹理值,需要的话就要在片元着色器中计算(因为需要进行fragment单位的纹理采样),不需要的话可以随意需要顶点着色器处理的一般是一些对于模型顶点属性的计算(废话???),比如顶点坐标、顶点法线、顶点切线、顶点uv(总之就是语义里面不同于平平无奇的TEXCOORD的那一类)...原创 2020-11-15 10:45:30 · 520 阅读 · 0 评论 -
《Unity Shader入门精要》自学笔记(三)第六章 基础光照
种种原因鸽了很久…对于光照模型的讲解原书已经讲得非常详细了,加上懒得敲公式,笔记中只会按照自己的理解来写,标准光照模型进入摄像机的4种光线以及它们的表示方法自发光Emissive一般实时渲染中,自发光的物体只会给自己加上这个光照,而不会影响周边的物体(即:它不是光源)直接使用该材质的自发光颜色emissive环境光Ambient通常是一个全局变量高光反射Specular注意这里的高光反射只是一种经验模型根据Phong模型,高光反射的计算方法为:cspecularc_{s原创 2020-11-13 23:06:36 · 234 阅读 · 0 评论 -
《Unity Shader入门精要》自学笔记(二)矩阵、空间以及获取变换矩阵思路的总结
学习目标了解空间变换时获得新坐标的思路,尽量不深究矩阵的运算矩阵是什么从矩阵乘法来看,简单明了:矩阵是一个变换方法,会对相乘的向量做出一系列如旋转、缩放、平移的变换那稍稍转个弯,从向量与矩阵相乘来看,矩阵存储着一个坐标系相对于它的父标系或子坐标系的坐标当该坐标系中的点写成列向量,乘以这个矩阵的时候,就相当于对这个点做了一次到对应坐标系的空间变换坐标系中所有的点,都可以表示为坐标轴的线性组合特殊矩阵方阵单位矩阵逆矩阵转置矩阵正交矩阵逆转置矩阵矩阵运算理解性质:可结合,不可交原创 2020-10-21 16:52:58 · 550 阅读 · 0 评论 -
《Unity Shader入门精要》自学笔记(一)渲染流水线
学习目标了解现代GPU渲染流水线的实现流程,为后面理解shader的工作原理打好基础 渲染流水线概览一般会将整个渲染流水线分为如上图的三个阶段: 一、应用阶段 Application Stage (CPU)主要任务:准备场景数据,设置渲染状态,输出渲染图元,为下一阶段提供几何信息其他任务:粗粒度剔除(culling,剔除不可见物体)图元:渲染的基本图形,如顶点,线段,三角面输出:渲染图元渲染所需数据加载到显存中的流程:所有渲染所需数据:硬盘Hard Disk原创 2020-10-16 00:20:00 · 365 阅读 · 0 评论 -
【转】《Unity Shader入门精要》冯乐乐 随书彩图
绕了好多圈子终于还是沉下心来好好看这本书了…以下是原项目GitHub中分享的随书彩图学习的时候看到色彩丰富的东西会心情更好咯原项目GitHub链接前言 第2章 渲染流水线 图2.1 真实生活中的流水线 图2.2 渲染流水线中的三个概念阶段 图2.3 渲染所需的数据(两张纹理以及3个网格)从硬盘最终加载到显存中。在渲染时,GPU可以快速访问这些数据 图2.4 在转载 2020-10-15 17:53:05 · 1585 阅读 · 0 评论