# How could I use the latest version of Three.js to achieve the effects of old version?

I used Three.js-REVISION49 to create a 3D visualization program, however I have to update it to use the latest version of Three.js. After I updated it, I find the rendering result turns out to be different to the previous one. I want the previous rendering result while keep the latest version of Three.js. So how could I solve this problem? Can anybody gives me some suggestions?
previous one:

latest one:

Without sharing code or better a live example that demonstrates the different renderings, it won’t be possible to provide useful feedback.

1 Like

Thank you for your kind reminder! Then I would like to add more details towards this problem. The core codes are shown below, where p1 and p2 are arrays which store some vertices’ 3D coordinates that constructs the structure of the strips. I think there is no need to show them to you and you don’t need to figure out how does the below code modified them before put them into the “geo.vertices” variable as well, in order to solve problems, for these are all cheminformatics issues, I don’t know it either, for the codes are not created by myself, I just copy them and transfer them to my project, the code work well in Three.js 49 version, but my project is written in the latest version, so I didn’t achievemy wishing expectation. The difference displayed by pictures shown in my first post.
var geo = new THREE.Geometry();
var vs = geo.vertices, fs = geo.faces;
var axis, p1v, p2v, a1v, a2v;
for (i = 0, lim = p1.length; i < lim; i++) {
vs.push(p1v = p1[i]); // 0
vs.push(p1v); // 1
vs.push(p2v = p2[i]); // 2
vs.push(p2v); // 3
if (i < lim - 1) {
var toNext = p1[i + 1].clone().subSelf(p1[i]);
var toSide = p2[i].clone().subSelf(p1[i]);
axis = toSide.crossSelf(toNext).normalize().multiplyScalar(thickness);
}
vs.push(a1v); // 5
vs.push(a2v); // 7
}
var faces = [[0, 2, -6, -8], [-4, -2, 6, 4], [7, 3, -5, -1], [-3, -7, 1, 5]];
for (i = 1, lim = p1.length; i < lim; i++) {
var offset = 8 * i, color = new THERE.Color(colors[Math.round((i - 1)/ div)]);
for (j = 0; j < 4; j++) {
var f = new THREE.Face4(offset + faces[j], offset + faces[j], offset + faces[j], offset + faces[j], undefined, color);
fs.push(f);
}
}
var vsize = vs.length - 8; // Cap
for (i = 0; i < 4; i++) {vs.push(vs[i * 2]); vs.push(vs[vsize + i * 2])};
vsize += 8;
fs.push(new THREE.Face4(vsize, vsize + 2, vsize + 6, vsize + 4, undefined, fs.color));
fs.push(new THREE.Face4(vsize + 1, vsize + 5, vsize + 7, vsize + 3, undefined, fs[fs.length - 3].color));
geo.computeFaceNormals();
geo.computeVertexNormals(false);
var material = new THREE.MeshLambertMaterial();
material.vertexColors = THREE.FaceColors;
var mesh = new THREE.Mesh(geo, material);
mesh.doubleSided = true;
var group = THREE.Object3D;
var scene = new THREE.Scene();
var directionalLight = new THREE.DirectionalLight(0xFFFFFF);
directionalLight.position = new TV3(0.2, 0.2, -1).normalize();
directionalLight.intensity = 1.2;