
Shader
文章平均质量分 72
Shader学习
噗噗夹的TA之旅
这个作者很懒,什么都没留下…
展开
-
Unity Shader 学习18:Shader书写基本功整理
1. Drawer[HideInInspector]:面板上隐藏[NoScaleOffset]:隐藏该纹理贴图的TillingOffset[Normal]:检查该纹理是否设为法线贴图[HDR]:将颜色类型设为高动态范围颜色(摄像机也要开启HDR才有效果)[PowerSlider(value)]:滑动条 - 对于有些参数0-1的部分很敏感,而再大没那么敏感的时候,可以用这个属性来调整滑动的手感[Header(value)]:标题[Space(value)]:空行的高度[Toggle]:开关,可原创 2025-03-27 20:55:40 · 261 阅读 · 0 评论 -
Unity Shader 学习17:合批渲染
合批主要是针对这三个概念进行优化减少:① SetPass Call:一次渲染状态切换,也就是每次切换 材质/Pass 时,就会触发一次SetPass Call② Draw Call:cpu 调用一次 gpu 绘制函数③ Batch:表示一组可以一起交给gpu的Draw Call优化结果可以在 Game窗口-Stats 或 FrameDebugger 中查看。原创 2025-03-26 00:36:21 · 1237 阅读 · 0 评论 -
Unity Shader 学习16:全局光照 概念理解
- 全局光照 = 直接光 + 间接光,在没有开启GI的情况下是不计算间接光的(如果放了光照探针 倒是可以模拟间接光 <光照探针只影响动态物体>);- 处理对象:静态物体(static) 、 非静态(动态)物体;- 计算方式分为:实时计算 、 预计算。原创 2025-03-19 23:59:12 · 439 阅读 · 0 评论 -
Unity Shader 学习15:可交互式雪地流程
本质是 利用顶点变换实现的:通过一个俯视整个场地的正交摄像机,根据绑定在移动物体身上的粒子系统,来获取物体移动过的位置,记录到一张RenderTexture上作为轨迹图,再通过这张图来对雪地做顶点变换。原创 2025-03-06 19:59:01 · 492 阅读 · 0 评论 -
Unity Shader 学习14:模版测试 与 深度测试
核心:当前模版缓冲区中的值和 准备渲染的物体的模版参考值(我们设的)的比较默认情况下 只有通过比较才会渲染像素,否则抛弃。1. 概念① 比较这个比较可以用 大于等于小于不等于这些方式,或者直接了当地不管三七二十一,设为 永远通过 或者 永远不通过。② 更新而模板测试结束时,可以分别选择在 通过或者没通过 的情况下,对当前缓冲区的值做不同的更新操作,比如默认情况就是,在通过时 替换 (replace) 缓冲区的值为物体的参考值。原创 2025-02-27 16:46:14 · 647 阅读 · 0 评论 -
Unity Shader 学习13:屏幕后处理 - 使用高斯模糊的Bloom辉光效果
luminaceThreshold:模糊阈值,它能决定提取亮部的区域范围iterations:迭代次数,可以对图片进行多次的模糊blurSpread:每次迭代模糊后,都要对模糊范围 (BlurSize) 进行扩大,其控制每次扩大的速度blurSize:就是上述的blurSize,其与blurSpread的关系为 1.0f + 迭代次数i * blurSpeed ,加一是为了保证值最小能为1downSample:对原图进行降采样,也就是降低图片的像素,这样既能优化性能,又能获得更平滑的模糊效果原创 2025-02-24 12:50:37 · 925 阅读 · 0 评论 -
Unity Shader 学习12:多盏平行光+点光源 ( 逐像素 ) 前向渲染 (Built-In)
分析:在前向渲染中,对于逐像素光源来说,①ForwardBase中只计算平行光,其他的光都是在FowardAdd中计算的,所以为了能够渲染出其他的光照,需要在第二个Pass中再来一遍光照计算。而有所区别的操作是,②FowardAdd的Pass要能够针对不同类型的光源做出不同的计算方法,因为在这个pass中要处理的就不仅仅是一个平行光了,各种灯光都有可能。虽然所有光在本质上照亮的原理都是一样的,但由于他们的形式。原创 2025-02-17 20:09:52 · 1168 阅读 · 0 评论 -
Unity Shader 学习11: 卡渲基础 - 描边 + 着色
3. 阴影:产生阴影的Pass:ShadowCaster,再在Unlit中接收阴影。6. SRP合批优化:render object过滤绘制外轮廓的pass。1. 兰伯特 + rampTexture ——分色。2. 高光 + 边缘光(菲涅尔)二、着色Pass:Unlit。,只保留背面,得到外轮廓。原创 2025-02-15 14:01:09 · 399 阅读 · 0 评论 -
Unity Shader学习10: 溶解消亡
做出剪切效果,并利用Time的正弦输出做出动态的消融效果。对基准加一个小小的偏移量,多出来的宽度作为消融边缘。对基准加一个小小的偏移量,多出来的宽度作为消融边缘。原创 2025-02-08 14:09:13 · 142 阅读 · 0 评论 -
Unity Shader学习9: 基础水体渲染
1. 静态水体图像 通过Voronoi节点来制作涟漪的图像 2. 添加涟漪运动 ① 通过RadialShear节点给图像再添加一点不规则的扭曲 ② 利用Time做涟漪的动态效果原创 2025-02-07 16:40:43 · 240 阅读 · 0 评论 -
Unity Shader学习8:缩放星星特效 - ShaderForge + ParticleSystem
这里借助的原理是粒子系统的custom data1(vector)的数据可以对应shader中的uv1,所以可以将原shader中控制缩放的滑条 改为uv1(利用其中值为0-1的一个通道即可),通过在粒子系统中控制这个自定义数据的z值 来控制控制u通道的值 进而控制星星的缩放。原创 2024-12-16 23:02:36 · 394 阅读 · 0 评论 -
Unity Shader学习7:环境光镜面反射 - Fresnel、MatCap、Cubemap
菲涅尔效应之前有介绍过,与的夹角越小,反射效果弱,能直接看到水里;夹角越大,反射越强,看不到水底。球体边缘值为0,背后全为负数,正面看不到也不需要特意处理;;。原创 2024-10-17 11:16:36 · 978 阅读 · 0 评论 -
Unity Shader学习6:环境光漫反射 - 3 Col Ambient
3 Col Ambient模型还是比较简单的,三色的环境漫反射,分别对应了上方、下方、侧方的颜色。所以我们要做的 首先是获取到模型的这三个方向数据,然后将这三个方向的数据分别乘以我们想要给到的环境光颜色即可。原创 2024-10-17 09:13:16 · 155 阅读 · 0 评论 -
Unity Shader学习5:光源镜面反射 - Phong / Blin Phong - 巧克力
1. 冯模型非常显而易见,当视角方向和光的反射方向越重叠,那么反射出来的能让眼睛看到的光就越强。2. 布林冯稍微绕个弯子,当 半角方向(入射光与视角方向的一半)和物体表面法线方向越重叠,那么反射出来的能让眼睛看到的光就越强。原创 2024-09-13 19:46:14 · 346 阅读 · 0 评论 -
Unity Shader学习4:Halftone - shaderforge
直观的描述就是的画,用“点”的方式来完成画面。当印刷设备通常只能以有限数量的墨水颜色时,halftone通过调整图像中不同区域的点的大小和密度,来创造出一种灰度或颜色过渡的效果。原创 2024-08-28 19:31:46 · 957 阅读 · 0 评论 -
Unity Shader 学习3:玉石效果
1. 光线的偏移 偏移效果可以用原本的光向量加(Add)上另一个向量的方法实现,这里的另一个向量用的是Properties中的Vector4节点(Properties中的节点是后续可以出现在材质面板上自行修改调整的),对结果进行归一化(Normalize),然后和之前一样 与物体表面法向量进行点乘。 到这里为止,效果是和原本的兰伯特一模一样的,区别就在于可以在材质面板上通过修改我们刚刚添加的vector4数值,能够任意做出光线的位置偏移变化。原创 2024-08-08 19:41:59 · 1688 阅读 · 0 评论 -
Unity Shader学习2:光源漫反射 - 兰伯特光照模型 - ShaderForge
所以我们可以想象一下,现在有一个物体和一个光源,该物体上的每个法向量(nDir),与光线向量相反的向量(lDir)进行点积,(看图),将结果进行归一化 该模型上的每个点就都能得到一个数值,并且都在范围[ -1 , 1 ] 之间。[ 0 , 1]对应明度关系中的黑到白,对于原创 2024-08-03 19:14:27 · 1846 阅读 · 0 评论 -
Unity Shader学习1 预备知识:渲染管线
一、GPU是什么1. GPU与CPUGPU是显卡上的一块芯片,就像CPU是主板上的一块芯片。2. CPU可以理解为颜料一个点一个点地先后发射,连接在一起,给人呈现以笑脸的图像,一步步迭代计算,花费时间较长。3.GPU多管颜料一瞬间同时发射,直接绘制成一幅完整的画像,大量高并行计算,花费时间是在一瞬间。比起用三五个强大的微处理器(或者说“管道”)来处理这些信息,用一大堆小的微处理器来并行计算,快得多。这就是图形处理器(GPU : Graphic Processor Unit)的来原创 2024-07-26 13:59:43 · 1413 阅读 · 0 评论