Three.js - Probleme beim Glätten der Schattierung eines Lambert-Materials auf einer benutzerdefinierten Geometrie

Ich habe in Three.js eine benutzerdefinierte Geometrie erstellt. Jetzt möchte ich ein Netz erstellen, das ein glatt schattiertes Lambert-Material verwendet. Mit einer Schleife habe ich das Array von Scheitelpunkten erstellt, dann Gesichter und danach habe ich aufgerufen

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

var colorMaterial =  new THREE.MeshLambertMaterial( {color: 0x0000ff, side: THREE.DoubleSide} );
var mesh = new THREE.Mesh( geometry, colorMaterial );
scene.add(mesh);

Das Ergebnis ist nahezu perfekt, außer dass es so aussieht, als würde das Material verwendetshading: THREE.FlatShading wie unten gezeigt:

während ich das Standardaussehen erwartete, erwartete man normalerweise mitshading: THREE.SmoothShading. Was muss ich hinzufügen / ändern, um eine gleichmäßige Lambert-Schattierung zu erhalten?

(Wenn es hilft, finden Sie ein vollständiges Live - Beispiel unterhttp://stemkoski.github.io/Three.js/Marching-Cubes.html und die Geometrie und das Netz werden um die Linien 250-280 erstellt.)

Antworten auf die Frage(1)

Ihre Antwort auf die Frage