在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)和前面剪裁.后 ...
随机推荐
- 【转】在写一个iOS应用之前必须做的7件事(附相关资源)
转自:http://www.cocoachina.com/ios/20160316/15687.html 本文由CocoaChina--不再犹豫(tao200610704@126.com)翻译 作者: ...
- DataSet ,DataTable,DataRow 之间的关系与使用
关系 DataSet 包含多个DataTable,DataTable包含多行DataRow. 使用情况: 有时候GridView等控件需要将数据源动态绑定到DataSet中:将多个DataSe ...
- MVC项目发布IIS访问不了
首先在配置文件上加红色字体这个配置 用来打印错误信息,再根据错误信息来处理 <system.webServer> <validation validateIntegratedMode ...
- lnmp架构下php安全配置分享
目录[-] 1. 使用open_basedir限制虚拟主机跨目录访问 2. 禁用不安全PHP函数 3. 关注软件安全资讯 4. php用户只读 5. 关闭php错误日志 6. php上传分离 7. 关 ...
- C# List<T>转为 DataTable
// remove "this" if not on C# 3.0 / .NET 3.5 public static System.Data.DataTable ConvertTo ...
- 找两个string[ ]里不同的元素
方法 1:string[] strListOne = new string[] {"Type", "Parent Id","Status"} ...
- js获取当前的时间(包含星期)
<script type="text/javascript"> setInterval("www_zzje_net.innerHTML=new ...
- RMQ问题
关于RMQ的问题我就直接截取刘汝佳的<算法竞赛训练指南>上的解释了
- 转。webapp开发小tips
备忘 - Q: webapp点击一个按钮调用系统拨号: <a href="tel:12345654321">打电话给我</a> <a href=& ...
- DNS预获取(dns-prefetch)
今天翻看twitter的源码的时候看到了一下内容: <link rel=”dns-prefetch” href=”http://a0.twimg.com”/> <link rel=” ...