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

Christian Feuersaenger cfeuersaenger at googlemail.com
Wed Oct 6 04:08:27 PDT 2010


Hi Thomas,

thanks for your interest in the patch! Just today (see the archives), 
Albert Astals Cid told me that the patch passed the regression tests and 
he asked me about my todo list and FIXMEs. Among others, these FIXMEs 
contain the feature request to extend the shader to CMYK as well... my 
main problems are/were: I don't have test documents and I have few spare 
time for implementations (and a huge todo list for my free plotting 
package pgfplots).

I am willing to send any patches that you wish, but I suggest to await 
Albert's decision. If he incorporates it into the poppler master branch 
as-is, then you just need to pull and get the most recent changes. Any 
further feature requests (including CMYK support) could then be 
implemented as further patches- and if you have time to work on them, it 
would be great.

I think that my implementation can be extended to CMYK without any 
problems- or are there peculiarities when it comes to interpolation in 
CMYK color spaces? I guess it works as for RGB, so my implementation 
might already work without changes (as soon as the sanity check is 
removed). I just don't have test documents.

Best regards

Christian

Am 06.10.2010 09:33, schrieb Thomas Freitag:
>  Hi Christian!
>
> Sorry, I just subscribed to the poppler mailing list, so I didn't get 
> Your patch and haven't seen the complete discussion.
> As far as I understand, You speed up matrix and triangle patch 
> shadings, but only with RGB colorspaces. I would be interested in 
> having that at least for CMYK, too, and I would be able to test that. 
> So can You send me the patch and a hint what I should do to have it in 
> CMYK? In the past I speed that up in increasing the gouraudColorDelta 
> value, which also gave sufficient results, but Your solution seems to 
> be better.
>
> Best regards,
> Thomas
>
> Am 05.10.2010 22:59, 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



More information about the poppler mailing list