Antialiasing

Hi all,

I've tried to use antialiasing calling


DisplaySystem.getDisplaySystem().setMinSamples(4);



it's wonk correctly in a windows pc, but in a system MAC crashes!  :(

There's another mode to use antialiasing? 

Thanks

i can only speak for windows PC.



here you have to set the AASamples with the Settings that you pass to standardgame:



settings.setSamples(aasamples);



if you do not use StandardGame you just have to make sure u call the Setter Method before calling:



display.createWindow(settings.getWidth(), settings.getHeight(), settings.getDepth(), settings

.getFrequency(), settings.isFullscreen());



once the window is created you cannot change the AA settings anymore

Also, you probably have to pay attention to the possible max… not sure if we check that currently

Hi,

the some object in windows appear (with MinSamples = 4)





and in Mac (without MinSamples) is





How I can increase image quality in Mac?

If I use

DisplaySystem.getDisplaySystem().setMinSamples(4);

the canvas could not be created  :cry:



Tks!!

+1



how i can image quality for mac  ?



Need it creates a larger picture for display on the screen the right size? But how?


Tatofly said:


If I use

DisplaySystem.getDisplaySystem().setMinSamples(4);

the canvas could not be created  :cry:



Does your Mac have a video card that supports 4X FSAA?

what your mac ??

my mac is a mac book with a integred chipset intel  gma 950

this chipset not suport a fsaa







renanse



if i have a graphic card with fsaa suport  on mac





with this command

DisplaySystem.getDisplaySystem().setMinSamples(4);







I can use the fsaa on mac?

Here’s the problem!

I’ve tested my application on 2 Mac,

[1]. MiniMac, with an integrated Intel GMA 950

[2]. Mac Pro, with an ATI Radeon X 1900



I’ve downloaded a software for test OpenGL features in these cards

http://www.realtech-vr.com/glview/ , it’s very cool, it’s free and work for PC and Mac  :smiley:



After running a complete test, the GR_ARB_multisample (core feature 1.3) is supported by ATI Radeon X 1900, but it’s NOT supported by Intel GMA 950!!



How can I know if this feature is supported by the hardware before calling

DisplaySystem.getDisplaySystem().setMinSamples(4);

  :?
How can I know if this feature is supported by the hardware before calling



Default games for example does not start with the fsaa activated but with the minimum option
Certain to start his first launched with a minimum of force option and the ability if his positive test
Proposes the setting in if it is available
Usually a player if it is a check the graphic option
Otherwise it ruled out direct graphics card instance it is not unusual to see on the box of games incompatible with the intel graphics ...

We already test for multisample support before enabling it, but not before passing the argument to the PixelFormat constructor, so we probably should force that to 0 at least if you don't support multisample.  I can enforce that in setMinSamples

Or actually, I can't enforce it…  the capabilities are not set until the display is created.  So the best thing to do is indeed set it to 0 and let the user choose from a list.  I'm trying to find out how to query for max supported samples.

Ideally you would allow the user to change it in-game where it would know the supported samples amount, then you could save it in a config file and reload later without worrying about display creation issues.

dhdd said:

i can only speak for windows PC.

here you have to set the AASamples with the Settings that you pass to standardgame:

settings.setSamples(aasamples);

if you do not use StandardGame you just have to make sure u call the Setter Method before calling:

display.createWindow(settings.getWidth(), settings.getHeight(), settings.getDepth(), settings
.getFrequency(), settings.isFullscreen());

once the window is created you cannot change the AA settings anymore


I use a way like the SimpleCanvasImpl with a swing gui. At init i do:

       DisplaySystem display = DisplaySystem.getDisplaySystem();
       
        display.setMinSamples(4);
        display.initForCanvas(width, height);
        renderer = display.getRenderer();


this dows not work at all, no fsaa is visible.

You said i should set samples before the WINDOW is created. Does that mean i should do it before my swing window or the initForCanvas method here ?

And i am shure my card can do 4 samples fsaa !

Sorry, i forget to mention that i use Linux (Ubuntu 8.04 AMD64 and Debian Lenny ia32). I use a Nvidia Quadro NVS140 mobile with the actual driver from nvidia homepage.



Is there any restriction for fsaa and linux ? does it only works on windows ?



