pmndrs / drei

🥉 useful helpers for react-three-fiber
https://docs.pmnd.rs/drei
MIT License
8.35k stars 698 forks source link

Edges don't work when negative scaling is used (works in Drei <=0.101.0) #2031

Open nene opened 3 months ago

nene commented 3 months ago

Problem description:

When using the following code to render a simple box with Edges applied:

function Box() {
  return (
    // Note the negative scaling
    <mesh position={[2, 0, 0]} rotation={[0.5, 0, 0]} scale={[-2, 2, 2]}>
      <boxGeometry args={[1, 1, 1]} />
      <Edges color="black" />
      <meshStandardMaterial color="orange" />
    </mesh>
  );
}

With Drei version 9.101.0, the edges are nicely rendered:

Screenshot 2024-07-16 at 13 46 23

With Drei version 9.102.0 and above, the edges no more show up:

Screenshot 2024-07-16 at 13 47 23

This only happens when negative scaling factor is used in the surrounding <mesh>.

Relevant code:

I created a repository that demonstrates this problem: https://github.com/nene/three-edges-react

Suggested solution:

Looks like there were major changes to Edges implementation in v9.102.0.

TK009 commented 2 months ago

I had the same problem and made a workaround fix with side={THREE.DoubleSide} prop.