Unity3D Shader 学习笔记(二):ShaderLab的结构和基本属性
(一) ShaderLab:
什么是ShaderLab:
Unity3D支持的Shader种类包括:
1.Surface Shader:表面着色器
2.Vertex & Fragment Shader :顶点片元着色器
3.Fixed Function Shader: 固定功能着色器
ShaderLab的基本结构:
Shader "Custom/test"
{
Properties
{ }
SubShader
{
pass{ } }
fallback
}
UnityShader的一些基本属性(properties)格式:
_Color("颜色",color)=(1,1,1,1)
SubShader的作用:
fallback的作用:
Unity内置的一些常见shader(用于fallback)以及说明:
Unlit:不发光,只是一个纹理。
VertexLit:顶点光照。
Diffuse:漫反射。
NormalMapped:法线贴图,比漫反射更昂贵(expensive):增加了一个或者多个纹理(法线贴图)和几个着色器结构。
Specular:高光,增加了特殊的高光计算。
Normal Mapped Specular:高光法线贴图,比高光更昂贵一点。
Parallax Normal Mapped:视差法线贴图计算
parallax Normal Mapped Specular:视察高光法线贴图
属性的定义和引用:
Shader "Custom/test"
{
Properties
{
_Color("颜色",color)=(1,1,1,1)
_Ambient("环境光",color)=(0.3,0.3,0.3,0.3)
_Specular("高光",color)=(1,1,1,1)
}
SubShader
{
pass{
//color(1,1,1,1)
//color[_Color]
material{
diffuse[_Color]//关键字漫反射
ambient[_Ambient]//关键字环境光
specular[_Specular]//关键字高光
}
lighting on//关键字光照开关
SeparateSpecular on//高光分离
} }
// fallback unlit;
}
Unity3D Shader 学习笔记(二):ShaderLab的结构和基本属性的更多相关文章
- muduo学习笔记(二)Reactor关键结构
目录 muduo学习笔记(二)Reactor关键结构 Reactor简述 什么是Reactor Reactor模型的优缺点 poll简述 poll使用样例 muduo Reactor关键结构 Chan ...
- C#学习笔记二:C#程序结构
从最简单的HelloWorld开始入手,这是一个最低限度的C#程序结构. C# Hello World 示例 一个C#程序主要由以下几部分组成: 命名空间声明 一个类 类方法 类属性 一个Main方法 ...
- Android Studio安卓学习笔记(二)Android项目结构
上一篇代码,我们学习了Android的功能以及如何用Android Studio开发第一个安卓程序.下面就要介绍Android项目结构.为日后学习打基础. 一:Android项目结构 打开MyFris ...
- Unity3D Shader 学习笔记(一):初识Shader
第一节:图形处理器简史 GPU发展简史 GPU英文全称Graphic Procssing Unit. T&L变换和光照流水线 可编程GPU GPU的优点和缺点 第二节:Unity Shader ...
- amazeui学习笔记二(进阶开发1)--项目结构structure
amazeui学习笔记二(进阶开发1)--项目结构structure 一.总结 1.项目结构:是说的amazeui在github上面的项目结构,二次开发amazeui用 二.项目结构structure ...
- Shader学习笔记
Shader学习笔记 例子: Shader "SrfShader1"{ //定义显示在Inspector中的变量,并从Inspector中获取值 Properties{ _Colo ...
- [Firefly引擎][学习笔记二][已完结]卡牌游戏开发模型的设计
源地址:http://bbs.9miao.com/thread-44603-1-1.html 在此补充一下Socket的验证机制:socket登陆验证.会采用session会话超时的机制做心跳接口验证 ...
- java之jvm学习笔记二(类装载器的体系结构)
java的class只在需要的时候才内转载入内存,并由java虚拟机的执行引擎来执行,而执行引擎从总的来说主要的执行方式分为四种, 第一种,一次性解释代码,也就是当字节码转载到内存后,每次需要都会重新 ...
- java之jvm学习笔记十三(jvm基本结构)
java之jvm学习笔记十三(jvm基本结构) 这一节,主要来学习jvm的基本结构,也就是概述.说是概述,内容很多,而且概念量也很大,不过关于概念方面,你不用担心,我完全有信心,让概念在你的脑子里变成 ...
随机推荐
- vs环境变量学习
1. 查看vs环境变量: 在项目设置中的任何路径.目录编辑项目下,右下角有个“宏”,点开即可见所有vs环境变量的当前设置...听说还有其它地方,没看到. 2.上边的“宏”,即是英文的vs环境变量 3. ...
- Gitflow 工作流简介
Gitflow工作流简介 Gitflow工作流通过为功能开发.发布准备和项目维护分配独立的分支,让发布迭代过程更流畅. Gitflow工作流定义了一个围绕项目发布的严格分支模型,它会相对复杂一点,但提 ...
- NPOI保存到服务器和导出到客户端
保存到服务器 <a class="easyui-linkbutton" href="javascript:void(0);" onclick=" ...
- virtualbox+vagrant学习-2(command cli)-25-Machine Readable Output
Machine Readable Output机器可读的输出 每个vagrant命令都接受一个--machine-readable的标志,它支持机器可读的输出模式.在这种模式下,终端的输出被机器友好的 ...
- select、poll 和epoll区别
阻塞 I/O(blocking IO) 当用户进程调用了recvfrom这个系统调用,kernel就开始了IO的第一个阶段:准备数据(对于网络IO来说,很多时候数据在一开始还没有到达.比如,还没有收到 ...
- Python之括号()[]{}
Python主要有三种数据类型:字典.列表.元组.其分别由花括号,中括号,小括号表示.如:字典:dic={'a':12,'b':34}列表:list=[1,2,3,4]元组:tup=(1,2,3,4)
- ios开发UI篇—UIScrollView属性及其代理方法
一.UIScrollView是什么? 1.UIScrollView是滚动的view,UIView本身不能滚动,子类UIScrollview拓展了滚动方面的功能. 2.UIScrollView是所有滚动 ...
- BUAA_OO第一单元总结性博客作业——表达式求导
一.程序设计思路 在我的三次作业中都采用了类的分层结构,采用逐项匹配,分层求导的思路. (一). 第一次作业中构建了Polynimial(多项式)类,在类的构造器中就完成了对非法空格的判断并对合法表达 ...
- MySQL-ALTER TABLE命令学习[20180503]
学习ALTER TABLE删除.添加和修改字段和类型 CREATE TABLE alter_tab01( id int, col01 char(20)) engin=I ...
- 通过脚手架创建Vue项目
第一步 准备工作 1.下载安装Node.js 验证是否安装的方法,在命令行输入node -v 2.安装Vue 在命令行输入npm install -g @vue/cli 查看Vue版本号 npm vu ...