Shader山下(十八)混合(Blend)命令

shader之——最常用的Blend shaderBlend混合一直是个很头痛的东西,组合的种类比较多,所以效果比较难记得,所以今天来总结一下1.Blend SrcAlpha OneMinusSrcAlpha  源颜色 x 源通道  +  目标颜色 x(1 - 源通道)            A * alpha + B*(1-alpha)这就是我们常用的 alpha blending ,效果比较接近源颜色,可以深一些2.Blend  阅读详情

混合(Blend)被用于创建透明的对象。渲染图像时,当所有的着色器执行完并且所有的纹理都被应用之后,像素点会被写入屏幕。如何将这些像素与已有图像进行组合?我们就需要使用混合命令来告诉GPU混合的方式。

混合命令有以下这些:

Blend Off 关闭混合(默认)
Blend SrcFactor DstFactor 片元产生的颜色乘以SrcFactor,加上屏幕上已有的颜色乘以DstFactor,
得到最终的颜色(写入颜色缓存)
Blend SrcFactor DstFactor, SrcFactorA DstFactorA 同上,只不过使用单独的因子SrcFactorA和DstFactorA来混合透明度通道
BlendOp BlendOperation 用其他的操作来取代加法混合。
BlendOp OpColor, OpAlpha 同上,只不过对于透明度通道使用不同的操作。

透明度混合 本文借鉴《Unity Shader入门精要》,算是对自己学习的总结,也希望分享下所学知识~~ 透明度混合: 可以实现半透明效果。 使用当前片元的透明度作为混合因子,与已经存储在颜色缓冲中的颜色值进行混合,得到新的颜色。 同时需要关闭深度写入,注意渲染顺序问题。 混合命令Blend 这个命令在设置的同时也开启了混合模式,开启之后才能使用混合混合是一个逐片元操作。 常用语义: Blend Off 关闭混合 Blend SrcFactor DstFactor 开启混合,设置混合因子 Blend Src 阅读详情

相关推荐

Shader Blend混合效果

1、Blend SrcAlpha OneMinusSrcAlpha 正常模式(透明度混合) 2、Blend OneMinusDstColor One 柔和相加(soft Additive) 3、Blend DstColor Zero 正片叠底 (Multiply)相乘 4、Blend DstColor SrcColor 两倍相乘 (2X Multiply) 5、 变暗Ble

雪球的博客 2万+

Unity Shader溶解 软硬边--基于Blend One One

