Unity3D Shader官方教程翻译(十五)----Shader语法 UsePass

Unity运行时开关Shader Pass的一种方法 做个记录 SetShaderPassEnabled 这个函数作用与名称相当不符。。。 材质球调用开关LightMode的tag可以达到开关当前pass的作用,尤其是在需要多个pass都渲染的情况! Tags{ "LightMode" = "ForwardBase" } material.SetShaderPassEnabled("ForwardBase", false); 下面是官方文档中SetShaderPassEnabled 函数说明 Enables or disables a .. 阅读详情

ShaderLab syntax: UsePass

The UsePass command uses named passes from another shader.

UsePass命令可以调用在另外1个Shader中已经被命名的passes 。

Syntax 语法

UsePass "Shader/Name"

Inserts all passes with a given name from a given shader.  Shader/Name contains the name of the shader and the name of the pass, separated by a slash character.
插入指定Shader中的已经被命名的pass.    Shader/Name 包含了Shader的名字和其中pass的名字,它们用斜杠来分割。
 

Details 详情

Some of the shaders could reuse existing passes from other shaders, reducing code duplication. For example, in most pixel lit shaders the ambient or vertex lighting passes are the same as in the corresponding VertexLit shaders. The UsePass command does just that - it includes a given pass from another shader. As an example the following command uses the pass with the name "BASE" from the builtin Specular shader:

有一些Shader可以重新使用一些在其他Shader中已经存在的pass, 这样做可以减少代码重复。举例:在大多数像素光照的Shader中,环境光照和顶点光照的pass和相对应的顶点光照Shader中是一样的。这时候UsePass 命令就起作用了。比如在下面的例子中使用了这个命令,从内置的Specular  Shader中调用了一个名为"Base"的光照。

    UsePass "Specular/BASE"

In order for UsePass to work, a name must be given to the pass one wishes to use. The Name command inside the pass gives it a name:

为了能让UsePass 命令工作,必须要给pass起一个你所期望的名字。在pass中的Name命令可以给pass取个名字:

 

    Name "MyPassName"


 

Note that internally all pass names are uppercased, so UsePass must refer to the name in uppercase.

请注意,因为所有pass的名字都必须以大写字母开头,所以UsePass 命令引用的pass名必须是大写的。 

 

由 www.J2meGame.com原创,转载请说明。
Shader山下(二十三)GrabPass与UsePass 通道(Pass)是子着色器(SubShader)的组成部分,每个Pass代表对象被渲染一次。 本文要介绍的是两种特殊的Pass:GrabPass和UsePass。 GrabPass用于获取当前屏幕的纹理(Texture)。 UsePass实际上不是Pass,而是调用其他的Pass的指令。 阅读详情

相关推荐

Vivado静态时序分析学习笔记(1)

静态时序分析分为片内时序分析(寄存器与寄存器之间的时序关系)和片外时序分析(IO时序分析)。(1)建立时间 setup time在时钟事件(上升沿/下降沿)发生之前数据信号应保持稳定的时间。把实际电路抽象成前级D触发器+组合逻辑+后级D触发器。

Fantaasky的博客 4379

UnityShader UsePass介绍

UnityShader UsePass的使用

YanisWu的博客 1092

COMSOL报错调试总结(不定期更新)

COMSOL报错调试总结1. 可定位错误1.1 除零错误1.2 未定义变量值1.3 边界条件/材料属性等缺失2. 难定位错误2.1. 装配期间内存不足 官方给的案例总是非常完美,运行流畅,结果完美。但是自己做模型时候就总是报错,而且不像自己coding的程序那样可以明确定位哪里出了bug。这里把我碰到的一些报错问题以及调试方法记录下来~ 部分来源于以下参考来源: http://wap.sciencenet.cn/blog-1467490-1118453.html?mobile=1 1. 可定位错误 以下错误

jessica0307的博客 8万+

UnityShader学习教程之<UsePass和#include>

昨天,有位同学在群里面问了shader如何继承,一开始我想是不能和c#中一样的继承,但是我发现还是有方法的,这里我来探讨一下这两个方法。 方法一: 使用UsePass: 我们需要写出两个shader文件,shader中肯定会有子着色器和pass通道,这是众所周知的,这里我先列举两个简单的shader代码: shader1:被引用的shaderShader "Unlit/myshader1"

xiongwen_li的博客 7109

