Hello, I’m trying to do “mirror effect”, but i want to keep normals. Any ideas how i could do this? Here’s my code (React):
useEffect(() => {
const container: any = sceneRef.current!;
scene.background = new THREE.Color("#D8D8D8");
renderer.setSize(500, 500);
container.appendChild(renderer.domElement);
camera.position.z = -200;
camera.position.y = 300;
camera.position.x = 100;
const controls = new OrbitControls(camera, renderer.domElement);
controls.enableDamping = true;
function animate() {
requestAnimationFrame(animate);
controls.update();
renderer.render(scene, camera);
}
displayObject();
animate();
return () => {
container.removeChild(renderer.domElement);
};
}, [objSrc, isRaf]);
const displayObject = () => {
const light = new THREE.DirectionalLight(0xffffff, 1);
const loader = new OBJLoader();
loader.load(
objSrc!,
function (object: THREE.Group<THREE.Object3DEventMap>) {
if (isRaf) {
object.scale.x = -1;
}
scene.add(object);
scene.add(light);
}
);
};
const exportObj = () => {
const exporter = new OBJExporter();
const data = exporter.parse(scene);
const blob = new Blob([data], { type: "text/plain" });
const link = document.createElement("a");
link.href = URL.createObjectURL(blob);
const lafRaf = isRaf ? "RAF" : "Default_or_LAF_";
link.download = `${
lafRaf + "_" + (Math.random() * 1000000).toFixed(0)
}.obj`;
link.click();
};