Summer of Code - Getting Started: Difference between revisions

m
Line 86: Line 86:
== Graphics ==
== Graphics ==


Octave has a new native OpenGL plotter (currently via [http://en.wikipedia.org/wiki/Fltk fltk], but we want to move away from that). There are several possible projects involved with it. Michael Goffioul has expressed interest in mentoring these projects.
Octave has a new native OpenGL plotter (currently via [http://en.wikipedia.org/wiki/Fltk fltk], but we want to move away from that). There are several possible projects involved with it.


'''Required skills''': C++ and OpenGL. General understanding of computer graphics.
'''Required skills''': C++ and OpenGL. General understanding of computer graphics.
Line 96: Line 96:
=== Lighting ===
=== Lighting ===


Implement transparency and lighting in OpenGL backend(s). A basic implementation was available in [http://octave.svn.sourceforge.net/viewvc/octave/trunk/octave-forge/extra/jhandles/ JHandles]. This needs to be ported/re-implement/re-engineered/optimized in the C++ OpenGL renderer of Octave.
Implement transparency and lighting in OpenGL backend(s). A basic implementation is available in [http://octave.svn.sourceforge.net/viewvc/octave/trunk/octave-forge/extra/jhandles/ JHandles]. This needs to be ported/re-implement/re-engineered/optimized in the C++ OpenGL renderer of Octave.


=== Object selection in OpenGL renderer ===
=== Object selection in OpenGL renderer ===
Line 104: Line 104:
=== Non-OpenGL renderer ===
=== Non-OpenGL renderer ===


Besides the original gnuplot backend, Octave also contains an OpenGL-based renderer for advanced and more powerful 3D plots. However, OpenGL is not perfectly suited for 2D-only plots where other methods could result in better graphics. The purpose of this project is to implement an alternate graphics renderer for 2D only plots (although 3D is definitely not the focus, extending the new graphics renderer to support basic 3D features should also be taken into account). There is not fix constaints on the toolkit/library to use, but natural candidates are:
Besides the original gnuplot backend, Octave also contains an OpenGL-based renderer for advanced and more powerful 3D plots. However, OpenGL is not perfectly suited for 2D-only plots where other methods could result in better graphics. The purpose of this project is to implement an alternate graphics renderer for 2D only plots (although 3D is definitely not the focus, extending the new graphics renderer to support basic 3D features should also be taken into account). There is no particular toolkit/library that must be used, but natural candidates are:
* [http://qt.nokia.com Qt]: the GUI is currently written in Qt and work is also in progress to provide a Qt/OpenGL based backend [https://github.com/goffioul/QtHandles]
* [http://qt.nokia.com Qt]: the GUI is currently written in Qt and work is also in progress to provide a Qt/OpenGL based backend [https://github.com/goffioul/QtHandles]
* [http://en.wikipedia.org/wiki/Cairo_%28software%29 Cairo]: this library is widely used and known to provides high-quality graphics with support for PS/PDF/SVG output.
* [http://en.wikipedia.org/wiki/Cairo_%28software%29 Cairo]: this library is widely used and known to provides high-quality graphics with support for PS/PDF/SVG output.
281

edits