【问题标题】:Correlation between diffuse map and color for a material in three.jsThree.js中材质的漫反射贴图和颜色之间的相关性
【发布时间】:2016-11-04 09:54:12
【问题描述】:

在以下材料中:

var mat = new THREE.MeshLambertMaterial({'color': ..., 'map': ...});

在将颜色设置为地图的平均像素值与将颜色设置为白色与将其设置为黑色的情况下,颜色如何影响渲染结果。

文档说如果为材质设置了.map,材质的颜色会“调制”漫反射贴图。调制在这里究竟是什么意思?

【问题讨论】:

    标签: javascript three.js rendering


    【解决方案1】:

    这可以在standard three.js shaders的源代码中找到。在meshlambert_frag.glsl 中有行#include <map_fragment>#include <color_fragment>。这些 ShaderChunk 包含在 webgl 程序编译时处理。

    map_fragment.glslcolor_fragment.glsl 中,我可以看到,diffuseColor 在应用地图颜色后乘以color

    此外,浏览器的着色器编辑器扩展可用于查找您在 webgl 中运行的着色器的源代码。

    【讨论】:

    • 换句话说:例如红色(color: 0xff0000)将纹理(或map)变为红色,黑色您将只看到黑色,白色您将保留纹理/贴图的原始状态。我也为这个问题解释过:use-a-texture-and-a-color-on-a-cube-three-js
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 2016-08-27
    • 2020-01-26
    • 1970-01-01
    • 1970-01-01
    • 2019-05-30
    相关资源
    最近更新 更多