反射探头

1:镜子金属等具有光滑表面的物体都会反射,而游戏中计算实时反射非常消耗CPU的资源,
 unity5.0新增了一个反射探头的技术,通过采样点,生成反射Cubemap,然后通过特定的着色器从Cubemap中采样,就能显示反射效果了;
2: 反射探头的参数:
 type: 设置反射探头的类型(baked, custom, realtime)三种类型;custom也是烘焙的,但是可以自定义

  a:Baked烘培模式: 类似于光照烘培,把反射探头设置好后,将反射信息烘培到CubeMap中,当游戏运行的时候直接使用烘培好的CubeMap;
  b:Custom(自定义模式): 与Baked模式的探头的用法相同,需要手动烘培才能看到效果。Custom提供了更多的参数可以设置,如Dynamic Object,将非静态的物体烘培到发射图中,但是不会随着物体的移动而改变;CubeMap选项可以制定烘培出来的Cubemap;

   用Custom的baked烘焙的,可以不勾选cube的static,依然有反射纹理。步骤是先取消自动烘焙,再选择Relfection Probe组件的模式为custom,勾选Dynamic Object,拖进烘焙好的纹理ReflectionProbe-0.exr,点击baked。
  c:Realtime模式: 可以实时的更新反射图,在这种类型的反射头不需要将被反射的物体勾选为Static, 能实时, 但是性能要求高;

 Dynamic Object: 将场景中的没有标识为Static的对象烘培到发射纹理中;
 Cubemap: 烘培出来的立方体纹理图;
 Refresh Mode 刷新模式: OnAwake只在唤醒时刷新,EveryFrame 每帧刷新, Via Scripts 有脚本控制;
 Time slicing: 反射画面刷新频率: All face at once: 9帧完成一次刷新(中等) Individual Faces: 14帧完成刷新(性能消耗低) no time slicing: 每帧刷新(性能消耗最大);
 Importance: 权重,根据权重来混合不同Probe的反射情况;
 Intensity: 反射纹理的颜色亮度;
 Box Projection: 若是勾选此项, Probe的Size和Origin会影响反射贴图的映射方式;
 Size:该探头的区域大小,在该区域内所有的物体都会应用反射(需要Standard着色器);
 Probe Origin: 反射探头原点,会影响到捕捉到的Cubemap;
 HDR 生成Cubemap中是否使用高动态范围图像(High Dymainc Range)这也会影响探头的数据存储位置;
 Shadown Distance: 在反射图中的阴影距离,超过该距离阴影不会被反射;
 ClearFlags: 设置反射图中的背景是天空盒或者是单一的颜色;
 Background: 设置背景的颜色;
 Culling Mask: 反射剔除,决定哪些层的物体是否进行反射;
 Using Occlustion Culling: 烘培时,是否启动遮挡剔除;

 Clipping Plances: 反射的裁剪平面,有near, far两个个参数

位置大小

1:反射探头是由物体挂载 Relfection Probe来决定的,位置设置完毕后需要设置大小;
(1)根据需要反射物体的大小对探针进行摆放,场景的中心,墙壁的角落, 若有一些物体比较小又有强烈的视觉效果(比如篝火), 就需要探头距离它很近能得到很好的反射效果;
(2)放好探头后要设置探头的大小,探头的形状似一个轴对称的立方体,如果在立方体内有对应的着色器,其反射效果就会根据其所在的反射探头的区域进行显示。若有多个探头,根据权重进行混合;
(3)默认情况下探头的原点是几何中心,可以通过Probe Origin参数进行偏移,一个大的物体来反射一个从边缘接近他的点。

循环反射

1:循环反射: 两个物体可以都反射,那么就会形成循环反射 --- interReflection;
2: Unity不能无限循环下去,可以设置循环次数: window-->Lighting-->Environment Lighting Reflection Bounes来控制反射的次数, 最大反射次数为5次;

反射探头实例

1.创建Unity工程和文件目录

2.把天空盒资源文件夹拖到res下,在res下创建一个Materials文件,在里面创建一个天空盒材质叫Skybox

3.设置材质球Skybox的Shader---->Skybox---->6sided,把天空盒的6张纹理关联到Skybox材质

4.创建一个平面plane,调大这个plane的大小scaleX=100,scaleZ=100

5.创建一个空节点Ref_object,添加反射探头的组件Relfection Probe,设置Clear Flag为Skybox,有一个黄色的框框,在这个框框内的物体都会参与反射

6.为了看见反射的材质,创建一个材质球ref在Materials文件夹下,勾选允许反射Reflections,调一下Metallic到一半,Smoothness到最高

7.把ref材质关联到plane的材质属性上,整个平面像一个镜子。

8.创建一个cube,设置为Lightmap Static,Ref_object设置type为baked,把cube移动到Ref_object的黄色框框的范围里面,这时候就可以看见plane有一个cube的反射和一个cube的阴影,如果去掉cube的static,就看不见反射,因为是烘焙出来的,对象必须是static。

