导入的贴图出现 "焦糊" 要如何处理

  • Creator 版本:3.8.2

  • 目标平台: 小游戏

贴图格式为 JPG

在3dsmax中的状态
image

大cocos creator中的状态
image

贴图的状态
image

image 选择lDR试试看效果

1赞

感谢回答. 另外还想再请教一个问题. 比如. 我在3dsmax中烘焙的 lightmap, 要使用什么材质类型并把 这个 lightmap 放在什么贴图通道上. 可以在专稿cocos creator中时, 自动的将 lightmap 放到 occlusion map 上呢?
image
我现在是放在了 Emissive map上, 导入到cocos creator中后, 还需要手动的把这个lightmap放到Occlustion上面. 比较麻烦.

dcc工具导出的模型材质,creator自动做了适配了吧,你图中是自己用了butin-standard材质吧,其实creator里面也是可以烘培光照贴图的image

cocos creator不熟练. 所以公司三维人员习惯使用3dsmax 进行烘焙, 你说的 dcc 工具是什么? 我在文档中没有找到导出FBX时. 贴图通道的对照关系. 这个有什么文档中有写吗?

image

你好, 我现在想使用, 编辑器扩展脚本. 去修改 material, 我在导出FBX时, 将lightmap放在 glossiness map上面. 然后在导入cocos creator时, 使用扩展脚本. 将 glossiness map 转移动 occlusion map 上面
感觉这个需求实现应该挺简单的. 但找了半天还是没有找到要如何实现.
可以给出一个实现的思路吗? 谢谢

导入的FBX, 只支持如下贴图:
image

这是单独的提问贴.
如何使用编辑器扩展脚本修改material属性并保存 - Creator 3.x - Cocos中文社区

如果使用扩展脚本的方式无法实现, 那使用正常的运行时脚本是否可以实现呢?
就是如何修改 material 实现上面的需求?

image 你要的是这个吧自定义配置

我试一下, 不过我的 “项目设置” 里怎么没有这个选项呀?
image

哦,我用的社区正在测试的3.8.3,我也不确定是不是你要的可以试试,看起来是 :joy:

谢谢, 我用的是3.8.2 可能还没有这个设置吧. 看着跟我的需求有点相像. 感谢指导 .
我现在暂时使用 脚本写一个贴图通过切换的功能. 在运行时进行贴图通道的自动替换 .
(使用扩展脚本修改材质属性的方法还没有找到, 如果可以使用扩展脚本去实现, 应该会更加优雅 :grinning:)

/**
 * 处理从3dsMax中导出的FBX, 将Lightmap贴图从GlossinessMap转到 occlusionMap 上
 * 因为FBX没有对应的lightmap贴图通过, 所以放在了 GlossinessMap 上
 */
export function fbxLightmap(node: Node) {
    const mr = node.getComponent(MeshRenderer);

    if (!mr?.sharedMaterials) {
        return
    }
    
    mr.sharedMaterials.forEach((mtl, index) => {
        if (mtl._defines[0]['USE_SHININESS_MAP']) {
            mtl.setProperty('occlusionMap', mtl.getProperty('shininessExponentMap'))
            mtl.setProperty('shininessExponentMap', null)

            mtl._defines[0]['HAS_SECOND_UV'] = true;
            mtl._defines[0]['OCCLUSION_UV'] = "v_uv1";
            mtl._defines[0]['USE_SHININESS_MAP'] = false;
            mtl._defines[0]['USE_OCCLUSION_MAP'] = true;

            mr.setSharedMaterial(mtl, index)
        }
    })
    
}