Category:是渲染命令的逻辑组,着色器可以多个子着色器,他们需要共同的效果

// Copyright 2014 Google Inc. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License. // Original code by Nora
// http://stereoarts.jp
//
// Retrieved from:
// https://developer.oculusvr.com/forums/viewtopic.php?f=37&t=844#p28982 Shader "Panorama/2dSphere" {
Properties {
_Color ("Main Color", Color) = (1,1,1,1)
_MainTex ("Texture", 2D) = "white" {}
}
Category {
Tags { "Queue"="Background" }
ZWrite Off
Lighting Off
Fog {Mode Off}
BindChannels {
Bind "Color", color
Bind "Vertex", vertex
Bind "TexCoord", texcoord
}
SubShader {
cull off
Pass {
SetTexture [_MainTex] {
Combine texture
}
SetTexture [_MainTex] {
constantColor [_Color]
combine previous * constant
}
}
}
}
}

ShaderLab 语法:绑定通道 (BindChannels)        

绑定通道 (BindChannels) 命令让您可以指定顶点数据如何绘制到图形硬件中。

使用可编程的顶点着色器时,绑定通道无效,因为这种情况下,捆绑由顶点着色器输入控制



默认情况下,Unity 为您进行绑定,但是在有些情况下,您需要自定义使用的绑定。

例如:您可以绘制在第一个纹理阶段使用的主要 UV 集和第二个纹理阶段使用的辅助 UV 集

;或者通知硬件要考虑顶点颜色。

语法

BindChannels { Bind "source", target }

指定顶点数据源 (source) 映射到硬件目标 (target)。

源 (Source)  可以是:

顶点 (Vertex):顶点位置

法线 (Normal):顶点法线

切线 (Tangent):顶点切线

纹理坐标 (Texcoord):主要 UV 坐标

纹理坐标 1 (Texcoord1):次要 UV 坐标

颜色 (Color):逐顶点颜色

目标 (Target) 可以是:

顶点 (Vertex):顶点位置

法线 (Normal:顶点法线

切线 (Tangent):顶点切线

Texcoord0, Texcoord1, ...:相应纹理阶段的纹理坐标

纹理坐标 (Texcoord):所有纹理阶段的纹理坐标

颜色 (Color):顶点颜色

详细信息

Unity 在哪些源可绘制到哪些目标上有一些限制。源和目标在 顶点 (Vertex)、法线 

(Normal)、切线 (Tangent) 和 颜色 (Color) 上必须是相匹配的。网格的纹理坐标

(Texcoord 和 Texcoord1)可绘制到纹理坐标目标(对于所有的纹理阶段为 Texcoord 或者

对于特定阶段为 TexcoordN)。

BindChannels 的两个经典使用案例:

考虑顶点颜色的着色器。

使用两个 UV 集的着色器。

示例

// 将第一个 UV 集绘制到第一个纹理阶段// 并将第二个 UV 集绘制到第二个纹理阶段

BindChannels {   Bind "Vertex", vertex   Bind "texcoord", texcoord0   Bind 

"texcoord1", texcoord1} 

// 将第一个 UV 集绘制到所有纹理阶段// 并使用顶点颜色BindChannels {   Bind 

"Vertex", vertex   Bind "texcoord", texcoord   Bind "Color", color}

