Re: [css-shaders] subdivision for transparency

On Oct 4, 2011, at 1:13 PM, Dean Jackson wrote:

> 
> On 04/10/2011, at 3:04 PM, James Robinson wrote:
> 
>> I think saying that this behavior for CSS 3D transforms less-than-well-defined is a bit of an understatement.  The question is completely ignored by the CSS 3D transforms spec and implementations have imperfectly reverse-engineered each other.  Since CSS 3D transforms can only manipulate quads we've been able to sort-of skate by with this behavior being unspecified. but if we expect to have more complex geometries (which is a key motivation for having filters on vertices) then I think we have to actually specify a behavior or this will just be a giant mess.
>> 
>> * What is the behavior of the Z coordinate of gl_Position in my vertex shader if the element being filtered shared a transform-style: preserve-3d ancestor with another element that has a Z transform set?
>> * What is the behavior for two elements that set different Z coordinates that share a transform-style: preserve-3d ancestors?
>> 
>> Without answering this question in some concrete form I think the proposal is really hard to evaluate.
> 
> These are good questions, even without filters. James or Gregg, could you write them up (with the subdivision one) and send them to public-fx with [3d transforms] in the subject. I bet you have other similar questions that came up in your implementation too!
> 
> As for filters, I was really hoping that we'd be able to specify them as purely a 2d effect - as in whatever is composited in the end is a quad, not a mesh, even if the filter itself uses a mesh. If you move the contents of the filtered element then you're going to make it hard for people to click on links. Similarly, if you set opacity to 0.001 you make it hard for people to see the links. If I blur an element using a large stdDev, does it's clickable area grow? What happens if you blur an element with two <a> children side by side? This is why I think we always need to work on the original coordinates.
> 
> Another reason why filters should always end up as a quad is that otherwise masking becomes weird. Where is the mask in the 3d world? We can't run that through the shader.
> 
> I also suggest that any filter effect immediately flattens its children (even if preserve-3d is set).

I just want to get this clear. You're saying that if an element has both a filter property and transform-style:preserves-3d set, then the filter property wins? If so, that sounds reasonable.

-----
~Chris
cmarrin@apple.com

Received on Thursday, 6 October 2011 17:06:46 UTC