关于 mat0_c.jpg 风格的 PBR 材质贴图与 Noesis 加入 .mview 文件的问题解决

有些做设计的网友问,得到的模型贴图是 mat0_c.jpg 的,观察是 PBR 材质贴图

但是不知道哪个文件用在哪个通道,这里专门解答

 

1.首先这种贴图一般是Marmoset解包得到的贴图文件

一般可以直观的看出 _c 是漫反射(Albedo,BaseColor)贴图,如:mat0_c.jpg

带 _n 的是法线(Normals)贴图,如:mat0_n.jpg

不过如果想要确切的知道,哪个贴图文件属于哪个通道,就要把 scene.json 解压出来

 

2.查看 scene.json 配置的 Materials 材质段,以只有的一个默认(Default)材质的场景为例

"materials":[
{
"name":"Default",
"albedoTex":"mat0_c.jpg",
"reflectivityTex":"mat0_r.jpg",
"normalTex":"mat0_n.jpg",
"glossTex":"mat0_g.jpg",
"extrasTex":"mat0_s.jpg",
"blend":"none",
"alphaTest":0,
"fresnel":[1,1,1],
"horizonOcclude":1,
"horizonSmoothing":0,
"aoSecondaryUV":false,
"tangentOrthogonalize":true,
"tangentNormalize":true,
"tangentGenerateBitangent":false,
"useSkin":false,
"emissiveIntensity":4.760000228881835938,
"emissiveSecondaryUV":false,
"aniso":false,
"microfiber":false,
"refraction":false,
"extrasTexCoordRanges":{"emissiveTex":{"scaleBias":[0.484375,0.96875,0.0078125,0.015625]},"aoTex":{"scaleBias":[0.484375,0.96875,0.5078125,0.015625]}}
}
]

可以看出带 _r 的是反射(Reflectivity)材质贴图,带 _g 的是高光(Gloss)材质贴图

还有附带的材质 mat0_s.jpg 这是一个拼接起来的贴图,而且一般只使用其中一部分(估计是为了优化边沿)

其描述在 extrasTexCoordRanges 那一行,分别是 自发光(Emissive)和 环境光遮罩(Ambient Occlusion,AO)贴图

以及详细的坐标,分别是 宽,高,左,顶,均是比例值,1 代表图像尺寸的100%

 

3.关于 Noesis 读取本地 mview 文件崩溃

如果是数组越界,一般是由于打开的 mview 文件带有动画,而 Python 脚本没有对相关的文件类型做处理

解决方法是编辑 \noesis\plugins\python\fmt_artstation_mview.py 脚本文件

在 def extract(bs): 函数中的数组定义追加


    files["animData/mset"] = []
    files["keyframes/mset"] = []

即可,修改后的函数为

def extract(bs):
    files = {}
    files["image/derp"] = []
    files["application/json"] = []
    files["image/jpeg"] = []
    files["image/png"] = []
    files["model/mset"] = []
    # add "animData/mset" and "keyframes/mset" by [email protected]
    files["animData/mset"] = []
    files["keyframes/mset"] = []

    while not bs.checkEOF():
        name = bs.readString()
        ftype = bs.readString()
        c = bs.readUInt()
        d = bs.readUInt()
        e = bs.readUInt()
        bin = bs.readBytes(d)
        if c & 1:
            bin = decompress(bin, e)
        files[ftype].append({ "filename": name, "data": bin })
    return files

重新运行程序即可!

你可能感兴趣的:(noesis,mview,python,模型,PBR)