注意:此页面上的 ShaderLab 是旧版功能,仅用于向后兼容。如果着色器源文件包含 HLSL 代码,Unity 将完全忽略这些命令。如果着色器源文件不包含 HLSL 代码,Unity 会在导入时将这些命令编译为常规着色器程序。
功能名称 | 内置渲染管线 | 通用渲染管线 (URP) | 高清渲染管线 (HDRP) | 自定义 SRP |
---|---|---|---|---|
旧版顶点数据通道映射 | 是 | 否 | 否 | 否 |
BindChannels 命令用于指定顶点数据映射到图形硬件的方式。默认情况下,Unity 会为您计算绑定,但在某些情况下,您可能希望使用自定义绑定。
例如,您可能会映射要在第一个纹理阶段中使用的主 UV 集,并映射要在第二个纹理阶段中使用的辅助 UV 集;或者告知硬件应将顶点颜色考虑在内。
BindChannels { Bind "source", target }
指定顶点数据 source 映射到硬件 target。
Source 可以是下列值之一:
Target 可以是下列值之一:
Unity 对于哪些源 (source) 可以映射到哪些目标 (target) 设置了一些限制。Vertex、Normal、Tangent 和 Color 的源和目标必须匹配。网格中的纹理坐标(__Texcoord__ 和 Texcoord1__)可以映射到纹理坐标目标(对于所有纹理阶段来说,是 Texcoord__;对于某个特定阶段来说,是 __TexcoordN__)。
BindChannels 有两个典型用例:
// 将第一个 UV 集映射到第一个纹理阶段
// 并将第二个 UV 集映射到第二个纹理阶段
BindChannels {
Bind "Vertex", vertex
Bind "texcoord", texcoord0
Bind "texcoord1", texcoord1
}
// 将第一个 UV 集映射到所有纹理阶段
// 并使用顶点颜色
BindChannels {
Bind "Vertex", vertex
Bind "texcoord", texcoord
Bind "Color", color
}
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.