Win10环境借助DockerDesktop部署Open web UI集成DeepSeek

Win10环境借助DockerDesktop部署Open web UI集成DeepSeek,并借助DuckDuckGo实现联网查询

虎鲸不是鱼 1705

71、机器人与机器人控制器技术解析

本文深入解析了机器人控制器的通信接口、传感器数据采集与处理以及抓手技术三大核心技术。详细介绍了数字I/O、串行接口、总线系统和以太网等通信方式,探讨了各类传感器在焊接、装配、质量检测等场景中的应用,并阐述了手眼校准与路径校正的关键方法。同时,文章还分析了不同类型抓手的特点及选型设计原则,展示了机器人在现代工业自动化中的高效性与灵活性。通过实际编程示例与流程图,全面呈现了机器人系统的集成与控制逻辑。

gin88的博客 278

(二十九)unity shader之——————着色器的组织和复用(cginc文件复用代码、宏定义和shader变体、自定义材质编辑器)

一、cginc文件 1.1 unity的UnityCG.cginc文件 我们经常使用#include 指令包含UnityCG.cginc。这个文件中包含了unity预定义的大量结构和函数,通过#include指令可以复用这些结构和函数,而不必每次都重新定义它们。 1.2定义自己的cginc文件 我们可以定义自己的cginc文件,然后用#include指令包含该文件,实现着色器代码的复用。虽...

cgy56191948的博客 2518

【系统架构设计师-2024下半年真题】案例分析-参考答案及部分详解(完整回忆版)

根据h中描述,为了保证高可靠性,有ping/echo,心跳机制两种策略,从资源利用率问为啥心跳更好。王工觉得使用ping/echo好,但李工觉得从系统资源利用率来说,使用心跳机制好 1、针对质量属性可以使用ping/echo和心跳模式实现,分别简述ping/echo和心跳的实现原理。 2、张工认为心跳策略比较适合,简述为什么?

数据知道的博客 1万+

U3D Draw call batching

To draw a GameObject on the screen, the engine has to issue a draw call to the graphics API (such as OpenGL or Direct3D). Draw calls are often resource-intensive, with the graphics API doing significa

痞子龙3D编程 1356

S7-200SMART 的运动控制(一)向导配置具体步骤(图文)

S7-200SMART 的运动控制(一)向导配置具体步骤(图文)

Robot_PLC_HMI_Automation 3851

视觉-语言模型:BLIP与Flamingo如何理解图文?

视觉-语言模型:BLIP与Flamingo如何理解图文? ,人工智能,计算机视觉,大模型,AI,在当今人工智能飞速发展的时代,视觉 - 语言模型作为多模态领域的关键技术,正逐渐改变着我们与数字世界交互的方式。它们致力于打破图像与文本之间的模态壁垒,使计算机能够像人类一样,综合理解和处理视觉与语言信息。其中,BLIP 和 Flamingo 两款模型脱颖而出,以独特的架构和创新的训练方法,在图像描述生成、视觉问答、图文检索等任务中展现出卓越的性能。本文将深入剖析 BLIP 与 Flamingo 模型的工作原理。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 4万+

Unity3d Shader开发(四)UsePass ,GrabPass ,SubShader Tags

(一)UsePass 命令 使用 来自另一个着色器的命名通道。 Syntax 语法 UsePass"Shader/Name"插入所有来自给定着色器中的给定名字的通道。Shader/Name包含了通过斜杠字符分割的着色器的名字和通道的名字某些着色器重用其他着色器中已存在的通道,减少重复的代码。例如,在许多像素光照着色器中,阴影色或顶点光照通道在在相应的顶点光照着色器中是相同...

weixin_30883311的博客 299

Unity之如何实现TTS文本转语音(真人发音)

微软Azure TTS 文本转语音 服务 将文本转换为逼真的语音的语音服务功能 支持个各国语言,各种中文各种方言,支持不同音色男音女音 支持离线和在线版本

TxNet 5484

Unity着色器CGINCLUDE与pass复用

这里总结一下在unity shader中如何实现代码的复用,如何自己造轮子。 1.CGINCLUDE和ENDCG代码块 unity会把 CGINCLUDE 和 ENDCG 之间的代码插入到每一个pass中,已达到声明一遍,多次使用的目的。例如,可以在 CGINCLUDE 和 ENDCG 之间 定义多个 顶点和片段方法,在pass里只要写明 #pragma vertex 顶点方法名 #pragm...