9.如果没有节点Ref_object,是不会反射cube到plane的,因为plane的材质是原本设定好的反射,是勾选Reflections造成的,不是动态的,这个节点的作用就是在它的黄色框框的范围内如果有物体,会把这个物体在plane上的反射纹理添加到plane材质上,可以看到plane材质球有变化。

转载于:https://www.cnblogs.com/HangZhe/p/7257172.html

关于Unity中的光照(六)相关推荐

  1. Unity中调整光照特效的7个技巧

    适当为游戏场景添加光照效果,能够有效增强场景氛围,让玩家体验更佳.今天将为大家分享在Unity中调整光照特效的7个技巧,让整个游戏场景氛围更引人入胜. 1.使用线性颜色空间 在为场景添加光照效果之前, ...

  2. unity技美34——解决unity中烘焙光照,同mesh同uv的模型烘焙光照时多出一张光照贴图的问题

    我们再开发中,经常会遇到需要烘焙场景光照的情况.但是尴尬的是,一个场景中你好几个物体用的都是一个贴图,但是不同mesh.或者是相同mesh.你都会如下图,多出一张光照贴图.正常unity开发的解决办法 ...

  3. [Render] 适用于高级Unity创作者的通用渲染管线[4] - URP中的光照

    RuntimeMapMaker3D-Pro 英文原文:https://resources.unity.com/games/introduction-universal-render-pipeline- ...

  4. Unity中Light Probe详解

    本文节选自洪流学堂公众号专栏<郑洪智的Unity2018课>,未经允许不可转载. 洪流学堂公众号回复光照探头,获取本文对应的视频实战教程. 洪流学堂,让你快人几步.你好,我是郑洪智. Un ...

  5. 在Unity中制作高质量的光照效果(上)

    原创: Unity Unity官方平台 本篇专家指南将介绍在Unity中制作高质量光照效果的多种高级方法,其中使用了2D和立方体贴图的光线遮罩,并且利用了Unity高清渲染管线HDRP中的高级着色器. ...

  6. 浅析Unity中的Enlighten与混合光照

    0x00 前言 在Unity的5.6版本之前的5.x中,主要使用了Geomerics公司的Enlighten[1]来提供实时全局照明以及烘焙全局照明,在5.6之后Unity引入了新的Lightmapp ...

  7. Unity Shader入门精要学习笔记 - 第6章 开始 Unity 中的基础光照

    转自冯乐乐的<Unity Shader入门精要> 通常来讲,我们要模拟真实的光照环境来生成一张图像,需要考虑3种物理现象. 首先,光线从光源中被发射出来. 然后,光线和场景中的一些物体相交 ...

  8. Unity HDRP中的光照烘焙测试(Mixed Lighing )和间接光

    部分内容摘抄自:https://www.cnblogs.com/murongxiaopifu/p/8553367.html 直接光和间接光 大家都知道在Unity中,我们可以在场景中布置方向光.点光. ...

  9. 【Unity Shader】(六) ------ 复杂的光照(上)

    笔者使用的是 Unity 2018.2.0f2 + VS2017,建议读者使用与 Unity 2018 相近的版本,避免一些因为版本不一致而出现的问题.              [Unity Sha ...

最新文章

  1. 绿色数据中心空调技术研讨会福州召开
  2. [欢迎加入]博客园.NET Compact Framework讨论组
  3. 分片提升容量难度大,时间长,故而Vitalik提出使用BCH或者ETC作为以太坊数据层
  4. HDU 1412 {A} + {B}
  5. 解决vuex页面刷新导致数据丢失问题
  6. 弹性服务器怎么上传文件,上传哪个文件夹弹性云服务器
  7. JZOJ 5438. 【NOIP2017提高A组集训10.31】Tree
  8. java设计一个程序后怎么测试_Java语言程序设计(第1阶段学习测试)(都平)
  9. Spring Boot 打的包为什么能直接运行?
  10. 微服务学习之Hystrix图形化DashBoard监控【Hoxton.SR1版】
  11. AutoCAD打印设置
  12. 未知USB设备(设备描述符请求失败)解决方法
  13. iOS开发app打包
  14. docker 安装Oracle12 (absolutapps/oracle-12c-ee )(无废话版)---------------(六)
  15. 房间类游戏后台框架(四)—游戏服务器
  16. 在英特尔独立显卡上部署YOLOv5 v7.0版实时实例分割模型
  17. 优化问题---最优性条件
  18. 有容乃大:楚庄王(第二篇
  19. 【python】——爬虫05 初级反爬笔记
  20. 浙江科技学院c语言考试试卷,浙江科技学院c语言-1-C试卷A.doc

热门文章

  1. 小x的质数(线性O(n)筛素数)
  2. 蓝桥杯 1427 买不到的数目 (模拟)
  3. std::shuffle-c++
  4. 【uva11019-Matrix Matcher】AC自动机+优化+记录
  5. 网络数据的XML解析
  6. C#异步编程的实现方式(4)——Task任务
  7. 卷首寄语:我们的今天,明天--致所有战斗在一线的同行们
  8. Java纸牌拖拉机简单模拟
  9. c++作业5 9.22
  10. 进fastreboot