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

Christian Feuersaenger cfeuersaenger at googlemail.com
Thu Sep 30 13:29:06 PDT 2010


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.

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


More information about the poppler mailing list