mozhi 1698

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

unity——shader基础知识点 学习笔记【个人复习向/侵删/有不足之处欢迎斧正】

混合方式决定了透明半透明颜色的正确表现,以及一些特殊颜色效果的表现。顶点着色器回调函数中计算,逐顶点光照会在每个物体的顶点上进行光照计算,这意味着光照计算只在物体的顶点位置上执行,而在顶点之间的内部区域使用插值来获得颜色信息。表面着色器(Surface Shader) 是Unity自己创造的一 种着色器代码类型,本质是对顶点/片元着色器的一层封装,需要的代码量很少。光照模型指的是用于模拟光照效果的一组数学公式和算法,用于确定在3D场景中的模型表面应该如何对光进行反射和散射,从而实现视觉上逼真的照明效果(

m0_73952999的博客 1687

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

UnityShader学习(二)标签和状态,以及pass

标签 —在每个pass里面也可以设置标签,但是此标签与pass里面的不一样(我也不知道那儿不一样) 标签一般用键值对表示,键和值都是字符串类型得 写法:Tas{“Key”=“value” “Key”=“value” } 标签类别: Queue ->设置渲染顺序,可以通过此标签让所有透明物体在不透明物体之后被渲染 数值越小越优先渲染 BackGround 1000 -&g...

qq_30058057的博客 679

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Unity+Shader入门精要(笔记二)基础Shader结构

材质和Unity Shader 常见流程: (1)创建一个材质 (2)创建一个Unity Shader,并把它赋给上一步创建的材质 (3)把材质赋给要渲染的对象 (4)在材质面板中调整Unity Shader的属性 ShaderLab:Unity提供的编写Unity Shader的一种说明性语言 基础结构 Shader "ShaderName"{ Propertie...

冰镇油条 284

UnityShader常见指令、标签函数

1.Properties块中的特殊命令 4.三、Pass块中的指令 5.Pass块中的Tag标签 6.#prama指令 7.Unity内置函数 8.Unity内置变量 9.语义 10.宏定义 1.Properties块中的特殊命令 命令 参数 说明 [Header(test)] 括号内即为头标题的显示文字 不要加引号,不支持中文 [NoScaleOffset] 隐藏贴图的Tilling和Offset选项 [Toggle] 模拟开关,0为假,1为真,同[MaterialToggle] 2.SubShade

cchoop的博客 955

Shader变体使用策略

Shader变体使用策略 https://www.jianshu.com/p/12cc73dc7413 1)Shader变体使用策略 2)AssetBundle产生的SerializedFile卸载不干净 3)如何优化LWRP下产生的大量RenderTexture 4)场景的灯光保存在Prefab中,烘焙参数丢失 5)如何跳过Shader中某个Pass不执行 这是第180篇UWA技术知识分享...

kuangben2000的博客 808

shaderlab 中 use pass、grab pass的用法

use pass use pass 用于帮助shader代码重复使用。 使用步骤: 1, 被引用的shader,在被引用的shader中定义shader名和pass名 shader 1: // 定义shader 路径 Shader "Unlit/shader1" { Properties { _MainTex ("Texture", 2D) = "white" {} } SubShader { Tags { "RenderType"="Opaque" } Pass { //定

失业求捞! 2171

ShaderLab: UsePass

ShaderLab: UsePassUsePass命令使用来自其他shader中被命名的pass。SyntaxUsePass "Shader/Name"插入给定shader中名字与给定相同的pass。Shader/Name 包括了shader的名字,和pass的名字,通过斜线分割。注意只有第一个支持的 subshader会被考虑。Details一些shader可以复用存在的pass,减少代码重复。例

maozi_bsz的专栏 771

Shader 使用UsePass

可以包含来自其他着色器的通道,来减少重复的代码。 UsePass "Specular/BASE"   而为了让UsePass能够认识到指定的是谁,必须给希望使用的通道命名,弄个身份证。通道中的Name命令就是这个功能:   Name "MyPassName"

茶向 2870
上一篇: Unity3D Shader官方教程翻译(十四)----Shader语法:Pass的BindChannels 绑定通道
下一篇: Unity3D Shader官方教程翻译(十六)----Shader语法 GrabPass
coding_most
博客等级 码龄15年 13粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值