Hi
I made a little Eclipse project to help me compare different methods of rendering triangles in Java. I implemented a version for Java2D BufferedImage, Java2D VolatileImage and Jogl AutoDrawable offscreen. The goal is to have every version support semitransparent / opaque triangles, translucent / solid (opaque) images and turning antialiasing on / off. Everything works fine with buffered images and volatile images. However, i have trouble getting antialiasing to work with jogl. I have googled a lot in the past weeks and found many infos on the subject, but nothing seems to work. I have tested my code on several different systems with different GPUs and different operating systems. When i use gl.glEnable(GL2.GL_POLYGON_SMOOTH), nothing happens. And when i use caps.setSampleBuffers(true), the generated image is simply empty. I have attached the eclipse project. Can somebody please take a look at it? You find the code in the class PerfTestJogl and the main method in the class TestRunner. The class StaticSettings contains some static settings used to control the behavior of the tests. Every test stores an image file in the ./out/ folder, so you can check the results. In the class PerfTestJogl you may need to comment / uncomment the code for antialiasing. If you run the tests under linux don't forget to add the vm argument -Dsun.java2d.opengl=true to activate hardware acceleration for volatile images. Any help is appreciated! Manuel Brotz TrianglePerfTest.zip |
Administrator
|
Hi
Have you looked at our use of anti aliasing in the unit tests and in several APIs based on JOGL? As far as I remember, you have to choose a number of samples too.
Julien Gouesse | Personal blog | Website
|
No, not yet. I will take a look at the unit tests as soon as i can. I don't know of any APIs, though... Can you provide a link?
In my code, i am choosing a number of samples. The result is an empty image, no matter, what i choose. |
In reply to this post by ManuelBrotz
Don't use GL_POLYGON_SMOOTH, it's deprecated, use multisampling instead
Set your own framebuffer and specify a number of samples for your attached textures |
Thanks for your answer! Unfortunately, i've got absolutly no idea how to do that... I forgot to mention, that i have no experience with opengl.
So, you are saying, it's not as simple as activating some switches and then everything happens automatically? I hoped, i just have to enable multisampling and then the polygons will be rendered smoothly. Also, i am not using any textures... |
Here i have created an example image with several renderings. The checkerboard background serves to indicate translucency / transparency.
The left column was rendered using buffered image, the right column using jogl. left column : buffered image right column: jogl rendering ------------------------------------------------------------ 1. row : no translucency | no transparency | no antialiasing 2. row : no translucency | transparency | no antialiasing 3. row : translucency | transparency | no antialiasing 4. row : translucency | transparency | antialiasing |
In reply to this post by ManuelBrotz
Unfortunately it's not that simple, you should invest some time in order to understand how to write a basic sample. You can take inspiration from this one of mine Some additional resources: - https://www.khronos.org/opengl/wiki/Multisampling - https://learnopengl.com/#!Advanced-OpenGL/Anti-Aliasing |
Thank you very much for the links! I will try to understand your example.
|
Free forum by Nabble | Edit this page |