octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: glLineStipple


From: Ben Abbott
Subject: Re: glLineStipple
Date: Mon, 21 Dec 2015 13:33:29 -0500

On Dec 20, 2015, at 4:46 PM, Konstantinos Poulios <address@hidden> wrote:

Hi

This is about the rendering of dashed and dash-dot lines. With the opengl plotting system being the default, maybe one could now think about the rendering quality of lines in plots and prints.

Here there are some -in my opinion- shortcomings of the current situation:

- The gaps in the dashed and dash-dot lines are too large (also compared to ML's plotting). In my personal octave build I actually replace the "0xF0F0" mask with "0xF8F8" for dashed and the "020F" mask for dash-dot lines with "0x27FF".

- The pattern doesn't scale with the linewidth. This makes very thick lines look strange when combined with some non solid line style.

- The lines have no caps, which makes especially dots look ugly (squares instead of circles).

- I have just realized that glLineStipple has been deprecated in recent versions of OpenGL.


Possible solutions:

Soon or later it will probably become necessary to go away from glLineStipple, so it might be useful to take a look at alternative and higher quality options already. For example the following work looks very interesting:
and the code is also available inside a project called gl-agg:
https://github.com/rougier/gl-agg/blob/master/glagg/dash_atlas.py

The following article is also interesting to read:
http://mattdesl.svbtle.com/drawing-lines-is-hard

In any case one would also have to check what is supported by gl2ps.


Unfortunately, I don't see myself having the time to help with the coding of any new implementation soon but maybe you will find the above information useful.

Best regards
Kostas

Hi Kostas,

I entered a bug report to prevent your excellent suggesting from being forgotten.

https://savannah.gnu.org/bugs/?46739

Ben



reply via email to

[Prev in Thread] Current Thread [Next in Thread]