法线贴图
法线贴图是比较常用的一种贴图,作用是使一些面数比较少的模型的纹理更加的精致和逼真。这样在大幅度减少了运行的性能消耗,也能达到比较好的游戏画面。unity3d中有比较简单的法线贴图,就是看起来与3D效果无异的2D贴图。如果做3D模型的话,就会浪费显示芯片,使游戏性能下降,便会用法线贴图,既不影响玩家体验游戏又不影响游戏性能.
下面让我们一制作一张简单逼真的纹理贴图,让它作用在一个游戏对象上。
效果图
第一首先在Project栏里面创建一个TextPicture文件夹来放置图片,我在网上找的一张砖头的图片,鼠标拖入项目Assets/Texture文件夹中。多复制一张,修改TextType属性
TextType是纹理的类型
Default:纹理
Normal map:法线贴图
Editor GUI and Legacy GUI:编辑器GUI和传统GUI。Sprite(2D and UI):精灵,用于2D对象和UGUI贴图。
Cursor:自定义光标。
Cookie:场景光的Cookie。
Lightmap:光照贴图,将贴图编码成特定的格式,并对纹理数据进行后处理。
SingleChannel:单通道。
选择Normal Map,
Create from Grayscale勾上
Create from Grayscale:从灰度高度图(Heightmap)创建。
有两个属性可以调节
Bumpiness:崎岖度。
Filtering:滤波算法。
1.Smooth:平滑,标准前向差分算法。
2.Sharp:尖锐,Sobel滤波器。
崎岖度根据需要,自由调节,滤波算法,我们选择尖锐Sharp
选择完后,记得点击Apply。
第二步,制作Metrial。创建一个Metrial文件夹,在里面创建一个Metrial。点击Project的Create来创建
Material里面最重要的是Shader,Shader(着色器):Shader负责将输入的Mesh(网格)以指定的方式和输入的贴图或者颜色等组合作用,然后输出。绘图单元可以依据这个输出来将图像绘制到屏幕上。
材质(Meterial):将输入的贴图或者颜色,加上对应的Shader,以及对Shader的特定的参数设置,将这些打包在一起就是一个材质了。我们便可以将材质赋予合适的renderer(渲染器)来进行渲染。
单击Meterial的Inspecter面板,在Albedo属性上选择多复制的那张正常图片,然后在Normal Map上选择制作好的法线贴图。一个带有法线贴图的Meteral做好了,重命名wall.
第三步,新建一个cude,把我们建好的材质包鼠标托上去就建好了。
光线烘培
当我们进行游戏时,有些场面避免不了使用大量灯光渲染。大量的灯光渲染对于计算机来说无疑是个负担,为了尽量节省计算机的显卡资源,对于一些静态的不动的物体,可以采用烘培的方法,把灯光的效果,制作成游戏物体纹理的一部分,这样即使没有灯光的渲染。该游戏物品也会呈现一样的视觉效果。烘培非常的常见,请注意需要烘培的的游戏物品一定时静止的。
下面做一个实例
第一步 在场景中创键一个cude和一个plane,为了效果更佳,把直射光源的强度稍微调小一点。
第二步、把所有要渲染的游戏对象全选,在Inspecto面板里面单击Static选项,选择Lightmap static。
创建一个点光源做为要渲染的的光源,为了着重看出效果。我把光源的颜色改成紫色。在实际的需求中,大家可以根据自己的需求进行改变。将需要烘焙的光源的Mode模式改为Baked
第三步、选择菜单栏的window选项里面的Lighting的Settings面板,在Object Maps选项中讲勾选的Auto Generate按钮去掉后,单击Generate Lighting按钮。场景就在烘焙中,右下角会出现进度条,当进度条完成后。烘培完成。完成烘焙后,即使删掉了光源,游戏物品依然具有之前的纹理。
最后完成。神奇的一幕来了,把目标光源删除掉后,纹理依旧