shader Category的更多相关文章

  1. Unity3d Shader开发(五)Fallback ,Category

    Fallback定义在所有子着色器后.简单来说,它表示"如果没有任何子着色器能被运行在当前硬件上,请尝试使用降级着色器". Syntax 语法 Fallback "nam ...

  2. Shader

    Shader的学习方法总结 http://www.cnblogs.com/Esfog/p/How_To_Learn_Shader.html [Shader 着色器]学习shader之前必须知道的东西之 ...

  3. Unity3D着色器Shader编程入门(一)

    自学Unity3D也有大半年了,对Shader一直不敢入坑,最近看了些资料,以及通过自己的实践,对Shader还是有一点了解了,分享下仅作入门参考. 因Shader是对图像图像渲染的,学习前可以去了解 ...

  4. Shader的语法

    Shader "name" { [Properties] Subshaders [Fallback] }(1)Properties:{ Property [Property ... ...

  5. Unity3D中的Shader

    简单的说,Shader是为渲染管线中的特定处理阶段提供算法的一段代码.Shader是伴随着可编程渲染管线出现的,从而可以对渲染过程加以控制. 1. Unity提供了很多内建的Shader,这些可以从官 ...

  6. Unity shader之ColorMask

    Color Mask解释,见unity文档: ColorMask ColorMask RGB | A | 0 | any combination of R, G, B, A Set color cha ...

  7. (转)热空气扭曲效果shader

    转自:http://blog.sina.com.cn/s/blog_89d90b7c0102vaqy.html 热空气扭曲在大自然中形成是比较复杂的,这里只是通过取屏幕纹理和移动UV来模拟热扭曲效果. ...

  8. 关于Unity中Shader的基础认识

    Shader也叫着色器,是Unity里面比较难的一个点,网上有很多别人写好的shader,我们可以下载下来用或者修改学习. Shader可以做出很多非常不错的效果,因为它是插在渲染管道里面的程序,一来 ...

  9. Glow Shader

    [Glow Shader] Glow Shader基于BlurShader来实现.总的来说分为2步: 1.利用BlurShader渲染出BlurTexture. 2.将BlurTexture与SrcT ...

随机推荐

  1. mysql一:操作数据库

    创建数据库是指在数据库空间中划出一块空间用来存储相关的数据,表就是存储在对应的数据库里面.首先来看下查看数据库的命令:show databases. 这个是用来查询数据库空间下所有的数据库,其中inf ...

  2. GstAppSrc简介

    Description The appsrc element can be used by applications to insert data into a GStreamer pipeline. ...

  3. LeetCode:安排工作以达到最大收益【455】

    LeetCode:安排工作以达到最大收益[455] 题目描述 有一些工作:difficulty[i] 表示第i个工作的难度,profit[i]表示第i个工作的收益. 现在我们有一些工人.worker[ ...

  4. 请求时token过期自动刷新token

    1.在开发过程中,我们都会接触到token,token的作用是什么呢?主要的作用就是为了安全,用户登陆时,服务器会随机生成一个有时效性的token,用户的每一次请求都需要携带上token,证明其请求的 ...

  5. CSS3 3D下拉折叠菜单

    在线演示 本地下载

  6. 20145239 杜文超《Java程序设计》课程总结

    <每周读书笔记链接汇总> 第一周读书笔记:http://www.cnblogs.com/dwc929210354/p/5247666.html 第二周读书笔记:http://www.cnb ...

  7. Adding Form Fields to a MS Word Document

    Configuring a Word Merge in SmartSimple is a three-step process: Create the MS Word document that wi ...

  8. PHP ServerPush (推送) 技术的探讨【转】

    随着人们对Web即时应用需求的不断上升,Server Push(推送)技术在聊天.消息提醒尤其是社交网络等方面开始兴起,成为实时应用的数据流核心.这篇日志试图探讨的便是各种适合于PHP的Push的实现 ...

  9. html5--1.4元素的属性

    html5--1.4元素的属性 学习要点: 1.了解HTML元素属性2.学习两个属性:align和bgcolor 属性的作用就是就为元素提供更多的信息,大多数元素都可以拥有属性 属性的语法:<标 ...

  10. capsule network——CNN仅仅考虑了“有没有”的问题,没有考虑feature map的结构关系。这个结构关系包括位置,角度等。Capsule layer的输出也跟feature map的max-pooling输出不同,capsule layer的输出是一个向量,这个向量包含了位置,大小,角度等信息,这是feature map仅能输出一个值所不具备的;训练比较慢

    capsule network--<Dynamic Routing Between Capsules> from:https://zhuanlan.zhihu.com/p/31491520 ...