逆熵3rd吧 关注:83,802贴子:2,332,312
  • 2回复贴,共1

水一贴关于lightmap的破事

取消只看楼主收藏回复

半夜发帖不易被插 现在正是好时候
贴吧很难排版,各位大佬凑合着看,勿喷。
Q:lightmap是什么?
A:光照贴图
Q:光照贴图有什么作用?
A:基于卡通渲染(shader)实现的原理,在简模上渲染模拟出来的阴影、高光来丰富模型效果。
Q:为什么发这篇教程
A:知识共享,帮助不知如何下手制作lightmap的mod作者也可以正确的绘制lightmap,让自己的作品达到更好的光影效果。
先科普入门知识,我们常见的普通的彩色图片大家都知道是由三种颜色组成,分别是R(红)、G(绿)、B(蓝)通道构成。在photoshop中每个颜色通道都是由0~255(部分软件是0~1,本帖内出现的255和1同表达白色,0代表黑色)的灰度图层来储存。灰度图层只能表达黑和白。


IP属地:吉林1楼2018-06-01 00:40回复
    游戏中有很多需要用到灰度贴图的地方,如果每个灰度贴图都单独保存成一张图片是资源浪费。比如我们看到的lightmap就是将三个灰度图分别储存在RGB三个通道。
    直接将lightmap赋给模型可以看到绿色蓝色 紫色 黑色,似懂非懂。这些都是表达什么的?又如何修改?

    将三个通道分别赋给模型,如图。

    这样看起来就比刚刚各种颜色混到一起的图片更好整理思路了,那我结合一些图片解答一下三个通道。
    ------------------------------------------------------------------------------
    R通道是光照贴图的高光贴图的mask层,
    皮肤和布料常理来说不会出现高光所以是黑色或者很接近黑色

    ---------------------------------------------------------------------------
    G通道是光照贴图中的阴影贴图 用于在面数很低的模型上表达丰富的阴影效果,如衣服的褶皱和假阴影,让模型更有层次感。

    G通道tips:阴影贴图中通常用三种灰度值,包括:大面积的底色、软阴影、死黑的阴影。表达三种不同的阴影效果
    大面积的底色:G通道的底色直接填充整个图层即可不需要绘制。(这也是为什么lightmap看起来一片绿的原因)
    阴影的扩散范围?阴影包裹范围?不知如何准确表达,不多废话,看腿!

    过于浅的底色会导致模型很平,没有正确的阴影描绘立体感,过于深的底色会导致模型被阴影覆盖的角度过大,很难看。
    软阴影:衣服褶皱、平整的模型上模拟细节(阴影表现颜色为材质文件中的First Shadow Mult Color控制)如图

    死黑的阴影:通常用于胯部、脖子与头接缝处等, 灰度值为0(阴影表现颜色为材质文件中的Second Shadow Mult Color 控制)

    --------------------------------------------------------------------------------------------------------------
    B通道用于辅助渲染高光(需要配合R通道,在模型旋转会出现扫光的效果,主要用于模拟金属质感或者比较光滑的效果)

    灰度值为0的地方不会出现扫光
    灰度值为0.5会有比较弱的扫光,以此类推
    灰度值为1的地方会出现明显扫光(或者说扫光更难以被阴影覆盖?)
    B通道tips:和R通道类似,皮肤、布料等不会出现高光的材质在此通道灰度也为0。
    想要正确的出现高光效果,B通道和R通道对应位置都要不为0的灰度,否则一个R通道对应位置是黑的,在B通道如何绘制高光,在游戏内都没法得到你要的高光效果。
    用语言简单总结一下三个通道
    R:哪里会出现高光?
    G:阴影的强弱是怎样?
    B:高光的强弱是怎样?


    IP属地:吉林6楼2018-06-01 01:02
    回复
      不知道这篇文章是否可以帮助各位更好的理解lightmap,至少能让无从下手的人尝试着开始画。
      以下分享一些零散的小知识
      如何单独保存lightmap单独的通道?
      图片导入Photoshop - 通道 - 选定某个颜色通道 - Ctrl+a 全选 - Ctrl+C 复制 - 选择图层 - 新建图层 - Ctrl+V粘贴 - 另存为即可
      绘制lightmap过程中如何选择正确的灰度颜色?
      可以直接吸取原lightmap对应通道中的对应颜色开始绘制,或者另找一个你认为阴影效果最好的角色的lightmap 吸取对应图层的对应灰度。
      皮肤和脸部有色差?
      找到脸部的贴图吸取颜色 重新填充body的皮肤颜色,在检查一下皮肤材质和面部材质的两个阴影颜色是否相同
      改了模型绑好骨骼导入进去依然是乱的?
      要严格按照原模型绑定骨骼的顺序与绑定的骨骼数量来绑定自己的模型。
      RPLC贴图是什么?
      目测是用于该角色的第二套配色方案用,配合shader + RPLC中的遮罩计算出第二套配色方案。(未确认)
      官方的shader中控制阴影高光信息的不仅是lightmap还有模型的顶点颜色,方便在引擎内直接绘制顶点颜色来微调高光或者阴影效果,会画顶点颜色的大佬可以以此方法快速的在引擎内微调。不会的或者不懂定点颜色的就忽略吧,好好画lightmap才是正确的出路。


      IP属地:吉林7楼2018-06-01 01:03
      回复