zoukankan      html  css  js  c++  java
  • 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} 

  • 相关阅读:
    H.264 RTP PAYLOAD 格式
    ARM:移动GPU往PC GPU效能迈进
    汪墩一中复校设想
    jconsole 和jvisualVM 监控远程 spring boot程序
    jenkins 登录远程机器并执行脚本,脚本中有后台执行的程序无法执行解决方法。
    linux下的抓包工具tcpdump
    adb logcat查看某个进程的输出日志
    Flask-SQLAlchemy 中多表链接查询(不使用外键)
    使用cnpm 安装vue.js
    Jmeter在非GUI环境下传递参数(命令行&Jenkins配置)
  • 原文地址:https://www.cnblogs.com/nafio/p/9137248.html
Copyright © 2011-2022 走看看