Unity3D Shader官方教程翻译(十一)----Shader语法:Pass的Blending(混合)

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

ShaderLab syntax: Blending 混合

Blending is used to make transparent objects.

混合是用来制作透明物体的。

点击浏览下一页

When graphics are rendered, after all shaders have executed and all textures have been applied, the pixels are written to the screen. How they are combined with what is already there is controlled by the Blend command.

在所有着色器执行完毕,所有纹理都被应用,所有像素准备被呈现到屏幕之后, 使用Blend命令来操作这些像素进行混合。

指导:

Blend 混合是将源色和目标色以某种方式混合生成特效的技术。混合常用来绘制透明或半透明的物体。在混合中起关键作用的α值实际上是将源色和目标色按给定比率进行混合,以达到不同程度的透明。α值为0则完全透明,α值为1则完全不透明。混合操作只能在RGBA模式下进行,颜色索引模式下无法指定α值。物体的绘制顺序会影响到OpenGL的混合处理。

参考文章:http://hi.baidu.com/ÖÙÁÁÁÁ/blog/item/5fc565445e19714a500ffebb.html

Syntax 语法

Blend Off

Turn off blending
关闭混合
 
Blend SrcFactor DstFactor 混合 起始因子
Configure & enable blending. The generated color is multiplied by the  SrcFactor. The color already on screen is multiplied by  DstFactor and the two are added together.
配置并开启混合。计算产生的颜色和srcFactore相乘。已经在屏幕上的颜色和dstFactor相乘,然后2个颜色相加。
 
Blend SrcFactor DstFactor, SrcFactorA DstFactorA
Same as above, but use different factors for blending the alpha channel.
和上面相同,但是有些因子不同。 SrcFactorA DstFactorA 这些因子使用alpha通道进行混合。 
 
BlendOp Min | Max | Sub | RevSub
Instead of adding blended colors together, do a different operation on them.
不是将加入的颜色混合在一起,而是对他们做不同的操作。
 

Properties  属性

All following properties are valid for both SrcFactor & DstFactor. Source refers to the calculated color, Destination is the color already on the screen.

下面列出的所有属性是对SrcFactor & DstFactor有效。Source 是指计算出的颜色,Destination 指的是已经的屏幕上的颜色。

One

The value of one - use this to let either the source or the destination color come through fully.
值为1,使用此设置来让源或是目标颜色完全的通过。

 

Zero

The value zero - use this to remove either the source or the destination values.
值为0,使用此设置来删除源或目标值。

 

SrcColor

The value of this stage is multiplied by the source color value.
此阶段的值是和源颜色的值相乘。

 

SrcAlpha

The value of this stage is multiplied by the source alpha value.
此阶段的值是和源alpha值相乘。

 

DstColor

The value of this stage is multiplied by frame buffer source color value.
此阶段的值是和源帧缓冲中源颜色的值相乘。

 

DstAlpha

The value of this stage is multiplied by frame buffer source alpha value.
此阶段的值是和源帧缓冲中源Alpha的值相乘。

 

OneMinusSrcColor

The value of this stage is multiplied by (1 - source color).
此阶段的值是和(1-源颜色)的值相乘。

 

OneMinusSrcAlpha

The value of this stage is multiplied by (1 - source alpha).
此阶段的值是和(1-源Alpha)的值相乘。

 

OneMinusDstColor

The value of this stage is multiplied by (1 - destination color).
此阶段的值是和(1-目标颜色)的值相乘。

 

OneMinusDstAlpha

The value of this stage is multiplied by (1 - destination alpha).
此阶段的值是和(1-目标Alpha)的值相乘。

 

Details 详情

Below are the most common blend types:

下列是最经常使用的混合类型

Blend SrcAlpha OneMinusSrcAlpha     // Alpha blending alpha混合
Blend One One                       // Additive 相加混合
Blend One OneMinusDstColor          // Soft Additive 柔和相加混合
Blend DstColor Zero                 // Multiplicative 相乘混合
Blend DstColor SrcColor             // 2x Multiplicative 2倍相乘混合

Example 例子

Here is a small example shader that adds a texture to whatever is on the screen already:

这里是1个着色器的小例子:将一个纹理添加到屏幕上,无论它是否已经在屏幕上。

Shader "Simple Additive" {
    Properties {
        _MainTex ("Texture to blend", 2D) = "black" {}
    }
    SubShader {
        Tags { "Queue" = "Transparent" }
        Pass {
            Blend One One
            SetTexture [_MainTex] { combine texture }
        }
    }
}

