Artifact with Lathe Geometry and light

Hello, I’m new to the three js world and I’m doing a small project of a 3D printer that can print two types of objects (Extrusion and Revolution). For the revolution type I’m using LatheGeometry. I made a Path for every model I need. Here’s the code that creates the mesh

shape = Curves[GUIController.Revolution_Shape].getPath()
shapeGeometry = new THREE.LatheGeometry( shape.getPoints(), GUIController.Print_Steps, 0, 2*Math.PI );
shapeGeometry = THREE.BufferGeometryUtils.mergeVertices(shapeGeometry, 0.05)
shapeMaterial = new THREE.MeshPhongMaterial({
color: GUIController.Print_Color,
clippingPlanes: [this.clippingPlane],
flatShading: false,
const print = new THREE.Mesh(shapeGeometry, shapeMaterial)

And here’s an example of one curve

"A1": {
        getPath: () => {
            const path = new THREE.Path()
            return path
        type: "Rev"

Here’s the light of the scene

/Add Point Light
const pointLightColor = 0xFFFFFF
const pointLightIntensity = 0.75
const pointLight = new THREE.PointLight(pointLightColor, pointLightIntensity)
pointLight.position.set(0, 5, 0)

But, when the object is rendered it has a little artifact from where it started and ended the revolution

Does anyone knows what can be the cause? I tried not computing the vertexNormals and the artifact goes away but the lightning is all messed up. Been trying to fix this for a few days now and nothing worked

The vertices can’t be merged at the seam since uv-coordinates are different. It’s only possible to merge vertices if all vertex data equal.

1 Like