zoukankan      html  css  js  c++  java
  • UnityShader之Shader格式篇【Shader资料1】

      关于Shader,在Unity里面我们一般叫做ShaderLab,只要你的职业是与渲染搭边,Unity就与ShaderLab有着直接的关联,你都应该试着去学会它,其实我们在新手未有入门的时候,我们总是认为这是个很遥远的东西,只要我们有一次理解了,我们就会发现ShaderLab其实并不难。

      每一个Shader,我们从最简单的方式去着手理解,你只需要把它想象成一个无限循环执行的函数即可。可能这样也有部分同学还是很难理解。那我写个代码我们试着来理解它。

    public void ShaderLab(object parm[])

    {

      函数体;

      SharderLab(parm[]); //递归调用

    }

    我们再去调用它 ShaderLab(parm[]);。

      我们通过类似这种方式的形式去理解它,我们大家理解了吧,这样把ShaderLab函数看作是一个Shader即可,我们由表及里,一步一步往Shader深入的地方去迈,记住步子迈大了就会扯着蛋,我们通过循序渐进的方式来学习。

      对于整体的ShaderLab,调用的内部接口实现,Unity已经帮我们做好了,这里不深入探讨,因为笔者也不了解内部实现,同学们也没有必要现在就去深究这个问题,因为现阶段没学会Shader的情况下纠结这个是没有任何意义的,只会对现在的学习造成干扰。

      Shader的格式如下,不要问我为什么内容这么少,因为Shader的内容就是这么少,233333:

      

    Shader "------"     //这里省略号表示Shader的路径和名字,例如Custom/shaderEg
      {
                   
               Properties
              {
                   _Color ("Main Color", Color) = (1,.5,.5,1)  //传入一个颜色
                   //这片区域是传入参数,目前一共是分为七种类型,我们后来再详说
               }    
                
                SubShader
                {
                    Pass
                    {
                           //渲染通道,一般Shader的代码主要是写在这片区域
                    }   
        }  
      }
    小时候我把老婆种到地下,长大了我能收获一大堆老婆! 我是威少,我是一名Unity游戏的主程,我为自己带盐,希望此文能给您一点点微不足道的帮助,祝你成功!
  • 相关阅读:
    JWT实现用户权限认证
    给你的网页添加一个随机的BGM
    Git版本控制
    常见数据的解析
    PHP处理CSV表格文件的常用操作方法是怎么样呢
    php curl语句的用法
    PHP操作Memcache基本函数的方法
    PHP使用PHPExcel删除Excel单元格指定列的方法是怎样
    php单链表实现的代码
    PHP中Array关于数组的用法
  • 原文地址:https://www.cnblogs.com/vsirWaiter/p/5988972.html
Copyright © 2011-2022 走看看