在Unity中使用Shader
1、Material 和 Shader 的关系。一个材质包括一个Shader程序。在Shader中设置的属性能够通过Material可视化设置
2、内建Shader,在5.0之后的版本号中大部分旧的Shader都集成在了Standard Shader中了,能够通过设置Standard Shader的属性达到不同的须要的渲染效果。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
Albedo:反光率
Specular:镜面反射
Smoothness:镜面反射的光滑度
NormalMap:法线贴图
为什么叫法线贴图。我们知道法线(Normal)是垂直于一个面的直线。通过计算光线与这条法线的角度就能够知道与面的角度。进而能够计算出面应得到的颜色值。如果我们知道物体每一个面的法线就能实现对这个物体进行光照渲染。可是一堵墙或许仅仅有四个顶点,也就是仅仅有一个面,它终于的渲染效果将会非常单一。如果这堵墙上有很多其它的砖的凹凸痕迹。我们增样实现仅用四个顶点渲染出立体感非常强,细节层次感非常强的这堵墙呢。使使用方法线贴图。 在法线贴图技术中,我们就是通过把墙面的每一个像素的法线存储在一张纹理中,渲染的时候依据每一个像素的法线确定他们的阴暗程度,而这张法线贴图是能够用photoshop软件从一张墙的纹理生成相应的法线贴图的。到此,熟悉法线贴图的朋友会对以上内容非常熟悉的。
HeightMap:高度图
Occlusion:贴图吸收
加入一个贴图之后设置吸收的系数
Emission:自发光贴图和颜色
3、创建自己定义Shader程序
l 创建一个Material
l 创建自己定义的Shader程序
l 为Material指定Shader程序(依据Shader文件内定义的名称查找)
l 将Material指定给GameObject查看效果
4、Shader程序的语法和规则
http://blog.csdn.net/zh13544539220/article/details/46925009
在Unity中使用Shader的更多相关文章
- 【unity shaders】:Unity中的Shader及其基本框架
shader和Material的基本关系 Shader(着色器)实际上就是一小段程序,它负责将输入的Mesh(网格)以指定的方式和输入的贴图或者颜色等组合作用,然后输出.绘图单元可以依据这个输出来将图 ...
- Unity中溶解shader的总结
在实际的游戏工程中,经常美术和策划会提出溶解的表现要求.比如子弹在飞行的时候,弹道不断的消融:角色受到大型炮弹的攻击,在击飞的时候不断的消融等等诸如此类的表现.一般的消融都是结合粒子系统来实现,通过给 ...
- Unity中Surface Shader执行过程
- 解读Unity中的CG编写Shader系列七(不透明度与混合)
转自http://www.itnose.net/detail/6098539.html 1.不透明度 当我们要将两个半透的纹理贴图到一个材质球上的时候就遇到混合的问题,由于前面的知识我们已经知道了片段 ...
- 解读Unity中的CG编写Shader系列三
转自http://www.itnose.net/detail/6096068.html 在上一个例子中,我们得到了由mesh组件传递的信息经过数学转换至合适的颜色区间以颜色的形式着色到物体上.这篇文章 ...
- Unity中的CG编写Shader系列(Blend)
1.不透明度 当我们要将两个半透的纹理贴图到一个材质球上的时候就遇到混合的问题,由于前面的知识我们已经知道了片段着色器以及后面的环节的主要工作是输出颜色与深度到帧缓存中,所以两个纹理在每个像素上的颜色 ...
- [转]解读Unity中的CG编写Shader系列6——不透明度与混合
1.不透明度当我们要将两个半透的纹理贴图到一个材质球上的时候就遇到混合的问题,由于前面的知识我们已经知道了片段着色器以及后面的环节的主要工作是输出颜色与深度到帧缓存中,所以两个纹理在每个像素上的颜色到 ...
- [转]解读Unity中的CG编写Shader系列3——表面剔除与剪裁模式
在上一个例子中,我们得到了由mesh组件传递的信息经过数学转换至合适的颜色区间以颜色的形式着色到物体上.这篇文章将要在此基础上研究片段的擦除(discarding fragments)和前面剪裁.后面 ...
- 解读Unity中的CG编写Shader系列3——表面剔除与剪裁模式
在上一个样例中,我们得到了由mesh组件传递的信息经过数学转换至合适的颜色区间以颜色的形式着色到物体上. 这篇文章将要在此基础上研究片段的擦除(discarding fragments)和前面剪裁.后 ...
随机推荐
- JavaScript的68个技巧一
1. 严格模式 在自己的项目中 你可以坚持只使用" 严格模式 " 或只使用" 非严格模式 "的策略.但如果你要编写健壮的代码应对各种各样的代码连接 你有两个可选 ...
- 【iOS开发之C语言】sprintf,strncpy,strcmp三个函数的区别
strncpy 这个函数用于将源字符串的内容拷贝到目标字符串,会覆盖掉目标字符串的之前内容 ] = "love"; char str2[] = "cool"; ...
- mybati的存储过程
这里我就以的存储过程为例,大家一起学习一下,
- Fragment的生命周期&同一Activity下不同Fragment之间的通信
Android开发:碎片Fragment完全解析(2) Fragment的生命周期 和Activity一样,Fragment也有自己的生命周期,理解Fragment的生命周期非常重要,我们通过代码的方 ...
- cocos2dx Sprite的多种创建方法
1.通过文件创建 Sprite *bg = Sprite::create("backGround.jpg"); 2.通过图片的某个区域创建 SpriteFrame *frame = ...
- 3种创建、调用JavaScript对象的方法
hey you guys,两个月没有写技术博客了.作为一名有理想.有抱负的程序员,两个月不写技术博客,真该打.业精于勤,荒于嬉.行成于思,毁于随.勤奋是必不可少的,今后养成一周至少一篇博客的习惯.好了 ...
- debian系(Ubuntu)安装jenkins(持续集成)
wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add - sudo sh -c 'ec ...
- IOS添加自定义字体库
1.将需要的字体库xxx.ttf添加到工程中,注意一定要在copy bundle resources中存在,如果没有添加上去 2.在info.plist 文件中添加 fonts provided by ...
- Python同时向控制台和文件输出日志logging的方法 Python logging模块详解
Python同时向控制台和文件输出日志logging的方法http://www.jb51.net/article/66756.htm 1 #-*- coding:utf-8 -*- 2 import ...
- Zepto源码笔记(三)
ps:本文中"组装成成数组"指的是若元素个数大于1则返回数组,若元素只有1个则返回元素本身 以下函数是$.fn该对象的方法 ready(callback) 通过readyRE正则表 ...