[poppler] Patch proposal: Implementation for real gouraud shaded triangles

Albert Astals Cid aacid at kde.org
Thu Oct 7 14:08:28 PDT 2010


A Dimecres, 6 d'octubre de 2010, Christian Feuersaenger va escriure:
> Am 05.10.2010 22:59, schrieb Albert Astals Cid:
> > A Dijous, 30 de setembre de 2010, Christian Feuersaenger va escriure:
> >> Hello Albert,
> >> 
> >> Am 30.09.2010 00:00, schrieb Albert Astals Cid:
> >>> A Dijous, 19 d'agost de 2010, vàreu escriure:
> >>>> Dear Albert,
> >>>> 
> >>>> attached you find a test.pdf in which the improvements can be seen.
> >>>> 
> >>>> The rendering quality of my patch is much better; it eliminates the
> >>>> moire effects of the flat shading approximation (top left image).
> >>>> 
> >>>> Compare also the image with opacity on page 2 of test.pdf.
> >>>> 
> >>>> Besides the improved rendering quality, the most obvious change is the
> >>>> required runtime: on my system, the default xpdf requires 15 seconds
> >>>> until it stops rendering the first page whereas xpdf with poppler
> >>>> support and my new patch requires about one second. The pdftoppm
> >>>> utility is also considerably faster.
> >>>> 
> >>>> Let me stress that the patch is unrelated to my previous bugfixes, so
> >>>> rendering problems are only fixed together with the other bugfix.
> >>> 
> >>> I'm not sure i understand this last sentence, you say that the patches
> >>> are
> >>> unrelated but then you say the bugs are only fixed together with the
> >>> other
> >>> patch?
> >>> 
> >>> Should i run a regression test over this patch or does it need to be in
> >>> conjunction with the other patch?
> >> 
> >> The "Implementation for real gouraud shaded triangles" is more a new
> >> feature than simply a bugfix: it re-implements the shaders for the
> >> splash device. Its purpose is mainly a vastly improved rendering speed.
> >> I'd suggest to run regression tests on this implementation separately
> >> from my other patch proposals.
> >> 
> >> The other patch proposals (you have  processed them already; I still
> >> have to investigate your problem report) are bug fixes which should be
> >> tested separately.
> >> 
> >> My last remark is to be understood as follows:
> >> 1. if you view test.pdf with both patches, you have best quality and
> >> highest speed.
> >> 2. if you view test.pdf only with the given patch, you have high speed
> >> and good quality for the triangle patches, but the coons patch things
> >> will be buggy.
> >> 3. if you only process the other patch proposal (the bugfixes which are
> >> not part of mail), the coons patches are rendered correctly; but the
> >> triangle patches are slow and only approximately correct due to the
> >> piecewise flat triangle approximation as it is currently done in
> >> libpoppler.
> >> 
> >> I think the most reliable quality verification can be gained by testing
> >> both patches separately.
> > 
> > Ok, i've ran the test regression over this aptch and everything seems to
> > be ok, could you please fix the FIXME and TODO you have in the code?
> 
> Hello Albert,
> 
> I'm glad the regression tests passed. Concerning the FIXME and TODO
> list: They constitute (without exception) additional features which do
> not limit the application of the patch (falling back to the old
> implementations automatically). I am willing to work on the FIXMEs, but
> a realization might not be finished before the beginning of the new year
> due to my personal time schedule for the next months.
> 
> I suggest to incorporate the patch into libpoppler as-is, and I will
> work on the remaining feature requests eventually.

Not really, i want at least splashModeXBGR8 fixed (can can just try it with 
qt4/test/test-poppler-qt4) before commiting since is what the Qt frontend uses 
that is the major user of the Splash backend.

I attach the patch as i tried.

Albert

