- From: Rik Cabanier <cabanier@adobe.com>
- Date: Fri, 3 Aug 2012 10:50:10 -0700
- To: Leonard Rosenthol <lrosenth@adobe.com>, Nikos Andronikos <nikos.andronikos@cisra.canon.com.au>, "public-svg-wg@w3.org" <public-svg-wg@w3.org>
> For PDF, there is no group opacity - except at the XObject level. Ah, I think that is where the disconnect comes from. We've been talking about how to handle groups. In HTML, a group is a stacking context In SVG, every <g> is a group In PDF, a group is a transparency group (=XObject) . > For SVG, I think that having a non-0 or 1 value of opacity > on a group would very clearly force it into isolated. This will give unexpected results since adding a <g> with 99.99999% opacity might render very different than with 100% opacity You probably mean: > So maybe that's the approach. Default is NON-isolated UNLESS there is a group > opacity or a filter, and then it shall be considered as isolated. Group opacity should not create isolation. That is not the correct model (and it doesn't help) I am unsure what should happen with filters, but it seems undesirable that the content changes appearance if you apply a filter. Rik > -----Original Message----- > From: Leonard Rosenthol > Sent: Friday, August 03, 2012 10:33 AM > To: Rik Cabanier; Nikos Andronikos; public-svg-wg@w3.org > Subject: RE: SVG 2 rendering model > > For PDF, there is no group opacity - except at the XObject level. And in that > case, it's not uncommon to handle the XObject as a separate "thing" (buffer, > display list, etc.). For SVG, I think that having a non-0 or 1 value of opacity > on a group would very clearly force it into isolated. Same as has been > discussed with filters. > > So maybe that's the approach. Default is isolated UNLESS there is a group > opacity or a filter, and then it shall be considered as isolated. > > Leonard > > -----Original Message----- > From: Rik Cabanier > Sent: Friday, August 03, 2012 12:59 PM > To: Leonard Rosenthol; Nikos Andronikos; public-svg-wg@w3.org > Subject: RE: SVG 2 rendering model > > How would you implement group opacity on a non-isolated group without a > buffer? > > I agree that if you have a non-isolated group with default parameters, you > could optimize it away since it's not supposed to do anything. > > Rik > > > -----Original Message----- > > From: Leonard Rosenthol > > Sent: Friday, August 03, 2012 5:48 AM > > To: Rik Cabanier; Nikos Andronikos; public-svg-wg@w3.org > > Subject: RE: SVG 2 rendering model > > > > Based on the text you copied, there is actually NOTHING in the spec > > that requires a specific implementation in the case of a non-isolated > > group. It simply requires that certain things have to take place in a > > certain order. I agree with that. > > > > Consider the "buffer" in this case to be the full page output and > > non-isolated groups can be composited directly into that buffer. It > > represents both the group backdrop as well as the immediate backdrop, > > since if you only draw to it, it is " the result of compositing all > > elements up to but not including the first element in the group". Right? > > > > The size of the group only matter for isolated (or potentially > > knockout) groups, since in those cases, you have no choice but to use > > a separate "buffer". > > > > Leonard > > > > -----Original Message----- > > From: Rik Cabanier > > Sent: Thursday, August 02, 2012 11:21 PM > > To: Leonard Rosenthol; Nikos Andronikos; public-svg-wg@w3.org > > Subject: RE: SVG 2 rendering model > > > > No, a buffer is always required. > > From the pdf spec: > > > > From the perspective of a particular element in a nested group, there > > are three different backdrops of interest: > > *The group backdrop is the result of compositing all elements up to > > but not including the first element in the group. (This definition is > > altered if the parent group is a knockout group; see 11.4.6, "Knockout > > Groups") *The initial backdrop is a backdrop that is selected for > > compositing the group's first element. This is either the same as the > > group backdrop (for a non-isolated > > group) or a fully transparent backdrop (for an isolated group). > > *The immediate backdrop is the result of compositing all elements in > > the group up to but not including the current element. > > When all elements in a group have been composited, the result shall be > > treated as if the group were a single object, which shall then be > > composited with the group backdrop > > > > So, according to the PDF spec, the buffer is initialized with the > > backdrop of the group which is the " the result of compositing all > > elements up to but not including the first element in the group " > > In the case of HTML and Flash, the size of this buffer is calculated > > automatically. In PDF, it is given as the bbox parameter in the > > transparency group. From the PDF spec: > > > > If the transparency group is non-isolated (the value of the I entry in > > its group attributes dictionary is false), its initial backdrop, > > within the bounding box specified by the XObject's BBox entry, shall > > be defined to be the accumulated colour and alpha of the parent group > > or page-that is, the result of everything that has been painted in the > parent up to that point. > > > > Also, if there is no buffer, how could you implement group opacity? > > > > > -----Original Message----- > > > From: Leonard Rosenthol > > > Sent: Thursday, August 02, 2012 5:54 PM > > > To: Rik Cabanier; Nikos Andronikos; public-svg-wg@w3.org > > > Subject: RE: SVG 2 rendering model > > > > > > In the case of a non-isolated transparency group, no buffer is required. > > And > > > in fact, it may actually be WRONG to use one, since you may well be > > > blending the wrong colors in the wrong order depending on what's in > > > the > > group. > > > > > > Leonard > > > > > > -----Original Message----- > > > From: Rik Cabanier > > > Sent: Thursday, August 02, 2012 4:25 PM > > > To: Leonard Rosenthol; Nikos Andronikos; public-svg-wg@w3.org > > > Subject: RE: SVG 2 rendering model > > > > > > An implementor always has to do this anyway. > > > The only difference is if the bitmap is filled with transparent > > > black (= isolated) or the backdrop (=non-isolated) > > > > > > In PDF, this information comes from the bbox in the transparency group. > > > Regardless of isolation, the buffer is created. (See 11.4.3 in the > > > PDF > > > spec) > > > > > > Rik > > > > > > > -----Original Message----- > > > > From: Leonard Rosenthol > > > > Sent: Thursday, August 02, 2012 1:09 PM > > > > To: Rik Cabanier; Nikos Andronikos; public-svg-wg@w3.org > > > > Subject: Re: SVG 2 rendering model > > > > > > > > On 8/2/12 3:34 PM, "Rik Cabanier" <cabanier@adobe.com> wrote: > > > > > > > > >Hi Leonard, > > > > > > > > > >> The problem with making isolated the default is that it will > > > > >> impact performance for all of the normal cases. > > > > >Isolated is faster since you don't have to composite all the > > > > >group to get the background. > > > > > > > > But you DO have to create an "offscreen buffer", composite the entire > > > > group into that, and then blit the entire "offscreen" back. So you're > > > > clearly using more memory and time than simply putting bits into > > > > the existing buffer. > > > > > > > > > > > > >The compositing spec specifies the order in which filters and > > > > >compositing happens. > > > > >The filters spec should say if the stacking group it creates is > > > > >isolated or not. I believe people don't want it to be isolated > > > > >(and can post some examples if needed) > > > > > > > > But how would you apply a filter to a group that has already been > > > > blended into the background? The result is certainly going to be > > > > different - which may be good or bad. > > > > > > > > I would think that given a group with a filter applied to it, you > > > > have to make that specific group isolated, apply the filter, and > > > > only then blend it to the background. > > > > > > > > Leonard
Received on Friday, 3 August 2012 17:50:44 UTC