【ShaderLab】Cookbook阅读笔记01

《Unity Shaders and Effects Cookbook》阅读笔记,找了很久ShaderLab的教程......结合官网教程学习ShaderLab。

用一个最简单的Shader展示一下shader代码的结构:

第一行代码Shader后跟的是shader的名字,在给Material添加Shader时根据shader名找到对应shader:

以上这个再简单不过的Shader由Properties部分和SubShader部分构成。

其中Properties定义了一系列Shader中用到的参数,这些参数可以在添加了相应Shader的Material的Inspector面板中看到,例如上述代码中

_Color("Main Color", Color) = (0,1,1,1)

为Material的Inspector添加了一个颜色的GUI元素:

常见Properties类型:

  1. Numbers and Sliders

    name ("display name", Range (min, max)) = number
    name ("display name", Float) = number
    name ("display name", Int) = number
  2. Colors and Vectors

    name ("display name", Color) = (number,number,number,number)
    name ("display name", Vector) = (number,number,number,number)
  3. Textures

    name ("display name", 2D) = "defaulttexture" {}
    name ("display name", Cube) = "defaulttexture" {}
    name ("display name", 3D) = "defaulttexture" {}

一个属性定义的结构:

要在SubShader中调用之前Properties中定义的那些变量,需要在SubShader中创建与之具有相同名称的变量。

例如对于前述的_Color,就需要创建

CGPROGRAM
float4  _Color;

注意变量创建在CGPROGRAM之后。

Unity Shaders and Effects Cookbook PDF:http://pan.baidu.com/s/1o8gCtvk (我看的这本是Unity4的,就着文档也能看,就没纠结版本了)

时间: 2024-10-23 09:12:29

【ShaderLab】Cookbook阅读笔记01的相关文章

ijkplayer阅读笔记01

ijkplayer阅读笔记01 1.这章解决ijkplayer播放库初始化部分,直接贴上流程伪代码如下: IjkMediaPlayer_native_setup { ijkmp_android_create(message_loop){ mp->ffplayer->vout = SDL_VoutAndroid_CreateForAndroidSurface();{ SDL_VoutAndroid_CreateForANativeWindow();{ vout->create_overla

掌握需求过程阅读笔记01

掌握需求过程 第一章什么是需求 阅读笔记 我们为什么要进行需求呢? 这样是为了使效率更高,并且减少错误步骤所不必付出的代价. 在我们构造产品之前就要知道客户的需求是什么,大多数的组织都是通过系统分析来进行的,但是需求过程与系统分析并不是一回事,虽然他们之间有联系,但并不完全相同.除了系统分析以外,需求也是很有必要的.他可以对你的分析师生涯有更进一步的促进.当我们接触到一个新的产品时,业务事件和使用情况逐渐清晰了起来,系统分析可以对产品进行更清楚的建模,并为需求过程提供有价值的反馈.对需求的了解增

《需求工程--软件建模与分析》阅读笔记01

该书为<需求工程--软件建模与分析>第二版,骆斌主编,丁二玉编著,高等教育出版社. 该书分为了五部分,今天的阅读笔记来谈谈第一部分绪论. 这一部分主要讲了:1.需求工程导论  2.需求基础  3.需求工程过程 第一小部分需求工程导论讲了软件生产中的需求问题,即:需求问题是当前软件开发面临的主要问题(无论是实践者的亲身体会还是各种调查数据),需求因素对项目的成败具有至关重要的影响.该书中也指明了综合上看来,需求因素对成功项目的影响指数为53.9%,对问题项目的影响指数为55.6%,对失败项目的影

《架构之美》阅读笔记01

一.阅读内容 第一章架构概述 第二章两个系统的故事:现代软件神话 二.笔记总结 (1)什么是软件架构? 其实在好多学科中都用到了"架构"这个词,大都表达了对所创造作品的描述,或者是对创造过程的计划.但是在软件专业中还有更具体的表达.软件架构不是一个简单的实体,软件架构师需要用多分文档来对软件的行为和结构进行描述,以此来形成软件架构.<软件架构实践>一书对软件架构的规范化定义是这样的,一个程序或计算机系统的软件架构是系统的一种结构或一组结构,包含了软件元素.软件元素外部可见的

&lt;精通JavaScript&gt;---阅读笔记01

下面是阅读精通JavaScript书做的相关笔记. JS中的函数重载 函数重载必须依赖两件事情:判断传入参数数量的能力和判断传入参数类型的能力,在js中每个函数都带有一个仅在这个函数范围内作用的变量,称之为参数argument,它是一个包含所有传给函数参数的伪数组,所以并不是正的数组,但是我们不可以去修改它.其实这个就相当于一个池,将参数全部都保存在里面,之后在用的时候去取,只是这个池我们看不见.是语言自己去找. JS中2种常见的类型检查 :typeof()操作符 typeof n==”stri

《构建之法》阅读笔记01

这一学期,开始了健民老师的软件工程概论课,早就听闻健民老师的软件工程概论课很牛,听了两节课下来,果然如此. 老师引用了<构建之法>书中的理念,认为软件不是靠着理论堆积而成,而是一个个实发的项目组成的,在课上,老师引用了书中的例子来形容学生和老师的关系. 1.餐馆服务员/食客 2.老板/雇员 3.保姆/幼儿:像保姆一样操办一切 4.哥们/哥们:一起混吧 5.路人甲/路人乙 6.狱警/犯人:想法点名/想法逃课 7.健身教练/健身学员:鼓励成长 当然,大家都更加喜欢7,希望能够获得更多的编程技能和知

《大型网站技术架构核心原理与案例分析》阅读笔记-01

通过阅读该书籍我们能够更加清楚的树立大型网站的的技术发展历程,剖析大型网站技术架构模式,深入的讲述大型互联网架构核心原理,并通过一些典型的技术案例来讲述大型网站开发全景视图,该书籍深入的阐述了各种大型网站面临的各种架构问题及解决方案. 在第一章第一篇大型网站架构演化中了解到与传统企业应用系统相比,大型互联网应用系统具有高并发大流量.高可用性.海量数据.用户分布广泛,网络情况复杂.安全环境恶劣.需求快速变更,发布频繁.渐进式发展等特点:大型网站架构演化发展历程经历了初始阶段的网络架构它的应用程序.

《掌握需求过程》阅读笔记01

在本学期,老师要求我们每人至少精读一本有关需求分析的书,我选择了<掌握需求过程>这本书. 首先,本书一开始就告诉我们什么是需求,书中提到需求就是必须在构建产品之前发现的东西,如果在构建之后才发现,这将给我们带来无比巨大的麻烦,,所以本书要告诉我们的是如何发现这些需求并得知这些需求的正确性. 然后作者告诉了我们需求与系统分析,并说明需求收集与系统分析有一定程度的重叠.作者着重强调需求的重要性,好的需求收集与系统分析是非常必要的.这和老师在课堂上跟我们强调的一模一样.文中提到利用分析模型来描述需求

编写有效用例_阅读笔记01

粗略浏览整本书,我对它第一印象并不是很好,不然也不会迟迟未看下去.然而,耐着性子学习,却发现我们所学习的软件工程的相关课程,万变不离其宗,整个系统是一致的.换句话说,一个系统做下来,并不是单单一门课就可以解决的事,其间蕴含了所有学习的或还未学习的内容. 用例这个概念曾在学习UML中有提及,当时用例的概念仅仅止步于“用客户或用户的语言和词汇来描述的系统的一个完整功能”.紧接着,学习的重点便是用例图和其他图的绘制.在UML中强调的是使用图绘的方式来描述用例之间的“关联关系”.“泛化关系”.“包含关系