关于Unity中的光照(五)
Mobile Diffuse
Unity自带的一种shader,用的比较多,性能还可以。我们默认创建的unit shader基本和它一致,但是没有参与光照计算,看起来和Mobile Diffuse有区别
1: 漫反射着色器, 最简单的3D着色模式;光照在物体上,漫反射就是原本是什么样的颜色,就显示什么样的颜色。
2: 模型顶点,到顶点的纹理坐标,到着色的时候选择纹理上的颜色着色;
3: 在光照之前,你把纹理本来的颜色着色上去,参与光照,漫反射部分;

Standard
Unity自带的一种shader,使用后要把Main Maps---->Albedo的颜色调到最亮,是一种比较自然的shader
1: 基于物理学的着色是用模拟现实的方式呈现出材质和灯光之间的相互作用, 基于物理学的着色器给用户营造出连续性。;
2: 为了表现出真实的灯光, 标准着色器模仿了能量存储(物体反射的光源不大于它接收的光源), Fresnel反射(视线不垂直于物体表面时夹角月小,反射越明显), 表面遮蔽;
3: Stander着色器的参数:
Rendering Mode: 四种渲染模式;
(1) Opaque模式:这种模式代表该着色器不支持透明通道, 物体是完全不透明的;
(2) Cutout模式:这种模式下支持透明通道,要么就透明,要么就完全不透明,图片内容是否透明,由Albedo的Alpha值和Alpha Cutoff决定的。适合制作叶子,草灯,带有透明通道的图片但不希望出半透明效果的材质;
(3) Fade模式: 褪色模式,改模式下可以操作Albedo的Color的Alpha值来操作材质的透明度,比较适合做物体渐渐淡出的动画效果, 当Alpha值降低了以后,表面的高光和反色也会变淡;(经常用于游戏中怪物死亡的时候淡出效果)

(4) Transparent模式: 这种模式下的材质通过Albedo的Color的Alpha值来操作材质的透明度,当物体为半透明的时候,表面的高光和反色不会变淡;
Albedo: 漫反射纹理图,也可以设置颜色和透明度, 纹理颜色 + 调和颜色;
Metallic: 金属性,值越高,发射效果越明显;
Smoothness:影响反射时表面的光滑程度,值越高,反射效果越清晰;
Specular: 高光。颜色可以自行设置;
Normal Map: 法线贴图;
使用:1.把法线的纹理贴图的Texture Type设置为Normal Map 2.在材质的Normal Map属性里选择法线纹理贴图

Height Map: 高度图, 通常是灰度图;
Occlusion: 环境遮罩贴图。
遮罩贴图,是一种模型的表面应该接受多少间接反射的图片,一个表面凹凸不平的物体,在其凹下的地方应该接受较少的间接光照,遮挡图是一张灰度图,白色表示完全的间接照明,黑色表示完全不接受间接照明;
使用:1.材质贴好纹理和设置好shader 2.把res下的lowpoly robot01DiffuseMap.png拖进材质的Occlusion属性中,看起来更加真实
遮罩前
遮罩后 
Emission: 自发光属性,开启后类是于一个光源,可以调节GI模式;
Detail Mask: 细节遮罩贴图。当某些地方不需要细节图,可以使用遮罩图进行设置。
Tiling: 贴图的重复次数;
Offset: 贴图的偏移量;
Secondary Maps: 二级细节贴图,可以让主贴图Main Map更加精细;
又叫Detail Map,材质的次级贴图,又叫细节贴图,它的作用是展示第一组贴图中没有显示的材质细节效果, Unity允许用户在一个材质上添加一个次级的漫反射贴图和法线贴图;

光探头
1:光照贴图都是应用于静态物体,如果一个非静态物体在烘培好的Lighting map的场景中移动,当它挡住某个物体的光照的时候,烘焙好的这个物体依然显示光,而这个非静态物体表面也没有光照,很突兀。
这样不能很好的融合到烘培好的场景中,最理想是实时计算,但是达不到理想的效果,针对这种提出光探头;
2: Light Probes 的原理是在场景中放上若干采样点,收集采样点的周围的光暗信息;然后在附近的几个点围城的区域内进行插值,将插值结果作用到动态物体上;
3: Light Probes应用细节:
(1)没有必要在光影无变化的区域内布置多个采样点;
(2)在动态物体的活动空间来进行部署,不必要全部空间都部署;
(3) 在我们的一个节点上,添加Light Probes Group组件,来进行部署光d探头
4: 在物体的Mesh Renderer组件下面的Light Probes表示是否接受光探头的影响
Light Probes 选项的3个:
off(关闭)
Blend Probes(默认)反射探针将被启用。
Use Proxy Volume(光照探头代理)(只要指定的光照探头才会有用)
光探头实例
1.创建Unity工程和文件目录
2.场景一个静态场景,加一个点光源

3.设置点光源光照模式为baked,要烘焙的静态物体为static,对静态物体进行烘焙
4.放进一个动态物体在点光源附近移动,发现很突兀

5.再创建一个空节点,放在点光源的中心,给空节点加一个探头组件Light Probes Group,这时候就发现原来的非静态物体的表面有了光照效果,但是光照强度不会随着距离的变化而变化

6.为了解决光的强度的变化,点击Light Probes Group的Edit Light Probes,再点击Add Probe,移动到距离非静态物体比较近的点,再点击Duplicate Selected

