Unity3D Shader官方教程翻译(十四)----Shader语法:Pass的BindChannels 绑定通道

unity之shader学习笔记(五)--纹理 纹理映射 阅读详情

ShaderLab syntax: BindChannels 绑定通道。

BindChannels command allows you to specify how vertex data maps to the graphics hardware.

BindChannels 命令 允许你指定顶点数据如何映射到显卡中。

BindChannels has no effect when programmable vertex shaders are used, as in that case bindings are controlled by vertex shader inputs.

可编程顶点着色器使用时,BindChannels将没有效果。在这种情况下,绑定受顶点着色器输入控制。

By default, Unity figures out the bindings for you, but in some cases you want custom ones to be used.

默认情况下,Unity3D 会为你计算并绑定,但在某些情况下,你要使用自定义绑定。

For example you could map the primary UV set to be used in the first texture stage and the secondary UV set to be used in the second texture stage; or tell the hardware that vertex colors should be taken into account.

例如:你可以在第1个纹理处理阶段映射主UV 然后在第2个纹理处理阶段使用次要UV。或者告诉硬件需要考虑顶点颜色。

Syntax 语法

BindChannels { Bind "source", target }

Specifies that vertex data  source maps to hardware  target.
指定顶点数据源映射到目标硬件。

Source can be one of:

源可以是下面其中的一个

  • Vertex: vertex position 顶点:顶点的位置
  • Normal: vertex normal 法线:顶点的法线
  • Tangent: vertex tangent 切线:顶点的切线
  • Texcoord: primary UV coordinate 主要的UV坐标
  • Texcoord1: secondary UV coordinate 次要的UV坐标
  • Color: per-vertex color  颜色:每个顶点颜色

Target can be one of:

目标可以是下面其中的一个:

  • Vertex: vertex position  顶点:顶点的位置
  • Normal: vertex normal 法线:顶点的法线
  • Tangent: vertex tangent 切线:顶点的切线
  • Texcoord0, Texcoord1, ...: texture coordinates for corresponding texture stage 各个纹理处理阶段的纹理坐标
  • Texcoord: texture coordinates for all texture stages 所有纹理处理阶段的纹理坐标
  • Color: vertex color 颜色顶点颜色

Details 详情

Unity places some restrictions on which sources can be mapped to which targets. Source and target must match for Vertex, Normal, Tangent and Color. Texture coordinates from the mesh (Texcoord and Texcoord1) can be mapped into texture coordinate targets (Texcoord for all texture stages, or TexcoordN for a specific stage).

Unity在源和目标的映射上加了一些限制。源和目标必须匹配顶点,法线,切线和颜色。从网格中获取的纹理坐标(Texcoord和Texcoord1)可以映射到纹理坐标的目标(所有纹理处理阶段可以使用Texcoord ,或者在一个特定阶段使用TexcoordN )。

There are two typical use cases for BindChannels:这里有2个典型的情况可以使用BindChannels。

  • Shaders that take vertex colors into account.
  • 需要考虑顶点颜色的着色器。
  • Shaders that use two UV sets.使用两个UV组的着色器。

Examples 例子

// Maps the first UV set to the first texture stage 在纹理处理第1阶段映射第1个UV
// and the second UV set to the second texture stage   在纹理处理第2阶段映射第2个UV
BindChannels {
   Bind "Vertex", vertex
   Bind "texcoord", texcoord0
   Bind "texcoord1", texcoord1
} 
// Maps the first UV set to all texture stages 将第1个UV映射到所有纹理处理阶段并使用顶点颜色
// and uses vertex colors
BindChannels {
   Bind "Vertex", vertex
   Bind "texcoord", texcoord
   Bind "Color", color
} 
 
由 www.J2meGame.com原创,转载请说明。
Shader山下(二十三)GrabPass与UsePass 通道(Pass)是子着色器(SubShader)的组成部分,每个Pass代表对象被渲染一次。 本文要介绍的是两种特殊的Pass:GrabPass和UsePass。 GrabPass用于获取当前屏幕的纹理(Texture)。 UsePass实际上不是Pass,而是调用其他的Pass的指令。 阅读详情

相关推荐

【OpenGL】Shader个人学习笔记(13)--渲染多个目标

在进行多目标渲染之前,需要对之前的内容进行总结 对于渲染器类来说,由于自身包括了shader.bind()函数,所以不需要重复申明shader.bind() 语句,因为会造成冗余,在很多渲染引擎和游戏引擎中都会提示错误。最后一行是 draw call shader.Bind(); // bind a program for GPU to use to render things va.Bind(); // data ib.Bind(); // indices GLCall(glDrawEleme.

