unity shader
文章平均质量分 68
详细介绍unity shader光照模型、纹理贴图及其实现原理
lml spq
unity 技术美术
展开
-
shader学习摘要(九)unity阴影
在前向渲染中,如果场景中最重要的平行光开启了阴影,unity就会为该光源计算它的阴影映射纹理(shadowmap)。这张阴影映射纹理本质上也是一张深度图,它记录了从该光源的位置出发、能看到的场景中距离它最近的表面位置(深度信息)。如果我们想要一个物体接收来自其他物体的阴影,就必须在shader中对阴影映射纹理(包括屏幕空间的阴影图)进行采样,把采样结果和最后的光照结果相乘来产生阴影效果。原创 2022-08-21 17:32:35 · 2048 阅读 · 0 评论 -
shader学习摘要(八)unity光源类型
1.平行光2.点光源3.聚光灯在前向渲染中我们在unity shader中访问它们的5个属性:位置、方向、颜色、强度以及衰减。#pragma multi_compile_fwdbase此声明可以让我们在使用光照衰减的变量中正确被赋值效果左边设置有2个点光源与1个平行光源,右边为效果左边设置有4个点光源与1个平行光源,右边为效果我们除了可以用纹理采样来减少计算衰减的复杂度(类似哈希表的原理),但是我们可以在代码中使用公式来计算光源的衰减:例如,下面的代码可以计算光源的线性衰减:float d原创 2022-08-19 16:56:02 · 1174 阅读 · 0 评论 -
shader学习摘要(七)——unity的渲染路径
unity的渲染路径实际上共有两种:前向渲染路径和延迟渲染路径。原创 2022-08-15 18:16:50 · 1432 阅读 · 0 评论 -
shader 学习摘要(六)透明度混合
透明度混合要先关闭深度写入,原理见流程图:GPU渲染流程:深度测试流程:透明度混合流程:需要进行透明度混合的片元必须通过透明度测试,但不想立即将颜色写入深度缓冲区,如果透明度混合时将遮挡区域的深度写入了缓冲区,那么更新颜色缓冲区时这部分颜色不会发生改变,会出现视觉上的“错误”。如果没有打开深度写入,那么所有片元的深度是相同的,进行混合时不会发生视觉“错误”。...原创 2022-08-09 11:06:46 · 493 阅读 · 0 评论 -
shader学习摘要(五)透明度测试
我们在unity中的渲染顺序是视野方向从后往前渲染,如果采取从前往后渲染,前方遮挡物如果为不透明物体,则视野中会出现不透明物体在透明物体前面的假象,如果物体为半透明物体,则会出现渲染颜色的混合结果完全反过来,同样会出现后方物体在前方的假象。透明度测试在AlphaTest队列内渲染即在所有不透明物体渲染之后进行统一渲染以更高效。我们在代码中的Tags标签中我们需要把Queue标签设置为AlphaTest。在unity中,索引号越小的越先渲染,括号内为数值。......原创 2022-08-06 09:46:19 · 574 阅读 · 0 评论 -
shader学习摘要(四)——凹凸映射(法线纹理)
在了解法线纹理前,我们先要了解高度纹理,也就是通过改变物体表面高度,高度纹理存储的(intensity)来表示模型表面的局部海拔高度法线纹理中存储表面法线的方向,法线分量范围在[-1,1],像素分量在[0,1],那么通常像素映射:法线映射:法线纹理制作中使用的空间坐标系:1.顶点的切线空间,z轴是法线,x轴是切线,y轴是法线与切线的叉积(副切线)2.模型本身的模型空间模型空间:1.实现简单,更加直观2.边界平滑切线空间:1.自由度高。2.可进行uv动画。3.可重用。4.可压缩。法线原创 2022-07-09 22:59:40 · 466 阅读 · 0 评论 -
shader学习摘要(四)——单张纹理
我们通常会使用一张纹理来代替物体的漫反射颜色。在本节中,我们将学习如何在unity shader中使用单张纹理来作为模拟的颜色单张纹理的使用方是在前面的光照模型的基础(这里使用的是Blinn-Phong光照模型)上,将模型原本的颜色乘以纹理的颜色的方法进行的纹理映射代码如下(示例):使用效果如图所示,这里使用的texture type是默认(Default),这是因为经过版本的更新,将texture纹理命名为了Default,实际上,unity默认使用的纹理都是单张纹理Wrap Mode属性中rep原创 2022-07-05 14:33:21 · 524 阅读 · 0 评论 -
shader基础学习摘要(三)高光反射
在6.2.4节中,我们给出了基本光照模型中高光反射部分的计算公式高光反射求的夹角是模型反射光线与视线的夹角,因为视线光线距离反射光线越近,光照强度越高,与漫反射不同,漫反射是求法线与光源方向的夹角,与视野方向无关,所以即使移动镜头摄像机也不会影响表面光照,而高光反射则与视野方向紧密相关,高光反射时摄像机并不能完全收反射光,只能看到部分光照反射,数值与材质光泽度有关...原创 2022-06-19 23:53:14 · 590 阅读 · 0 评论 -
shader基础学习摘要(二) 兰伯特光照模型
该节介绍了兰伯特光照模型的三种算法,并进行了对比,引用自shader入门精要原创 2022-06-18 21:38:44 · 746 阅读 · 0 评论 -
shader基础学习摘要(一)
我通过冯乐乐老师的书籍,为该代码进行了进一步的解释和理解,以作为学习的摘要和后续改进shader的参考。原创 2022-06-16 00:38:35 · 126 阅读 · 0 评论