![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Shader
文章平均质量分 71
Go_Accepted
这个作者很懒,什么都没留下…
展开
-
渲染路径对比
主要用于处理影响该物体的一个高质量光源(平行光)、所有中(逐顶点处理)低质量(SH处理)光源 等。优点:适用于相对简单的场景和较少数量的光源,基本可以实现任何渲染效果。主要用于处理影响该物体的除平行光以外的其它高质量光源(每个高质量光源都会调用)利用G缓冲区中各个片元的相关信息进行真正的相关计算,最终将颜色写入颜色缓冲区。最后,在选择渲染路径时,我们应该根据项目的实际情况去进行考虑,比如。只会将光相关的数据填充到那些逐顶点相关的内置光源变量。基本思想就是所有的光都按照逐顶点的方式进行计算的。原创 2024-09-08 23:22:01 · 435 阅读 · 0 评论 -
延迟渲染路径
延迟渲染路径。理论上来说,即使场景中有成百上千个实时灯光,依然可以保持比较流畅的渲染帧率。延迟渲染的效率不依赖于场景的复杂度,而是和我们使用的屏幕空间的大小有关。这是因为延迟渲染路径中除了使用颜色缓冲和深度缓冲外,还会利用一个叫做G缓存的额外缓存区它会存储我们关心的表面(通常是离摄像机最近的表面)的其他信息,比如表面的法线、位置、材质属性等等。总之我们需要的信息都存储到缓冲区中,而这些缓冲区可以理解为一张张的2D图片,我们实际上是在这些图像空间中进行处理的。原创 2024-09-08 23:17:42 · 138 阅读 · 0 评论 -
顶点照明渲染路径
顶点照明渲染路径仅仅是前向渲染路径的一个子集,所有在顶点照明渲染路径中能实现的效果都可以在前向渲染路径中实现逐顶点顶点照明渲染路径只会将光相关的数据填充到那些逐顶点相关的内置光源变量不能像前向渲染路径中那样使用逐像素相关的内置变量。原创 2024-09-08 23:14:14 · 299 阅读 · 0 评论 -
前向渲染路径
球谐函数处理光照的方式是将光照场景投影到球谐函数的空间中,通过一组球谐系数来表示光照。内存换性能,细节表现效果差(不需要我们自己书写,Unity底层会帮助我们进行处理)原创 2024-09-08 22:25:39 · 923 阅读 · 0 评论 -
Shader 渲染路径
实际的游戏开发中,场景中的光源肯定是更多、更复杂的,如果只有一个平行光的处理,完全不能满足需求。处理更多的光源,我们就需要了解Unity底层是如何处理这些光源的。原创 2024-09-08 22:14:41 · 269 阅读 · 0 评论 -
透明度测试 & 透明度混合
在游戏开发中对象的某些部位完全透明而其他部位完全不透明,这种透明需求往往不需要半透明效果,相对比较极端,只有看得见和看不见之分比如树叶、草、栅栏等等。(即一张图除了主要物体有颜色,其他区域都为透明)原创 2024-08-26 23:24:23 · 243 阅读 · 0 评论 -
Shader 透明相关
深度写入默认是开启,需要通过渲染状态中的 ZWrite off 指令主动关闭深度写入当我们把它写在Pass渲染通道中时,它只会影响该Pass若我们把它写在SubShader语句块中,它将影响其中的所有Pass。原创 2024-08-26 23:02:27 · 634 阅读 · 0 评论 -
Shader 中的渲染顺序
有了深度测试和深度写入发挥作用让我们不需要关心不透明物体的渲染顺序比如一个物体A 挡住了 物体B,即使底层逻辑中 先渲染A,后渲染B,我们也不用担心 B的颜色会把A覆盖,因为在进行深度测试时,远处的B的深度值无法通过深度测试,因为它的深度会比已经写入深度缓冲中A的深度值大,重合处的片元会被丢弃,颜色自然就不会写入,最终重叠处渲染出来的会是A的颜色。原创 2024-08-26 22:30:21 · 667 阅读 · 0 评论 -
遮罩纹理的使用
遮罩纹理通常用于控制或限制某些效果的显示范围。它允许我们可以保护某些区域,使它们免于某些修改。)等相关的计算中 从而来让指定区域达到我们想要的效果我们以高光遮罩纹理举例,下面三个胶囊体的对比就是高光遮罩纹理起到的效果,利用高光遮罩纹理,我们可以控制模型上的各个区域,受到高光影响的强弱。原创 2024-08-22 00:07:13 · 297 阅读 · 0 评论 -
渐变纹理的使用
通过单张纹理和凹凸纹理相,我们知道图片中存储的数据不仅仅可以是颜色数据,还可以是高度、法线数据。理论上来说,图片中存储的数据我们可以自定义规则,我们可以往图片中存储任何满足我们需求的数据用于渲染。而渐变纹理就是用于控制漫反射光照结果的一种存储数据的方式它的主要作用是让游戏中的对象具有插画卡通风格。原创 2024-08-20 23:13:30 · 202 阅读 · 0 评论 -
法线纹理贴图计算(切线空间&世界空间)
在切线空间中计算,效率更高,因为可以在顶点着色器中就完成对光照、视角方向的矩阵变换,计算量相对较小。( 矩阵变换在顶点着色器中计算)在世界空间中计算,效率较低,由于需要对法线贴图进行采样,所以变换过程必须在片元着色器中实现,我们需要在片元着色器中对法线进行矩阵变换。( 矩阵变换在片元着色器中计算)在切线空间中计算,对全局效果的表现可能会不够准确,在处理一些列如镜面反射、环境映射效果时表现效果可能不够准确在世界空间中计算,对全局效果的表现更准确,可以更容易的应用于全局效果的计算。原创 2024-08-16 00:40:47 · 1089 阅读 · 0 评论 -
凹凸纹理概念
凹凸纹理是用来做什么的?通过高度纹理或法线纹理在不添加顶点(不增加面)的情况下让模型看起来同样充满细节(凹凸感)原理:计算“假”凹凸面时,使用“真”凹凸面的法线参与计算高度纹理贴图RGB都存储高度值,表现为一张灰度图,由于需要更多额外计算,我们一般不使用法线纹理贴图RGB分别存储法线的XYZ值,有相对模型空间(彩色)和切线空间(蓝色)两种法线贴图为什么要使用切线空间下的法线纹理贴图切线空间法线贴图虽然要产生额外计算,但是能让法线贴图更加的通用,灵活。原创 2024-08-14 22:17:29 · 997 阅读 · 0 评论 -
Blinn-Phong 光照模型 & 纹理结合
【代码】Blinn-Phong 光照模型。原创 2024-08-08 00:33:10 · 181 阅读 · 0 评论 -
Blinn-Phong 高光反射光照模型
Blinn - Phong式高光反射光照模型的理论是,它是对Phong式高光反射光照模型的改进,它不再使用反射向量计算镜面反射,而是。高光反射光照颜色 = 光源的颜色 * 材质高光反射颜色 * max(0, 标准化后顶点法线方向向量 · 标准化后半角向量方向向量)幂。的高光散射,因为它基于观察者和光源之间的夹角。,因为它考虑了表面微观凹凸之间的相互作用,使得光照在表面上更加均匀分布。,特别是在观察者和光源夹角较小时,可能表现为小而亮的点。,因为它的高光散射可能会使纹理和细节更加突出。原创 2024-08-07 23:18:56 · 309 阅读 · 0 评论 -
Phong 光照模型
当是Skybox和Color时,我们可以通过 UNITY_LIGHTMODEL_AMBIENT 获取到对应环境光颜色。,计算两个颜色混合时一般用颜色相乘,因为真实世界中多个颜色混在一起最终会变成黑色。,计算光照反射时一般用颜色相加,因为向白色靠拢能带来 更亮的感觉,复合光的表现。物体表面光照颜色 = 环境光颜色 + 漫反射光颜色 + 高光反射光颜色。当是Gradient(渐变)时,通过以下3个成员可以得到对应的环境光。环境光变量其实是可以在Unity中进行设置的。PS:两个颜色相乘和相加的区别。原创 2024-08-05 23:55:38 · 317 阅读 · 0 评论 -
Phong 高光反射模型
Phong式高光反射光照模型的理论是,基于光的反射行为和观察者的位置决定高光反射的表现效果认为高光反射的颜色和光源的反射光线以及观察者位置方向向量夹角的余弦成正比,并且通过对余弦值取n次幂来表示光泽度(或反光度)原创 2024-08-04 23:52:24 · 261 阅读 · 0 评论 -
兰伯特光照模型
漫反射(DIFFUSE REFLECTION)是光线撞击一个物体表面后以各个方向均匀地反射出去的过程在漫反射下,光线以无规律的方式散射,而不像镜面反射那样按照特定的角度反射。这种散射导致了物体表面看起来均匀而不闪烁的效果。原创 2024-08-04 18:41:08 · 279 阅读 · 0 评论