-
Creator 版本:3.8.2
-
目标平台: 小游戏
贴图格式为 JPG
在3dsmax中的状态

大cocos creator中的状态

贴图的状态

Creator 版本:3.8.2
目标平台: 小游戏
贴图格式为 JPG
在3dsmax中的状态

大cocos creator中的状态

贴图的状态

选择lDR试试看效果
感谢回答. 另外还想再请教一个问题. 比如. 我在3dsmax中烘焙的 lightmap, 要使用什么材质类型并把 这个 lightmap 放在什么贴图通道上. 可以在专稿cocos creator中时, 自动的将 lightmap 放到 occlusion map 上呢?

我现在是放在了 Emissive map上, 导入到cocos creator中后, 还需要手动的把这个lightmap放到Occlustion上面. 比较麻烦.
dcc工具导出的模型材质,creator自动做了适配了吧,你图中是自己用了butin-standard材质吧,其实creator里面也是可以烘培光照贴图的
cocos creator不熟练. 所以公司三维人员习惯使用3dsmax 进行烘焙, 你说的 dcc 工具是什么? 我在文档中没有找到导出FBX时. 贴图通道的对照关系. 这个有什么文档中有写吗?

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

这是单独的提问贴.
如何使用编辑器扩展脚本修改material属性并保存 - Creator 3.x - Cocos中文社区
如果使用扩展脚本的方式无法实现, 那使用正常的运行时脚本是否可以实现呢?
就是如何修改 material 实现上面的需求?
你要的是这个吧自定义配置
我试一下, 不过我的 “项目设置” 里怎么没有这个选项呀?

哦,我用的社区正在测试的3.8.3,我也不确定是不是你要的可以试试,看起来是 
谢谢, 我用的是3.8.2 可能还没有这个设置吧. 看着跟我的需求有点相像. 感谢指导 .
我现在暂时使用 脚本写一个贴图通过切换的功能. 在运行时进行贴图通道的自动替换 .
(使用扩展脚本修改材质属性的方法还没有找到, 如果可以使用扩展脚本去实现, 应该会更加优雅
)
/**
* 处理从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)
}
})
}