7.重复第6点,只要在不同的光强度区域布置光探头,这样非静态物体经过的时候就会显示不同强度的光照。

关于Unity中的光照(五)的更多相关文章
- 关于Unity中的光照(七)
全局光照 GI 这里所说的反射就是,一个红色的物体,当太阳照射它的时候,它周围的物体也会变得有点红. 1:Realtime每帧都会计算光照,实时光照是不会反射的,所以它的光影显得单调;2:Baked ...
- 关于Unity中的光照(六)
反射探头 1:镜子金属等具有光滑表面的物体都会反射,而游戏中计算实时反射非常消耗CPU的资源, unity5.0新增了一个反射探头的技术,通过采样点,生成反射Cubemap,然后通过特定的着色器从Cu ...
- 关于Unity中的光照(四)
渲染路径和颜色空间 1:Unity光影效果可以通过设置 渲染路径和颜色空间;2: 渲染路径: 光照到物体表面,物体着色的时候,算上光的颜色的时候有这么几种光照的着色方式,计算着色的方式 forward ...
- 关于Unity中的光照(三)
法线贴图 次时代游戏用的比较多 1:法线贴图是凹凸贴图技术上 的一种应用,有时也称为Dot3(仿立体)凹凸纹理贴图;2: 法线贴图是不增加多边形的情况下,增强模型的细节;3: 法线贴图是高精度模型导出 ...
- 关于Unity中的光照(二)
光源 1: 光照的本质:就是光的颜色和物体纹理的颜色的混合;2: 光源类型: 点光源,定向光源,聚光灯, 区域光源; 区域光的范围会在场景中用黄色的光显示出来; z轴是光的方向; 光的强度会随距离衰减 ...
- 关于Unity中的光照(一)
一.光源定义 光源,是一个普通节点加一个Light组件,创建的时候可以直接创建光源节点,也可以先创建一个空节点,再添加Light组件实例. 二.颜色形成 看到的物体颜色受两个很重要的因素的影响,一个是 ...
- 第五章 Unity中的基础光照(3)
目录 1. 在Unity Shader中实现高光反射光照模型 1.1 实践:逐顶点光照 1.2 逐像素光照 1.3 Blinn-Phong光照模型 2. 召唤神龙:使用Unity内置的函数 @ 1. ...
- 第五章 Unity中的基础光照(2)
目录 1. Unity中的环境光和自发光 2. 在UnityShader中实现漫反射光照模型 2.1 实践:逐顶点光照 2.2 实践:逐像素光照 2.3 半兰伯特模型 1. Unity中的环境光和自发 ...
- 第五章 Unity中的基础光照(1)
[TOC] 渲染总是围绕着一个基础问题:我们如何决定一个像素的颜色?从宏观上来说,渲染包括了两大部分:决定一个像素的可见性,决定这个像素上的光照计算.而光照模型用于决定在一个像素上进行怎样的光照计算. ...
随机推荐
- BNUOJ 34982 Beautiful Garden
BNUOJ 34982 Beautiful Garden 题目地址:BNUOJ 34982 题意: 看错题意纠结了好久... 在坐标轴上有一些树,如今要又一次排列这些树,使得相邻的树之间间距相等. ...
- Cowboy实例
这个例子主要是用cocos2d-x引擎自带的资源 cocos2d-x-2.2.2\samples\Cpp\TestCpp\Resources\armature 新建工程之后 #include &quo ...
- Java 的 I/O 类库的基本架构
Java 的 I/O 类库的基本架构 I/O 问题是任何编程语言都无法回避的问题,可以说 I/O 问题是整个人机交互的核心问题,因为 I/O 是机器获取和交换信息的主要渠道.在当今这个数据大爆炸时代, ...
- [Windows Azure] Building worker role A (email scheduler) for the Windows Azure Email Service application - 4 of 5.
Building worker role A (email scheduler) for the Windows Azure Email Service application - 4 of 5. T ...
- javascript基础拾遗(五)
1.什么是箭头函数 ES6引入的一种新的函数,类似匿名函数,x=>xx 箭头左端为函数参数,右端为函数体 相当于 function (x){ retutn xx } 2.箭头函数的特点 更简洁 ...
- 关于ddx/ddy重建法线在edge边沿上的artifacts问题
经验证,原来ddx/ddy这两个操作,在forward rendering与deferred rendering中存在着微妙的应用区别. 在forward rendering中,GPU shader会 ...
- Secure gRPC with TLS/SSL
摘自:http://bbengfort.github.io/programmer/2017/03/03/secure-grpc.html Secure gRPC with TLS/SSL 03 Mar ...
- 域控制器修改IP操作步骤
域控制器更改IP 在DC运维时,可能会碰上需要调整域控制器IP的情况,下面的操作就是在Windows Server 2008环境下域控制器更改IP的完整操作步骤. 1. 使用管理员帐号登录域控制器,依 ...
- 【转载】关于Java String, StringBuilder, StringBuffer, Hashtable, HashMap的面试题
REF: http://blog.csdn.net/fightforyourdream/article/details/15333405 题目是一道简单的小程序,像下面这样:[java] view p ...
- Kafka、RabbitMQ、RocketMQ消息中间件的对比 —— 消息发送性能
引言 分布式系统中,我们广泛运用消息中间件进行系统间的数据交换,便于异步解耦.现在开源的消息中间件有很多,前段时间我们自家的产品 RocketMQ (MetaQ的内核) 也顺利开源,得到大家的关注. ...