qq_34878429的博客 1048

【Cocos Creator 3.x】 Shader 中的 layout(set = N, binding = M) 是什么意思?

Shader 中的 layout

u014206745的博客 2568

【无机纳米材料科研制图——OriginLab 0205】Origin对BET吸附/脱附曲线及孔径分布制图...

此篇,我们来分享如何对BET数据进行处理和制图。 一、等温吸脱附曲线绘制 1)找到等温吸脱附文件。 一半来说,对一个样品测一次BET,会产生很多数据,具体因仪器而异。我这里的数据主要有两个文件夹,一个脱附,一个吸附,吸附文件夹中多了一个等温吸脱附的文件夹。而这...

XD_Yangf的博客 804

shader语义绑定问题

title: shader语义绑定问题 date: 2019-06-24 22:50:47 tags: 一个关于shader语义绑定的问题 学习shader语言的时候根据教程编辑了如下代码: Shader "Custom/NewSurfaceShader" { SubShader { pass{ CGPROGRAM #pragma vertex vert #pragma fragment frag void vert(in f.

ZanDatsu的博客 413

H无穷控制学习笔记——加权灵敏度H无穷控制问题

一、加权灵敏度H无穷问题 系统结构如上图所示。被控对象P的状态空间方程为(Ap,Bp,Cp,DpA_p,B_p,C_p,D_pAp​,Bp​,Cp​,Dp​),加权函数W1的状态空间方程为(A1,B1,C1,D1A_1,B_1,C_1,D_1A1​,B1​,C1​,D1​),加权函数W2的状态空间方程为(A2,B2,C2,D2A_2,B_2,C_2,D_2A2​,B2​,C2​,D2​),加权函数W3的状态空间方程为(A3,B3,C3,D3A_3,B_3,C_3,D_3A3​,B3​,C3​,D3​)。

一饮丶一啄的博客 4351

头歌MySQL数据库实训答案 有目录

头歌java实训答案集数据库部分一条一条的写,可鼠标手动粘贴,除特定命令外未分大小写。 第1关:创建数据库 第2关创建表 第3关:使用主键约束 第4关:外键约束 第5关:添加常用约束 MySQL数据库 - 数据库和表的基本操作(一) 第1关:查看表结构与修改表名 第2关:修改字段名与字段数据类型 第3关:添加与删除字段 第4关:修改字段的排列位置 第5关:删除表的外键约束 MySQL数据库 - 数据库和表的基本操作(二) 第1关:插入数据 第2关:更新数据 第3关:删除数据 MySQL数据库 - 单表查询(

m0_67401761的博客 4万+

Unity Shader -- 基于物理的渲染技术

总结自Unityshader入门精要一,光的传播二,双向反射分布函数(BRDF)三,实现一个基于物理渲染的shader如何插入一段漂亮的代码片 一,光的传播 光是一种电磁波,由光源发射出来,与物体相交,一部分被吸收转化为其他能量,而另一些被散射,最后被感应器(如眼睛)吸收成像 吸收:改变光的能量,不改变光的方向 散射:不改变光的能量,改变光的方向 影响光的一个重要的特质就是物体材质的折射率 二,双...

a6aqqq的博客 602

高功率半导体叠阵激光快慢轴准直优化技术解析

本文深入解析了高功率半导体叠阵激光快慢轴准直优化技术。针对其光束发散特性,文章系统阐述了从光源建模、光学仿真到透镜选型与参数匹配的完整工程流程,并强调了光束整形对于提升加工精度与效率的核心作用。通过优化快慢轴准直,可将原始散光转变为能量集中、均匀性好的高质量光束,为后续工业应用奠定基础。

php55的博客 713

Shader-Normal Map In Tangent Space

// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' Shader "Unity Shaders Book/Chapter 7/Normal Map In Tangent Space" {     Properties {         _Color ("Color Tint", C...

weixin_42045212的博客 397

深度解析NXP AMCLIB状态观测器:PMSM无感FOC控制实战指南

状态观测器是现代电机控制中的核心算法,它基于电机数学模型,通过测量定子电压和电流,实时估算出转子的位置和速度,从而替代了传统的物理传感器。其原理遵循“预测-校正”的闭环结构,通过比较模型预测值与实际采样值的误差,不断修正内部状态估计。这项技术的核心价值在于实现了无传感器控制,显著降低了系统成本、提升了可靠性与紧凑性,广泛应用于伺服驱动、变频器、电动汽车和家电等领域。本文聚焦于NXP AMCLIB库中的角度跟踪观测器和反电动势观测器,深入剖析其设计思路、固定点运算实现以及参数整定方法,为工程师在永磁同步电机无

cumi7754的博客 2833

告别编译报错!STC32G12K128在Keil C251下的完整Target配置指南(附ROM设置详解)

本文详细介绍了STC32G12K128在Keil C251下的完整Target配置指南,包括ROM设置、CPU模式选择、内存模型优化等关键步骤。通过实战技巧和常见错误解决方案,帮助开发者高效搭建编译环境,避免常见报错,充分发挥STC32G系列芯片的性能优势。

weixin_29186249的博客 339

Uity3D Shader官方教程翻译(十四)----Shader语法:Pass的BindChannels 绑定通道

ShaderLab syntax: BindChannels 绑定通道。 BindChannels command allows you to specify how vertex data maps to the graphics hardware. BindChannels 命令 允许你指定顶点数据如何映射到显卡中。 BindChannels has no effect

3G-肖阳 2803

从隐式求解器到显式求解器:COMSOL接触仿真中的求解策略对比与选择

本文深度解析了COMSOL中隐式与显式求解器在接触仿真中的应用与选择策略。针对非线性接触问题的核心挑战,详细对比了两种求解器的数学框架、优化技术及适用场景,并提供了参数调优和调试技巧,帮助工程师高效解决接触仿真中的收敛问题。

weixin_28347369的博客 682

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

PCL 区域生长分割【2026最新版】

区域生长算法原理介绍、代码实现以及一个具体实验场景的应用案例进一步实现将分割结果的分类保存至本地文件夹。最近一次更新时间为:2026年5月4日。

点云侠的博客 40万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

ShaderLab: UsePass

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

maozi_bsz的专栏 771

NTscan扫描工具

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

UnityShader UsePass介绍

UnityShader UsePass的使用

YanisWu的博客 1092

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

WINCC7.3破解文件

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

unity 之 shader 语法二

ShaderLab: Legacy Lighting 材质和光照参数用来控制内置的顶点光照,顶点光照是计算每个顶点的标准的Direct3D/OpenGL光照模型. Lighting on 是打开.Lighting受 Material块, ColorMaterial and SeparateSpecular 命令影响 Note:当vertex programs 使用的时候 Material/Li...

qq_37672438的博客 1216

【Unity】用shader做UGUI字体描边的算法改进

Unity自带的Outline 效率实在太差。 找了基于Shader实现的UGUI描边解决方案http://www.cnblogs.com/GuyaWeiren/p/9665106.html 效果还不错,overdraw和顶点数都不高。 不过方案有2个问题,自己尝试调整了一下, 代码放在这以供参考吧。 (注:把ui存储prefab,运行时动态挂到一个canvas上, 这个canvas 如果...

zhenmu的专栏 1万+

About normal map

Detail information about normalmap.

自由空间,实现思想的自由之地 1495

Unity中Shader的Pass的复用

Pass的复用一般用于,已经写好了一个Pass,在另一个Shader中有相同的效果的Pass,可以直接引用。

楠溪泽岸的博客 1007

BindChannels纹理绑定详解[Unity ShaderLab]

1、首先,我们看一下官方关于BindChannels的描述

xak的专栏 3405

Unity中动态改变物体的Material(Shader)

在Unity中,我们在进行物体控制和交互过程中经常会涉及到动态改变Shader的情况,如将一个三维物体用网格显示、将三维物体的表现形式进行变更等等。 在Unity中主要通过MeshRenderer组件进行控制,我们可以通过获取指定物体的MeshRenderer组件,对其中的属性进行赋值即可改变属性。

悲欢离合的博客 5万+

[ue4] 着色器绑定(Shader Binding)

当我们在ue4中制作了一个美术材质之后,引擎本身会为我们做很多事情,它会把结点翻译为hlsl,生成多个shader变体,并在多个mesh pass中去选择性的调用所需的shader,其中一个重要的过程就是获取shader绑定的数据。本文将主要讨论ue4是如何处理来自材质的不同的输入,它们将以怎样的形式传递给shader,以怎样的频率更新,并在调用层做了怎样的优化处理。

(ง •̀_•́)ง 2898
上一篇: Unity3D Shader官方教程翻译(十三)----Shader语法:Pass的Name
下一篇: Unity3D Shader官方教程翻译(十五)----Shader语法 UsePass
coding_most
博客等级 码龄15年 13粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值