shader Category
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的更多相关文章
- Unity3d Shader开发(五)Fallback ,Category
Fallback定义在所有子着色器后.简单来说,它表示"如果没有任何子着色器能被运行在当前硬件上,请尝试使用降级着色器". Syntax 语法 Fallback "nam ...
- Shader
Shader的学习方法总结 http://www.cnblogs.com/Esfog/p/How_To_Learn_Shader.html [Shader 着色器]学习shader之前必须知道的东西之 ...
- Unity3D着色器Shader编程入门(一)
自学Unity3D也有大半年了,对Shader一直不敢入坑,最近看了些资料,以及通过自己的实践,对Shader还是有一点了解了,分享下仅作入门参考. 因Shader是对图像图像渲染的,学习前可以去了解 ...
- Shader的语法
Shader "name" { [Properties] Subshaders [Fallback] }(1)Properties:{ Property [Property ... ...
- Unity3D中的Shader
简单的说,Shader是为渲染管线中的特定处理阶段提供算法的一段代码.Shader是伴随着可编程渲染管线出现的,从而可以对渲染过程加以控制. 1. Unity提供了很多内建的Shader,这些可以从官 ...
- Unity shader之ColorMask
Color Mask解释,见unity文档: ColorMask ColorMask RGB | A | 0 | any combination of R, G, B, A Set color cha ...
- (转)热空气扭曲效果shader
转自:http://blog.sina.com.cn/s/blog_89d90b7c0102vaqy.html 热空气扭曲在大自然中形成是比较复杂的,这里只是通过取屏幕纹理和移动UV来模拟热扭曲效果. ...
- 关于Unity中Shader的基础认识
Shader也叫着色器,是Unity里面比较难的一个点,网上有很多别人写好的shader,我们可以下载下来用或者修改学习. Shader可以做出很多非常不错的效果,因为它是插在渲染管道里面的程序,一来 ...
- Glow Shader
[Glow Shader] Glow Shader基于BlurShader来实现.总的来说分为2步: 1.利用BlurShader渲染出BlurTexture. 2.将BlurTexture与SrcT ...
随机推荐
- 开启unity3D的学习之路
2014年5月11号.我開始了我的Unity3D的学习之路.我将在此记录我学习过程中各个进程,这样在将来的某天,自己忘记了某部分内容时.也能够回过头来复习一下.
- python获取当前的时间
打印出当前的年月日时分秒 print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))) 2018-09-05 09:39: ...
- selenium超时设置
设置超时时间 from selenium import webdriverdriver=webdriver.Chrome()driver.set_page_load_timeout(5)driver. ...
- 剑指Offer:对称的二叉树【28】
剑指Offer:对称的二叉树[28] 题目描述 请实现一个函数,用来判断一颗二叉树是不是对称的.注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的. 题目分析 Java题解 /* publi ...
- Javascript类型转换的规则实例解析
http://www.jb51.net/article/79916.htm 类型转换可以分为隐式转换和显式转换,所谓隐式转换即程序在运行时进行的自动转换,显式转换则是人为的对类型进行强制转换.Java ...
- mysql一次性和多次取数据的性能测试
1.表结构 2.数据量 3.代码 先从学生表里面查出300名学生,然后找出每个学生的班级信息,然后merge起来 3.性能对比 第一种:每次取一条 第二种:一次全去除 4.总结 不能循环取从数据库中取 ...
- POJ3417Network(LCA+树上查分||树剖+线段树)
Yixght is a manager of the company called SzqNetwork(SN). Now she's very worried because she has jus ...
- k8s-应用快速入门(ma)
[root@k8s-master ~]# kubectl run nginx-deploy --image=nginx:1.14-alpine --port=80 --replicas=1 deplo ...
- 【Lintcode】106.Convert Sorted List to Balanced BST
题目: Given a singly linked list where elements are sorted in ascending order, convert it to a height ...
- The Django Book 2.0--中文版
Table of contents 2.0, English -> Chinese 第一章:介紹Django阅读 01 第二章 入门阅读 02 第三章 视图和URL配置阅读 03 第四章:模版阅 ...