[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