did i make a mistake by turning fsaa on ? (see the code above)



is it a problem that i use a headless canvas integrated in an swing gui ?



thanks

Sebastian

Hi all,



    Is there an update on this?  I am still running into issues on anti-aliasing.  When using it with a canvas, it seems that it sometimes causes JME to not come up at all.  However the behavior is intermittant.  Does anyone know if there is a preferred way to use anti-aliasing that can avoid this problem, or to test to see if the hardware will support it?



Thanks,

  Stephen

as renanse said, when you set the MinSamples, its tested for support of the graca. if its not supported nothing will happen.



as i have written above, you have to set ALL SETTINGS including the MinSamples before the OpenGL context is started. If you do it afterwards, it might just not work or even crash the application afaik.

Thanks for the response.  Unfortunately I'm doing all that but still run into troubles.  Here's the code that I use to set things up.  With the minsamples being set where it is, well before the canvas is created, we still run into problems of JME not loading.



Please tell me if I am missing something, as I am not especially experienced with OpenGL contexts.



Thanks,

–Stephen





       /**
    * Should be called by the init()
    */
   private void setupGlArea()
   {
      //


GL STUFF

      // make the canvas:
      DisplaySystem display = DisplaySystem
            .getDisplaySystem(LWJGLSystemProvider.LWJGL_SYSTEM_IDENTIFIER);

      //*** Antialiasing has been disabled to address bug WBC-74 - CA 02/26/09 ***
      //Bring down from 16 to 4 for samples, 16 will only run in certain video cards
      display.setMinSamples(16);//this sets the antialising to on

      display.registerCanvasConstructor("AWT",
            LWJGLAWTCanvasConstructor.class);
      canvas = (LWJGLCanvas) display.createCanvas(width, height);
      canvas.setUpdateInput(true);
      canvas.setTargetRate(60);

        // add a listener... if window is resized, we can do something about it.
        canvas.addComponentListener(new ComponentAdapter()
        {
            public void componentResized(ComponentEvent ce) {
                doResize();
            }
        });
   
        //============================
      JPanel canvasPanel = new JPanel();
      canvasPanel.setLayout(new BorderLayout());
      canvasPanel.add(canvas, BorderLayout.CENTER);

      //creates the search Panel
      JPanel searchPanel = SearchPanel.getInstance().buildWindowFrame();
      JSplitPane sideSplit = new JSplitPane();
      sideSplit.setOrientation(JSplitPane.VERTICAL_SPLIT);
      sideSplit.setOneTouchExpandable(true);
      sideSplit.setContinuousLayout(true);
      sideSplit.setTopComponent(searchPanel);
      sideSplit.setBottomComponent(MyPlacesPanel.getInstance()
            .buildWindowFrame());
      sideSplit.setDividerLocation(200);

      //creates TabbedPane for layers
      JPanel tabbedPane = LayerTabbedPane.getInstance().createLayerPanel();

      JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT,
            sideSplit, tabbedPane);
      splitPane.setOneTouchExpandable(true);
      splitPane.setDividerLocation(300);

      //sets the minimum size of the panels
      Dimension minimumSize = new Dimension(150, 150);
      tabbedPane.setMinimumSize(minimumSize);
      canvasPanel.setMinimumSize(minimumSize);
      splitPane.setMinimumSize(minimumSize);

      JSplitPane mainSplit = new JSplitPane();
      mainSplit.setOrientation(JSplitPane.HORIZONTAL_SPLIT);
      mainSplit.setOneTouchExpandable(true);
      mainSplit.setLeftComponent(splitPane);
      mainSplit.setRightComponent(canvasPanel);
      mainSplit.setDividerLocation(300);

      contentPane.add(mainSplit, BorderLayout.CENTER);

      contentPane.add(lblStatus, BorderLayout.SOUTH);
       
        //======================================
       
      // Setup key and mouse input
      KeyInput.setProvider(KeyInput.INPUT_AWT);
      KeyListener kl = (KeyListener) KeyInput.get();
      canvas.addKeyListener(kl);
      AWTMouseInput.setup(canvas, false);

      // Important! Here is where we add the guts to the panel:
      impl = View.getInstance();
      canvas.setImplementor(impl);


      //
END OF GL STUFF
   }