RobbeR
RobbeR

Reputation: 485

My object isn't reflects the light in Three.js

I have some CubeGeometry based mesh in a three.js scene, and all of them reflects the PointLight what I'm using globally. But one of them, which made by "hand" with just THREE.Geometry (add vertices and faces by code) is not reflected. Even it has no color, I only can set color for this, if I set a THREE.Color to "emissive" key on the MeshPhongMaterial.

The geometry made by a JS function dinamically. I'm using this litghs:

    pointLight = new THREE.PointLight(0xFFFEF0, 1, 100000)
    pointLight.position = camera.position;
    scene.add(
        pointLight
    );  

And I'm creating the mentioned mesh with this code:

        var floor = new THREE.Mesh(
            ShelfArchitect.Utils.getFloorGeometry(walls), 
            new THREE.MeshPhongMaterial(materialParams)
        );

I should add something on materialParams? Or what is the problem?

Upvotes: 3

Views: 1406

Answers (1)

WestLangley
WestLangley

Reputation: 104833

It sounds like the geometry made by "hand" is missing, or has incorrect, vertex normals.

You can do this:

geometry.computeFaceNormals();
geometry.computeVertexNormals();

Upvotes: 4

Related Questions