关于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) = (,.,.,) //传入一个颜色
//这片区域是传入参数,目前一共是分为七种类型,我们后来再详说
} SubShader
{
Pass
{
//渲染通道,一般Shader的代码主要是写在这片区域
}
    }
  }

UnityShader之Shader格式篇【Shader资料1】的更多相关文章

  1. UnityShader之Shader分类篇【Shader资料2】

    关于ShaderLab,从我个人的理解上来看应该是分为三种类型. 1.Fixed function shader 固定渲染管线Shader,基于用于高级Shader在老显卡无法显示时的Fallback ...

  2. 鸿蒙内核源码分析(ELF格式篇) | 应用程序入口并不是main | 百篇博客分析OpenHarmony源码 | v51.04

    百篇博客系列篇.本篇为: v51.xx 鸿蒙内核源码分析(ELF格式篇) | 应用程序入口并不是main | 51.c.h.o 加载运行相关篇为: v51.xx 鸿蒙内核源码分析(ELF格式篇) | ...

  3. 「游戏引擎 浅入浅出」4.1 Unity Shader和OpenGL Shader

    「游戏引擎 浅入浅出」从零编写游戏引擎教程,是一本开源电子书,PDF/随书代码/资源下载: https://github.com/ThisisGame/cpp-game-engine-book 4.1 ...

  4. [Unity Shader]ShaderForge制作Shader

    什么是ShaderForge ShaderForge的目标是推动统一的视觉质量提升到了新的高度, 给你自由的材质创建在一个视觉和直观的方式——不需要代码! ShaderForge的特性 •实时着色器预 ...

  5. GLSL写vertex shader和fragment shader

    0.一般来说vertex shader处理顶点坐标,然后向后传输,经过光栅化之后,传给fragment shader,其负责颜色.纹理.光照等等. 前者处理之后变成裁剪坐标系(三维),光栅化之后一般认 ...

  6. Stage3d 由浅到深理解AGAL的管线vertex shader和fragment shader || 简易教程 学习心得 AGAL 非常非常好的入门文章

    Everyday Stage3D (一) Everyday Stage3D (二) Triangle Everyday Stage3D (三) AGAL的基本概念 Everyday Stage3D ( ...

  7. 【swagger】2.swagger提供开发者文档--返回统一格式篇【spring mvc】【spring boot】

    接着上一篇来说, 不管正常返回结果还是后台出现异常,应该返回给前台统一的响应格式. 所以这一篇就为了应对解决这个问题. ======================================== ...

  8. 自己总结的C#编码规范--6.格式篇

    格式 格式的统一使用可以使代码清晰.美观.方便阅读.为了不影响编码效率,在此只作如下规定: 长度 一个文件最好不要超过500行(除IDE自动生成的类). 一个文件必须只有一个命名空间,严禁将多个命名空 ...

  9. 三、Linux学习之命令基本格式篇

    一.命令格式 命令 [选项] [参数] 注意: 1.和别命令使用不遵循此格式 2.当有多个选项时,可以写在一起 3.简化选项与完整选项(-a 等价于--all) 4.中括号为可选,意思是可以有可以没有 ...

随机推荐

  1. Physical Based Shading in Unreal Engine 3

    Roughness = 0.1roughness = 0.4roughness = 0.7roughness = 0.999 以上的Fresnel 0° = {1.0,0.86.0.57}(PS: 近 ...

  2. Tips10:你可以像写文档一样自由的复制粘贴游戏组件(Game Object Component)

    相对于添加组件后再进行调整和赋值,通过复制和粘贴已有游戏组件能够带来更高的效率.

  3. Tips2:无需Gizmo函数 和 附加Render 实现空物体(GameObject)的可视化

    Unity在场景创建过程中,可能会用到很多空物体,如生成器(Spawn)什么的,一般空物体默认是看不到的,其实,空物体可以通过设置为可见的,这样在用到空物体时就能更加方便的编辑和控制了. 1.可以是这 ...

  4. Mergely – 免费的在线文档对比和合并工具

    任何类型的文件(无论是否代码),我们可能要比较不同的版本,看发生了什么变化. 有些编辑器都有这个内置功能,其中一些则没有. Mergely 是一个免费使用的 Web 应用程序,帮你你迅速作出文档的差异 ...

  5. 在Asp.Net MVC中使用ModelBinding构造Array、List、Collection以及Dictionary

    在asp.net mvc中,我们可以在html表单中使用特定的格式传递参数,从而通过model binder构造一些集合类型. 第一种方式 public ActionResult Infancy(Pe ...

  6. JAVA魔法堂:读取.properties配置文件

    一.前言 Java工程中想log4j.数据库连接等配置信息一般都写在.properties文件中,那么如何读取这些配置信息呢?下面把相关方法记录下来供以后查阅. 二..properties文件 配置文 ...

  7. asp.net MVC ajax上传文件

    普通上传 view: <body> <form id="form1" method="post" action="@Url.Acti ...

  8. 正则表达式相关:C# 抓取网页类(获取网页中所有信息)

    类的代码: using System; using System.Data; using System.Configuration; using System.Net; using System.IO ...

  9. asp.net控件的Hyperlink控件

    Asp.net控件: Hyperlink控件:Hyperlink控件又称为超链接控件,该控件在功能上跟Html的<a herf=””>控件相似,其显示的模式为超链接的形式. 注意: Hyp ...

  10. 重新想象 Windows 8.1 Store Apps (76) - 新增控件: SearchBox

    [源码下载] 重新想象 Windows 8.1 Store Apps (76) - 新增控件: SearchBox 作者:webabcd 介绍重新想象 Windows 8.1 Store Apps 之 ...