And a more complex one, Glass. This is a two-pass shader:

1个更复杂的着色器:玻璃。它含有2个pass

  1. The first pass renders a lit, alpha-blended texture on to the screen. The alpha channel decides the transparency.
    第一个pass渲染光照和将纹理以alpha混合的方式渲染到屏幕上。Alpha通道决定其透明度。

    The second pass renders a reflection cubemap on top of the alpha-blended window, using additive transparency.

   第二个pass渲染一个反射立方体贴图在alpha混合得视窗的顶部,使用附加的透明度。

Shader "Glass" {
    Properties {
        _Color ("Main Color", Color) = (1,1,1,1)
        _MainTex ("Base (RGB) Transparency (A)", 2D) = "white" {}
        _Reflections ("Base (RGB) Gloss (A)", Cube) = "skybox" { TexGen CubeReflect }
    }
    SubShader {
        Tags { "Queue" = "Transparent" }
        Pass {
            Blend SrcAlpha OneMinusSrcAlpha
            Material {
                Diffuse [_Color]
            }
            Lighting On
            SetTexture [_MainTex] {
                combine texture * primary double, texture * primary
            }
        }
        Pass {
            Blend One One
            Material {
                Diffuse [_Color]
            }
            Lighting On
            SetTexture [_Reflections] {
                combine texture
                Matrix [_Reflection]
            }
        }
    }
} 
 
由 www.J2meGame.com原创,转载请说明。
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 阅读详情

相关推荐

Quest 3开发第一步:搞定Meta账号登录和Oculus软件连不上设备的那些坑(2024实测)

本文详细介绍了Quest 3开发初期的关键步骤,包括Meta账号注册、Oculus软件安装与设备连接等常见问题的解决方案。针对国内开发者遇到的邮箱限制、验证码接收等难题,提供了实用的应对策略,并分享了开发环境配置和常见问题排查技巧,帮助开发者快速搭建Quest 3开发环境。

weixin_30333885的博客 501

Unity3d Shader(三) Pass(Texturing)混合纹理(同时显示2张图),自发光

After the basic vertex lighting has been calculated, textures are applied. In ShaderLab this is done using SetTexture command. 纹理在基本的顶点光照被计算后被应用。在着色器中通过SetTexture 命令来完成。 SetTexture commands have

FindSuningShine的专栏 2582

光模块组成

时钟恢复电路(Clock Data Recovery,简称CDR)是光模块中的关键组成部分,CDR的作用主要是从接收到的信号中提取出数据序列,并且恢复出与数据序列相对应的时钟时序信号,从而还原接收到的具体信息。因为光信号传输至一定距离的时候,通常是长距离传输,其波形会出现一定程度的失真,接收端接收到的信号是一个个长短不一的脉冲信号,这个时候在接收端,我们就无法得到我们需要的数据。所以,这个时候就需要有信号的再生,信号的再生功能为再放大、再整形和再定时,其中的再定时指的就是CDR时钟数据恢复。

han_better的博客 5728

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

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

LST329的博客 3248

期权定价模型系列[11]三叉树期权定价[trinomial model ]

三叉树期权定价方法简介

xiaowu1997的博客 1847

手把手教你用Proteus仿真51单片机抢答器:倒计时+蜂鸣器报警完整项目

本文详细介绍了使用Proteus软件仿真51单片机智能抢答器的完整项目流程。通过系统架构设计、核心元件选型(如74LS30用于按键中断编码),结合状态机编程,实现了带可调倒计时、数码管显示和蜂鸣器报警的八路抢答器功能。项目涵盖了从原理图绘制到代码调试的全过程,是学习嵌入式系统开发的绝佳实践。

tcp8optimizer的博客 265

Unity中Shader的混合模式Blend

Unity中Shader的混合模式Blend。

楠溪泽岸的博客 5217

基于人脸识别的课堂考勤系统 tkinter+openpyxl+face_recognition

基于face_recognition库实现人脸考勤系统功能。利用Python的tkinter模块来设计考勤系统的图形化界面,此外结合openpyxl模块,实现将学生的信息和考勤打卡数据保存到表格中,方便查看和调用。该系统具备“刷脸打卡”、“新学生注册”等功能。............

lyx4949的博客 6969

Unity内置Shader解读8——Particles/Additive

