Closed
Bug 937137
Opened 11 years ago
Closed 11 years ago
CSS animation/transform/translate/scale z-fighting
Categories
(Core :: Graphics, defect)
Core
Graphics
Tracking
()
RESOLVED
DUPLICATE
of bug 689498
People
(Reporter: milan, Unassigned)
References
()
Details
+++ This bug was initially created as a clone of Bug #927135 +++
From Ana Tudor (@thebabydino), who uses Firefox again but still runs demos during talks in Chrome. She says
"""
1. 3D. Example
http://codepen.io/thebabydino/pen/yehGi
The way elements are displayed on top of the other is not always
determined by the 3D positioning and I can't even find a pattern for this.
I guess animation in general, not just 3D. Gets obvious when taken to
the extreme with animating hundreds of things at the same time.
"""
Extracting the z-fighting issue into a separate bug, the original one covering the CPU usage.
Reporter | ||
Comment 1•11 years ago
|
||
Matt, your name popped up as somebody that could shine some light on this issue
Flags: needinfo?(matt.woodrow)
Comment 2•11 years ago
|
||
Yeah, this is because we don't have proper plane splitting.
We currently have an algorithm that tries to come up with a best guess about which order to draw the layers in, and gives up if it can't find a valid one.
When a bunch of planes get drawn really close together (as is the case when the cube is fully closed) then a bunch of the planes tend to intersect (usually just the very edge pixels overlap, maybe because of rounding/floating point errors).
Intersecting planes is something that there's no 'right' answer for without splitting, so we give up and guess an order. As you can see this order isn't always what we want :)
I could probably have another go at tuning the guess, but last time I did that I ended up regressing other examples :(
Flags: needinfo?(matt.woodrow)
Reporter | ||
Comment 3•11 years ago
|
||
In some cases, this looks like what the system z-fighting would look like, (two pyramid triangles matching "exactly" when the cube is closed), but in some cases it looks like it's a pyramid side and base that are fighting. That's still covered by the explanation?
On a side note, on my mac, this particular example only runs in Firefox.
Comment 4•11 years ago
|
||
Yeah, it's usually because a group of planes all intersect each other and form a cycle that we can't resolve. So we just arbitrarily pull one out to break it.
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → DUPLICATE
You need to log in
before you can comment on or make changes to this bug.
Description
•