【问题标题】:How to change gltf material to cartoon material?如何将gltf素材转换为卡通素材?
【发布时间】:2021-08-14 21:39:06
【问题描述】:

我不熟悉three.js 和shader。我从 C4d 导出带有纹理的 gltf 龙模型,并将其加载到 three.js 中的 meshstandard 材料中。我想把它们变成卡通素材。有了模型描边,我就可以像这样遍历gltf材质了

mesh.traverse((node: any) => {
    let newMat = new THREE.ShaderMaterial({
        uniforms: {
        },
        vertexShader: vertexShader,
        fragmentShader: fragmentShader,
    });

    node.material = newMat
});

我找到了一个卡通渲染教程https://blog.csdn.net/weixin_37683659/article/details/79953500

但是我还是不知道怎么组合这个

【问题讨论】:

    标签: three.js shader gltf


    【解决方案1】:

    当图书馆已经为您提供MeshToonMaterial 时,我不确定您为什么要使用ShaderMaterial。 ShaderMaterial 非常先进,需要您编写自己的自定义着色器。你可能想要这样简单的东西:

    mesh.traverse((node: any) => {
        let newMat = new THREE.MeshToonMaterial(parameters);
        node.material = newMat
    });
    

    要查看您可以使用哪些参数,visit the docs for ToonMaterial

    【讨论】:

    • 谢谢,但是有什么方法可以将meshstandardmaterial 转换为meshtoonmaterial 吗?节点。材质为meshstandardmaterial,包含很多参数
    • 没有内置方法可以将一种转换为另一种。您可以从一种中提取属性并将其分配给另一种,例如newMat.color = oldMat.color,但标准材质具有 Toon 缺乏的太多属性,例如粗糙度、金属度、envMap 等,因此无法将一种“转换”为另一种.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-26
    • 2018-01-15
    • 2021-05-13
    • 2021-04-05
    • 2019-11-01
    • 2019-12-13
    • 2022-09-29
    相关资源
    最近更新 更多