【问题标题】:Change/specify the dark color, so unlit areas have a specific color更改/指定深色,使未亮区域具有特定颜色
【发布时间】:2014-01-08 23:55:10
【问题描述】:

three.js 中是否有一种简单的方法可以为“dark”指定颜色?也就是说,在有光的场景中,物体的颜色会逐渐变为黑色。我想要的是让它们褪色成不同的颜色。我想指定“未点亮”的颜色是什么。在这种特殊情况下,我使用的是 MeshPhongMaterial。


Answer:在目前的three.js版本中没有办法做到这一点。我选择了一个带有可能解决方法的答案。

【问题讨论】:

    标签: three.js


    【解决方案1】:

    它被称为环境光。

    scene.add( new THREE.AmbientLight( 0x222222 ) );
    

    构造函数的参数是灯光的颜色。

    使用MeshPhongMaterial时,还建议设置材质的环境反射率以匹配材质的漫反射率,也称为color

    material.color.set( 0xff0000 );
    material.ambient.set( 0xff0000 );
    

    如果您遵循此建议,您的场景应该看起来不错。

    three.js r.64

    【讨论】:

    • 我正在使用环境光,但它并没有真正做到我想要的。它增加了现有的颜色,也可以调暗(至少在闪亮的 Phong 材料上)。这更像是我希望一种特定的颜色成为材料上的“最小”颜色。
    • 如果您想要一个“最小”颜色而不考虑场景中的灯光,您可以指定material.emissive,这会使对象“发光”。一切都是相加的,所以它也会影响被照亮的面的颜色。将任何灯设置为白色以外的颜色也可以为您提供一些灵活性。你也可以自己写ShaderMaterial,实现你想要的任何东西。
    猜你喜欢
    • 1970-01-01
    • 2021-04-30
    • 1970-01-01
    • 1970-01-01
    • 2015-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-16
    相关资源
    最近更新 更多