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} 

  • 相关阅读:
    mac 10.15.7 修改PATH
    oc 属性类型一般用法
    ubuntu解压zip文件名乱码
    telnet 退出
    docker 根据容器创建镜像
    mac android adb device 没有显示设备
    Yii2 查看所有的别名 alias
    Yii2 App Advanced 添加 .gitignore
    ubuntu 18.04 搜狗突然就提示乱码
    An error occured while deploying the file. This probably means that the app contains ARM native code and your Genymotion device cannot run ARM instructions. You should either build your native code to
  • 原文地址:https://www.cnblogs.com/nafio/p/9137248.html
Copyright © 2011-2022 走看看