之前做过两版溶解效果都是基于Blend SrcAlphaOneMinusSrcAlpha,众所周知这种模式是通过透明度来实现半透效果的,但是如果特效跟你说我现在要基于叠加(Blend One One)模式呢?代码会跟半透明模式有些许区别因为Blend One One是无法使用透明度那么它现在来了! Shader "Custom/Add" { Properties{ _Diffuse("Diffuse", 2D) = "white" {} _DiffuseColor("DiffuseCo..

1684

Shader山下(二十三)GrabPass与UsePass

通道(Pass)是子着色器(SubShader)的组成部分,每个Pass代表对象被渲染一次。 本文要介绍的是两种特殊的Pass:GrabPass和UsePass。 GrabPass用于获取当前屏幕的纹理(Texture)。 UsePass实际上不是Pass,而是调用其他的Pass的指令。

凯奥斯的注释 4943

Unity中Shader混合模式Blend

Unity中Shader混合模式Blend

楠溪泽岸的博客 5193

shader Blend混合模式讲解

内容说明: 1.混合blend)说明 2.在OpenGL中的使用 3. Unity中的使用 1. 什么是混合 混合是什么呢?混合就是把两种颜色混在一起。具体一点,就是把某一像素位置原来的颜色和将要画上去的颜色,通过某种方式混在一起,从而实现特殊的效果。 假设...

1万+

unity ShaderLab 基础之【深度测试DepthTest】ZWrite、ZTest详解

Z 深度 Z 就是深度轴,在一般3d软件中,x是横轴,y是纵轴,z是深度轴。离摄像机越近值越小,反之则越大。深度决定渲染的先后顺序。值大的像素会被值小的像素覆盖。 缓冲区 【 颜色缓冲区】:也叫帧缓冲区,场景中的物体的像素都要写入该缓冲区,然后再渲染到屏幕上显示 【深度缓冲区】:用于记录颜色缓冲区中每个像素的深度值,通过深度缓冲区,我们可以通过深度测试来确定像素的遮挡关系 【模版缓冲区】:与深度缓...

失业求捞! 6358

Shader学习的基础知识(八)透明度混合

上一篇中讲到在深度测试和深度写入后,色值会存放在颜色缓冲区中等待处,而我们这里就要来讲讲怎么拿它来做混合处理,从而实现真正的透明效果。由于透明混合需要关闭深度写入使用得我们要非常小心物体的渲染循序。 Blend Blend是Unity提供给我们的的混合模式命令,有以下几种形式 名称 意义 Blend Off 关闭混合 Blend SrcFactor DstFactor 开启混合...

盖子的博客 1577

Blend运算

Alpha Blending     --> Alpha混合    Blending即是控制透明,处于光栅化的最后阶段 给模型贴一个材质,在某个点处计算出的颜色成为源,而该点之前所累积的所有颜色值称为目标。 语法 :        Blend  off     -->   默认,不混合        Blend  SrcFactor  DstFactor

Young的博客 1567

【Unity Shader入门】6、Blend-混合

语法 Blend Off 关闭混合(这是默认值) Blend SrcFactor DstFactor 配置并启用混合。生成的颜色将乘以 SrcFactor。屏幕上的已有颜色乘以 DstFactor,然后将这两个值相加。 Blend SrcFactor DstFactor, SrcFactorA DstFactorA 同上,但使用不同系数来混合 Alpha 通道。 BlendOp Op 不将混合颜色相加,而是对它们执行不同的操作。 BlendOp OpColor, OpAl

LST329的博客 3230

UnityShader 遮挡部分渲染为半透明Shader

UnityShader 遮挡半透明Shader //渲染被遮挡部分的Pass pass{ blend SrcAlpha OneMinusSrcAlpha ZTest greater // 把被遮住的部分的深度值写入深度缓存,和平时情况正好相反 Zwrite ON //开启深度写入 frag{ fixed4 col=fixed4(1,0,0,0.5); } } //渲染没有被遮挡部分的Pass pass{ blend SrcAlpha OneMinusSrcAlpha ZTes

weixin_36961960的博客 837

Shader编写指南(二十):ShaderLab命令Blend 的原理与实战应用

Unity的ShaderLab中Blend命令是控制颜色混合的核心机制,通过配置源因子和目标因子实现透明、发光等效果。本文详解了Blend的数学原理(FinalColor = (SourceFactor × SourceColor) Operation (DestinationFactor × DestinationColor)),列举了常用混合因子(如SrcAlpha、OneMinusSrcAlpha)和操作(Add、Sub等),并提供了标准透明混合、相加混合、乘法混合等典型应用场景的代码示例。文章还讨论

分享知识,拥抱变化 1266

Shader 中的颜色混合模式(Blend Mode)

opengl 的颜色混合算法,类似ps

whl0071的专栏 4248

Unity Shader: Blend混合

混合不仅仅用于透明度混合,我们要开启混合,在Unity中设置的同时也进行了开启,但如果在其他图形API中是需要我们自己手动开启的。源颜色(Src,source color):由片元着色器产生的颜色值目标颜色(Dst,Destination color):从颜色缓冲中读取到的颜色值这里的颜色值都是包括RGBA四个通道。...

番茄猿的博客 2547

关于Unity ShaderBlend模式一点心得

后来我也逐渐理解,一个半透明的像素(1,0,0,0.2)其实就是和(0.2,0,0,1)是等效的,(单纯限定在UGUI),即看起来是一样的。你放一个半透明的放上去,其实也是和后边“表示这是透明的黑白格子”来混合,但实际这些黑白格子都没有,你只能显示一个alpha=1的颜色,同理对于UGUI来说, 像素(1,0,0,0.2)其实就是和(0.2,0,0,1)这两个点,都无法直接显示在最底层,下边一定还有个东西,比如天空盒,纯色背景,默认颜色,等,一定会和他进行混合,那么一混合,他俩就看起来一样了。

qq_27275225的博客 1391

Unity Shader快速上手总结Ⅲ

UnityShader快速上手

weixin_42565127的博客 468

【技术美术图形部分】关于前向渲染和延迟渲染

学习两种渲染路径,前向渲染和延迟渲染的原理、实现方法及优点与缺点,同时学习了Unity中如何去实现分别的Pass。

qq_41835314的博客 2903

Unity URP Shader 混合模式完全指南

摘要:混合模式(BlendMode)定义了像素组合方式,源自Photoshop。URP通过Blend指令实现多种效果:加法混合Blend One One)使颜色越叠越亮,适合发光效果;乘法混合Blend DstColor Zero)使颜色越叠越暗,适合阴影。还支持滤色、差值等模式,对应Photoshop的正片叠底、线性减淡等功能。使用时需注意渲染队列设置,半透明物体应设为"Transparent"。大多数情况仅需基础混合模式,特殊效果才需自定义Shader逻辑。

mxwin的博客 580

Shader命令——Blend 混合

Unity官网Blend API介绍  https://docs.unity3d.com/Manual/SL-Blend.html Blend透明渲染这块有点头疼。知道参数,还不是很明白计算公式。后续学会的话,来更新文章     SrcColor  要渲染得颜色  SrcAplha  要渲染的透明度   DstColor 已经再屏幕上显示的颜色 DstAlpha 已经再屏幕上显...

提莫队长 5276
上一篇: Lua语法小贴士(五)元表与元方法
下一篇: Shader山下(十九)标记Tag
凯奥斯
凯奥斯 领域专家: 游戏开发技术领域 领域专家: 游戏开发技术领域
博客等级 码龄16年 1297粉丝 157原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值