Re: [3d-transforms] Behavior of intersecting layers with transform-style: preserve-3d is undefined and inconsistent across implementations

On Sat, Oct 8, 2011 at 5:23 AM, Chris Marrin <cmarrin@apple.com> wrote:

>
> 2. Whether 3d-transformed elements intersect with other elements (including
> each other and their parent element) in the absence of transform-style:
> preserve-3d. Current Safari behavior is that they do, but an alternative
> proposal would be that they do not, and that 3D transforms are simply a
> painting effect (in other words they'd behave just like 2D transforms).
> However, we'd have to decide whether 3D-transformed elements continue to
> paint in document order, or whether front-to-back order is affected by
> position on the z-axis. If the latter, then you either have to depth-sort by
> some arbitrary point (like the element center point), or you have to buy
> into allowing intersection.
>
>
> Seems reasonable to let flattened layer behave like 2D, and leave the
> preservation of 3D rendering and picking order to the preserves-3d case.
>

This is what Gecko does.

I agree that the rendering of intersecting elements should be normatively
defined. Rather than specify Newell's algorithm I think we can just specify
that for each point in the viewport, the elements are rendered ordered by
the z-position of each  element at that point, using the DOM order to break
ties. Various algorithms can be used to approximate that.

Maybe we should have a note in the spec pointing out that implementation
difficulties mean that in practice, browsers will not be able to produce the
ideal rendering in all cases.

Rob
-- 
"If we claim to be without sin, we deceive ourselves and the truth is not in
us. If we confess our sins, he is faithful and just and will forgive us our
sins and purify us from all unrighteousness. If we claim we have not sinned,
we make him out to be a liar and his word is not in us." [1 John 1:8-10]

Received on Thursday, 20 October 2011 02:11:56 UTC