码迷,mamicode.com
首页 > 编程语言 > 详细

关于Unity中的光照(六)

时间:2017-07-29 19:36:42      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:属性   mask   type   sid   创建   数据   控制   游戏   背景   

反射探头

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

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

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

8.创建一个cube,设置为Lightmap 



关于Unity中的光照(六)

标签:属性   mask   type   sid   创建   数据   控制   游戏   背景   

原文地址:http://www.cnblogs.com/HangZhe/p/7257172.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!