- About Scala
- Documentation
- Code Examples
- Software
- Scala Developers
[gsoc 2010] Hardware Accelerated 2D Graphics proposal
Wed, 2010-03-31, 17:58
Hi,
Let me shortly introduce my self first:
My name is Dariusz Kosz, I'm computer science student from Poland
(UMCS) but currently I study in Finland at UEF; I'm strongly
interesting in graphic programming and visualisation, that why this
proposal is very interesting and attractive for me. I have got strong
OpenGL and JOGL experience, unfortunately I know scala more less,
anyway I'm really interesting in idea "Hardware Accelerated 2D
Graphics" because programming graphic is my main subject in computer
science and also it is my hobby;
Before I will apply I would like to ask some clarifying question and
present shortly my ideas:
- API should have same functionality as Java2D with GPU acceleration
(OpenGL-JOGL) which will give also access to shaders?
- API should be only for 2D graphic? I think that good idea would be
to develop API also for 3D graphic, at least for some primitives,
- API would also include graphic import from files (eg obj, 3ds)(if
there will be enough time for that to code it),
- My plan would also include documentation writing and writing some
examples for using API,
- beside opengl and shader functionality I would add OpenAL -joal
functionality (if there will be enough time for that)
- as I mentioned before I got small experience with scala, but huge
with opengl, can I apply with that? I'm strongly motivated and highly
committed to start work for that project:) beside I'm fast learner and
according to my knowledge about scala, it is not sophisticated
language.
Regards
Dariusz Kosz
Thu, 2010-04-01, 07:07
#2
Re: [gsoc 2010] Hardware Accelerated 2D Graphics proposal
Hi Dariusz,
you are the second student showing interest in this project. See my
comments inlined:
On 3/31/10 6:57 PM, Dariusz Kosz wrote:
> Hi,
>
> Let me shortly introduce my self first:
> My name is Dariusz Kosz, I'm computer science student from Poland
> (UMCS) but currently I study in Finland at UEF; I'm strongly
> interesting in graphic programming and visualisation, that why this
> proposal is very interesting and attractive for me. I have got strong
> OpenGL and JOGL experience, unfortunately I know scala more less,
> anyway I'm really interesting in idea "Hardware Accelerated 2D
> Graphics" because programming graphic is my main subject in computer
> science and also it is my hobby;
>
> Before I will apply I would like to ask some clarifying question and
> present shortly my ideas:
> - API should have same functionality as Java2D with GPU acceleration
> (OpenGL-JOGL) which will give also access to shaders?
Yes. I am not sure about the API yet, but one could create a subclass of
java.awt.Graphics2D for example.
> - API should be only for 2D graphic? I think that good idea would be
> to develop API also for 3D graphic, at least for some primitives,
We will focus on 2D in this project. That's enough for the moment and a
different beast than 3D.
> - API would also include graphic import from files (eg obj, 3ds)(if
> there will be enough time for that to code it),
No. One could think of SVG using Apache Batik or something more
lightweight, but that's not the focus of this project.
> - My plan would also include documentation writing and writing some
> examples for using API,
Yes, please :) By the end of the summer, we'd like to have a clean,
well-documented implementation.
> - beside opengl and shader functionality I would add OpenAL -joal
> functionality (if there will be enough time for that)
No, thanks.
> - as I mentioned before I got small experience with scala, but huge
> with opengl, can I apply with that? I'm strongly motivated and highly
> committed to start work for that project:) beside I'm fast learner and
> according to my knowledge about scala, it is not sophisticated
> language.
Some advice: People on a programming language mailing list might
misunderstand you when you tell them that "their" language is not
sophisticated :)
I guess for this project, a strong OpenGL background is more important
than a lot of experience with Scala. This project is performance
oriented though, and consequently requires some knowledge about how
Scala deals with Arrays, for loops, boxing, etc and about performance
related behavior of the underlying JVM.
For a rough idea on the project, you could read the following post which
gives an overview on how Qt's OpenGL backend is implemented:
http://labs.trolltech.com/blogs/2010/01/06/qt-graphics-and-performance-o...
Thanks,
Ingo
>
> Regards
> Dariusz Kosz
>
Thu, 2010-04-01, 07:37
#3
Re: Re: [gsoc 2010] Hardware Accelerated 2D Graphics proposal
Hi Sam, thanks for the links.
Agile2D is another good pointer. It's sort of outdated, though. It's
about 8 years old, uses an old OpenGL binding and I presume exclusively
the fixed function pipeline, i.e., no shaders (the OpenGL 2 _spec_
introducing shader APIs was released in late 2004). A closer match for
this project might be Qt's OpenGL backend for which I posted a link in
my other mail.
Java2D's H/W backends are a mess. On windows, your most stable bet is
DirectX. On Linux, you only have an unstable OpenGL backend and on
MacOS, well, they are doing their own stuff. None of them expose an API
to shaders. Some time ago, there was Decor in the Java scenegraph
project which introduced a high-level shader language with backends for
HLSL (D3D shader language), GLSL (OpenGL shader language), SSE
instructions and so on. It was first made open source and then
adandoned. It probably lives on in JavaFX, but that's not open source
anymore. About the time Oracle entered the scene, the JOGL OpenGL
bindings were dropped as an official project. Rumors say that JOGL was
forked internally a long time ago. With all this in mind, I don't hope
for an official Sun/Oracle solution anymore. Hence this GSoC project.
Ingo
On 3/31/10 10:47 PM, Sam Reid wrote:
> I noticed a project that seemed to be closely related to the Hardware
> Accelerated 2D Graphics idea here:
> http://www.cs.umd.edu/hcil/agile2d/
>
> But I thought Java2D introduced an OpenGL pipeline renderer in 1.5:
> http://java.sun.com/j2se/1.5.0/docs/guide/2d/flags.html#opengl
>
> I'm not sure how much these relate to the project proposal, but just wanted to
> point them out in case they are helpful as references or starting points.
>
> Good luck,
> Sam Reid
>
>
>
>
>
Thu, 2010-04-01, 07:57
#4
Re: Re: [gsoc 2010] Hardware Accelerated 2D Graphics proposal
Hello,
I have used LWJGL and liked it a lot. If you are just looking for a
well maintained OpenGL binding, I think it will do the job just fine.
It came to my mind, because JOGL was mentioned.
Regards,
Ruediger
2010/4/1 Ingo Maier :
> Hi Sam, thanks for the links.
>
> Agile2D is another good pointer. It's sort of outdated, though. It's about 8
> years old, uses an old OpenGL binding and I presume exclusively the fixed
> function pipeline, i.e., no shaders (the OpenGL 2 _spec_ introducing shader
> APIs was released in late 2004). A closer match for this project might be
> Qt's OpenGL backend for which I posted a link in my other mail.
>
> Java2D's H/W backends are a mess. On windows, your most stable bet is
> DirectX. On Linux, you only have an unstable OpenGL backend and on MacOS,
> well, they are doing their own stuff. None of them expose an API to shaders.
> Some time ago, there was Decor in the Java scenegraph project which
> introduced a high-level shader language with backends for HLSL (D3D shader
> language), GLSL (OpenGL shader language), SSE instructions and so on. It was
> first made open source and then adandoned. It probably lives on in JavaFX,
> but that's not open source anymore. About the time Oracle entered the scene,
> the JOGL OpenGL bindings were dropped as an official project. Rumors say
> that JOGL was forked internally a long time ago. With all this in mind, I
> don't hope for an official Sun/Oracle solution anymore. Hence this GSoC
> project.
>
> Ingo
>
> On 3/31/10 10:47 PM, Sam Reid wrote:
>>
>> I noticed a project that seemed to be closely related to the Hardware
>> Accelerated 2D Graphics idea here:
>> http://www.cs.umd.edu/hcil/agile2d/
>>
>> But I thought Java2D introduced an OpenGL pipeline renderer in 1.5:
>> http://java.sun.com/j2se/1.5.0/docs/guide/2d/flags.html#opengl
>>
>> I'm not sure how much these relate to the project proposal, but just
>> wanted to
>> point them out in case they are helpful as references or starting points.
>>
>> Good luck,
>> Sam Reid
>>
>>
>>
>>
>>
>
>
Thu, 2010-04-01, 08:07
#5
Re: Re: [gsoc 2010] Hardware Accelerated 2D Graphics proposal
I don't have strong feelings about JOGL vs. LWJGL. Both have their pros
and cons. What made me lean towards JOGL for this project is that it
comes with built-in Java2D support (Text(ure)Renderer) I have some basic
experience with.
On 4/1/10 8:51 AM, Rüdiger Keller wrote:
> Hello,
>
> I have used LWJGL and liked it a lot. If you are just looking for a
> well maintained OpenGL binding, I think it will do the job just fine.
> It came to my mind, because JOGL was mentioned.
>
> Regards,
> Ruediger
>
>
> 2010/4/1 Ingo Maier:
>> Hi Sam, thanks for the links.
>>
>> Agile2D is another good pointer. It's sort of outdated, though. It's about 8
>> years old, uses an old OpenGL binding and I presume exclusively the fixed
>> function pipeline, i.e., no shaders (the OpenGL 2 _spec_ introducing shader
>> APIs was released in late 2004). A closer match for this project might be
>> Qt's OpenGL backend for which I posted a link in my other mail.
>>
>> Java2D's H/W backends are a mess. On windows, your most stable bet is
>> DirectX. On Linux, you only have an unstable OpenGL backend and on MacOS,
>> well, they are doing their own stuff. None of them expose an API to shaders.
>> Some time ago, there was Decor in the Java scenegraph project which
>> introduced a high-level shader language with backends for HLSL (D3D shader
>> language), GLSL (OpenGL shader language), SSE instructions and so on. It was
>> first made open source and then adandoned. It probably lives on in JavaFX,
>> but that's not open source anymore. About the time Oracle entered the scene,
>> the JOGL OpenGL bindings were dropped as an official project. Rumors say
>> that JOGL was forked internally a long time ago. With all this in mind, I
>> don't hope for an official Sun/Oracle solution anymore. Hence this GSoC
>> project.
>>
>> Ingo
>>
>> On 3/31/10 10:47 PM, Sam Reid wrote:
>>>
>>> I noticed a project that seemed to be closely related to the Hardware
>>> Accelerated 2D Graphics idea here:
>>> http://www.cs.umd.edu/hcil/agile2d/
>>>
>>> But I thought Java2D introduced an OpenGL pipeline renderer in 1.5:
>>> http://java.sun.com/j2se/1.5.0/docs/guide/2d/flags.html#opengl
>>>
>>> I'm not sure how much these relate to the project proposal, but just
>>> wanted to
>>> point them out in case they are helpful as references or starting points.
>>>
>>> Good luck,
>>> Sam Reid
>>>
>>>
>>>
>>>
>>>
>>
>>
>
Fri, 2010-04-02, 01:17
#6
Re: [gsoc 2010] Hardware Accelerated 2D Graphics proposal
Hi,
Thank you for reply and link, it was useful,
I would like to build clear vision of that project in my mind:) so I have
some other questions:
- Should Api be designed by student or you will provide/suggest it?
- API would use jogl for better performance, and if OpenGL is available it
could be used as the rendering backend, when for some unknown reason can't
be initialised then rendering would be performed by software without
hardware acceleration by java2D?
- API would leave choice user to use or not fixed functionality, or each
drawing function should be based on shader without giving user chance to
modify it?
- what functionalities should be included in api, should I point out them in
gsoc application (at least major one)?
Thank You,
Dariusz
Tue, 2010-04-06, 08:07
#7
Re: [gsoc 2010] Hardware Accelerated 2D Graphics proposal
On 4/2/10 2:07 AM, Dariusz Kosz wrote:
>
> Hi,
> Thank you for reply and link, it was useful,
> I would like to build clear vision of that project in my mind:) so I have
> some other questions:
> - Should Api be designed by student or you will provide/suggest it?
We will work on that together.
> - API would use jogl for better performance, and if OpenGL is available it
> could be used as the rendering backend, when for some unknown reason can't
> be initialised then rendering would be performed by software without
> hardware acceleration by java2D?
That would be a next step. I am currently mostly interested in decent
quality (anti-aliasing, roughly pixel exact rendering on a single
architecture) and efficient hardware accelerated drawing of primtives,
general shapes, text, and images. This project will be deep, not broad.
I expect that we need to do quite an amount of benchmarking.
> - API would leave choice user to use or not fixed functionality, or each
> drawing function should be based on shader without giving user chance to
> modify it?
I am not sure I understand what you are saying. One of the goal of this
project to supply an API which lets users customize shaders. How these
interact with shaders that are used internally is a problem we need to
address.
> - what functionalities should be included in api, should I point out them in
> gsoc application (at least major one)?
See above. Your application should make clear that you understand the
problems and potential solutions.
Thanks,
Ingo
>
> Thank You,
> Dariusz
I noticed a project that seemed to be closely related to the Hardware
Accelerated 2D Graphics idea here:
http://www.cs.umd.edu/hcil/agile2d/
But I thought Java2D introduced an OpenGL pipeline renderer in 1.5:
http://java.sun.com/j2se/1.5.0/docs/guide/2d/flags.html#opengl
I'm not sure how much these relate to the project proposal, but just wanted to
point them out in case they are helpful as references or starting points.
Good luck,
Sam Reid