1.Shader在什么情况下使用 Particles/Additive(粒子/叠加)到了粒子系列了,之所以先写前面几篇是因为本shader中都用到了,篇幅有限,因此分了几篇来写。本文注释中有关INSTANCE_ID和软粒子的深度计算方法都没有搞明白,不懂的部分只能后面再深入研究了不能阻挡学习的脚步。 2.Shader的价值(用的多不多),Shader的难度 Additive应该是用的非常多的,难度...

eevee_1的博客 5837

Python+ArcGIS实战:5步搞定土壤类型预测(附随机森林模型配置技巧)

本文详细介绍了如何结合Python与ArcGIS,利用随机森林模型进行土壤类型预测。通过5个核心步骤——数据预处理、样本创建、模型构建、空间预测与精度验证,构建了一套自动化、高精度的空间预测工作流,并提供了关键的模型配置与调参技巧,助力GIS开发者高效完成土壤制图任务。

weixin_29227585的博客 396

【NVIDIA-GB200-1】国内第一份生产环境实战安装配置教程,配置安装脚本,nvidia gb200配置教程-复制即用;gb200驱动安装

GB200 的高性能通信依赖。

jundao1997的专栏 707

Unity3D Shader官方教程翻译(四)

Unity3D Shader官方教程翻译(四) 1、Shader语法:Pass的雾化处理 雾化混合产生像素的颜色是依据于常量颜色(这个常量颜色是基于摄像头的距离的)。雾化不会改变像素的alpha值,仅仅是改变它的rgb分量。 指导:雾化是一种模拟自然界中雾气对场景物体视觉效果产生影响的图形绘制技术。此技术从视点到物体逐渐将物体的绘制颜色淡化,直至背景色。通过雾化处理可较好

胡胜同学 1175

SKUA-GOCAD入门教程-第八节 线的创建与编辑7和8

本文介绍了曲线编辑操作的主要功能,包括曲线部分和区域的管理操作。在曲线部分操作方面,详细说明了如何合并、删除、移动和过滤曲线部分,支持精确或带公差的合并方式。在曲线区域操作方面,阐述了保留/删除区域点、移动区域点、保留/删除区域线段等操作。此外还介绍了节点连接功能,包括新增/删除连接、端点连接以及为曲线赋予地质特征的方法。

江洋大葱的博客 390

物理渲染(PBR)详解

PBR(Physically Based Rendering,物理渲染)是一种基于物理原理的渲染技术,旨在模拟真实世界中光照和材质的行为。PBR渲染方程是PBR渲染技术的核心,描述了光线在与物体表面相互作用时的行为。PBR渲染方程通常分为表面反射(Specular)和表面漫反射(Diffuse)两部分。Lo​pωo​∫Ω​fr​pωi​ωo​Li​pωi​ωi​⋅ndωi​Lo​pωo​表示观察点p上沿观察方向ω。

yasin的博客 3690

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

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

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

whl0071的专栏 4271

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Unity图形学之Blend指令

BlendOp : 指定 将要渲染像素 和 gbuffer 里面的像素 逻辑运算。1.渲染流程:Blend 决定了要渲染的像素和Gbuffer里像素到底怎么取舍。当这个指令 存在 ,Blend 这个指令 就会被忽略。

一个人的夏天 631

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

unity, 最简单的additive shader

Shader"Custom/myAdditive"{Properties{_MainTex("Albedo(RGB)",2D)="white"{}}SubShader{Tags{"QUEUE"="Transparent""IGNOREPROJECTOR"="true""RenderType"=...

weixin_30558305的博客 598

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

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

盖子的博客 1583

Unity 之 Shader Blend 混合操作 - 八

Blend 混合操作混合操作作用于在所有计算已经结束, 已经决定将当前计算结果输出到帧缓冲中是,如何输出到帧缓冲中,是直接替换原来的,还是一加一的混合。 混合操作有两个对象,源和目标 Blend混合总共有十种可选类型 One 值为1,使用此因子来让帧缓冲区源颜色或是目标颜色完全的通过。 zero 值为0,使用此因子来删除帧缓冲区源颜色或目标颜色的值。 SrcColor 使用此因子为将当前值乘以帧

lq 9602

关于Unity Shader里Blend模式一点心得

后来我也逐渐理解,一个半透明的像素(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的博客 1398

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

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

失业求捞! 6369

shader Blend混合模式讲解

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

1万+
上一篇: Unity3D Shader官方教程翻译(十)----Shader语法:Pass的Alpha测试
下一篇: Unity3D Shader官方教程翻译(十二)----Shader语法:Pass的标记
coding_most
博客等级 码龄15年 13粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值