记录一下Unity3D 关于lightmap,mipMap,normalmap,cubemap,以及Reflection Probe

————–lightMap
说到LightMap就涉及到一个光源类型的知识,光源类型有point Light,spot Light,direction Light,area Light,但是经常会看到一种光叫 indirection Light (间接光),在我理解看到,间接光其实就是光遇到物体后能发生反射效果,在unity中的光默认都不为间接光。我们可以使用lightMap去烘焙一个物体使射到它身上的光能够产生反射效果,这是一个Unity官方文档上的案例效果
那些有颜色的光其实就是一种贴图(LightMap)经过一定的计算贴在那个位置而已。但是它有一个缺点:烘焙后的光影效果就不会在改变了。所以它又出了一种新技术叫做 precomputer Realtime GI(预计算)。

it doesn’t just precompute how light bounces in the scene at the time it is built, but rather it precomputes all possible light bounces and encodes this information for use at runtime

与之前的 烘焙来说, 它就是动态的,它会计算所有可能的反射点然后把信息储存到一个集合中,因此它的性能消耗也是非常大的,手游基本带不动。
————–mipMap
mipMap从理解上来说就简单多了,它和LOD是很相似,LOD(Level of Detail)优化性能的技术,通过物体离相机的距离来渲染不同的Mesh以达到网格面数上的优化,LOD是在网格面数上做优化, 而mipMap是在贴图上做优化,不同距离使用不同像素的贴图来渲染以达到空间换时间。
———–normalMap
一张用于shader中的贴图(法线贴图),在2D贴图上加上一张法线贴图可以让整个模型变得更具有立体感。
———–cubeMap
立方体贴图,常用于天空盒的制作和环境的反射,通过六个面来描述周围的环境。
使用unity自带shader中的 skybox/6 sided 直接拖入六张贴图 或者 skybox/cubemap创建一个cubemap贴图(inspector/create/legacy)然后将cubemap拖入到shader面板上。

Preferred way of creating cubemaps is importing them from specially laid out textures. Select Cubemap texture import type and Unity should do the rest. Several commonly used cubemap layouts are supported (and in most cases detected automatically).

这里写链接内容
官方上还提供了一种方式来创建cubeMap,import texture, 美术做到资源然后导入资源后会自动在texture type 中显示cubeMap类型。
在我理解来看,unity反射的原理就是通过shader去获取到周围环境的点返回一个颜色值然后渲染到带制定shader材质的模型上,这需要自己去写一个shader。
reflection Probe是一个反射探头,它也是用于环境反射,但是他不需要我们手动写shader。具体原理:给物体加上该组件后,它会自动或者手动烘焙一块指定的区域,他会把它从环境中因反射接受到的信息存到一个cubeMap中,然后再把cubemap中的数据给烘焙过的static的物体。

猜你喜欢

转载自blog.csdn.net/wzjssssssssss/article/details/70432080
今日推荐