> 
> Best regards
> 
> Christian
> 
> > Thanks,
> > 
> >    Albert
> >> 
> >> Best regards
> >> 
> >> Christian
> >> 
> >> PS
> >> Sorry if you get notifications because of 'Post by non-member to a
> >> members-only list'... I keep clicking onto the wrong email address :(
> >> (have now registered both of them)
> >> 
> >>> Albert
> >>> 
> >>>> Best regards
> >>>> 
> >>>> Christian
> >>>> 
> >>>> Am 18.08.2010 23:15, schrieb Albert Astals Cid:
> >>>>> A Dijous, 15 de juliol de 2010, Christian Feuersaenger va escriure:
> >>>>>> Dear poppler developers,
> >>>>>> 
> >>>>>> hereby I propose a new patch for a high quality, fast gouraud
> >>>>>> shader for
> >>>>>> triangle shadings.
> >>>>>> 
> >>>>>> The patch provides
> >>>>>> - scalable triangle shadings (in contrast to the old approach),
> >>>>>> - correct shading, no approximation using flat triangles,
> >>>>>> - greatly (!) improved rendering speed,
> >>>>>> - support for opacity (in contrast to the previous approach).
> >>>>>> 
> >>>>>> This patch is relative to the master branch,
> >>>>>> git show poppler-0.14.0-91-g31ac578 .
> >>>>>> 
> >>>>>> It is unrelated to my previous patch proposals concerning shadings;
> >>>>>> the
> >>>>>> other patch proposal (my mail several weeks ago) is still important
> >>>>>> and
> >>>>>> relevant. The patch in this mail is independent and does not
> >>>>>> include my
> >>>>>> previous patch proposals.
> >>>>>> 
> >>>>>> I tested the new patch with pdftoppm and with the xpdf-poppler fork
> >>>>>> of Rogerio Brito; it appears to work reliable. I tested
> >>>>>> - matrix shadings and triangle patch shadings (Types 4 and 5),
> >>>>>> - degenerated triangles,
> >>>>>> - clipping,
> >>>>>> - opacity,
> >>>>>> - RGB color spaces.
> >>>>>> 
> >>>>>> The implementation now supports these shadings on a display driver
> >>>>>> level
> >>>>>> and is implemented directly in the splash device (using scanline
> >>>>>> sweeps).
> >>>>>> 
> >>>>>> I've been defensive: I have no test cases for other color spaces and
> >>>>>> I have no test data for non-parametric shadings. Consequently, I
> >>>>>> disabled
> >>>>>> the shader for these cases; it will fall back to the existing
> >>>>>> solutions
> >>>>>> (approximate shading by means of many flat triangles).
> >>>>>> 
> >>>>>> I hope you find my patch proposal useful. I believe it is worthy of
> >>>>>> being part of libpoppler.
> >>>>> 
> >>>>> Do you have a pdf where we can see the improvement this patch gives?
> >>>>> 
> >>>>> Albert
> >>>>> 
> >>>>>> Thanks,
> >>>>>> 
> >>>>>> Christian
> >>>>> 
> >>>>> _______________________________________________
> >>>>> poppler mailing list
> >>>>> poppler at lists.freedesktop.org
> >>>>> http://lists.freedesktop.org/mailman/listinfo/poppler
> >>> 
> >>> _______________________________________________
> >>> poppler mailing list
> >>> poppler at lists.freedesktop.org
> >>> http://lists.freedesktop.org/mailman/listinfo/poppler
> >> 
> >> _______________________________________________
> >> poppler mailing list
> >> poppler at lists.freedesktop.org
> >> http://lists.freedesktop.org/mailman/listinfo/poppler
> > 
> > _______________________________________________
> > poppler mailing list
> > poppler at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/poppler
> 
> _______________________________________________
> poppler mailing list
> poppler at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/poppler
-------------- next part --------------
A non-text attachment was scrubbed...
Name: poppler_realgouraudshadingtype.patch
Type: text/x-patch
Size: 22889 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/poppler/attachments/20101007/efddda72/attachment-0001.bin>


More information about the poppler mailing list