Re: API Change Proposal - Re: MSAA and Scene anti aliasing
Hi All, Need to revive this thread, to remind everyone that anti-aliasing API change is going in. And should be available in build b112. See bug report for some further detail/discussion: https://javafx-jira.kenai.com/browse/RT-31878 Initially only available anti-aliasing modes are BALANCED and DISABLED, as per decision by Kevin and Richard. FASTEST and NICEST should come later. The new class SceneAntialiasing should resembled below: /** * The JavaFX {@code SceneAntialiasing} class specifies the level of * anti-aliasing desired. Scene anti-aliasing is primarily used when rendering * 3D primitives, which are otherwise rendered aliased. * p * Note: In order for {@code SceneAntialiasing} to have an affect, the underlying * system must support: * {@link javafx.application.ConditionalFeature#SCENE3D ConditionalFeature.SCENE3D} * and anti-aliasing. * /p * @since JavaFX 8.0 */ public final class SceneAntialiasing { /** * Disables anti-aliasing */ public static final SceneAntialiasing DISABLED = new SceneAntialiasing(DISABLED); /** * Enables anti-aliasing optimizing for a balance of quality and performance */ public static final SceneAntialiasing BALANCED = new SceneAntialiasing(BALANCED); ... private SceneAntialiasing(String value) { val = value; } } Note this is a potential breaking change, and the following constructors will change! Constructors remove: public Scene(Parent root, double width, double height, boolean depthBuffer, boolean antiAliasing) public SubScene(Parent root, double width, double height, boolean depthBuffer, boolean antiAliasing) Constructor add: public Scene(Parent root, double width, double height, boolean depthBuffer, SceneAntiAliasing antiAliasing) public SubScene(Parent root, double width, double height, boolean depthBuffer, SceneAntiAliasing antiAliasing) -Thor On Jul 24, 2013, at 2:37 PM, Chien Yang wrote: Thank you for the feedback! We decided to drop DEFAULT in favor of BALANCED. So here is the revised SceneAntiAliasing enum entries: public enum SceneAntiAliasing { BALANCED, // enables anti-aliasing using optimal system setting available that balances speed and quality DISABLED, // disables anti-aliasing FASTEST, // enables anti-aliasing using minimum system setting available that results in better frame rate NICEST // enables anti-aliasing using maximum system setting available that results in best visual quality } Thanks, - Chien On 7/23/2013 1:29 PM, Chien Yang wrote: Hi all, We appreciate all the feedback you have contributed to this topic. After listening to the feedback and an internal discussion, we would like to propose a minor change to the API for supporting scene anti-aliasing. We intentionally choose not to expose the number of samples and techniques used in this release, but this doesn't preclude future addition when the time is right for more options. This change will be tracked by RT-31878 (https://javafx-jira.kenai.com/browse/RT-31878): Anti-aliasing API Change Proposal: Constructors remove: public Scene(Parent root, double width, double height, boolean depthBuffer, boolean antiAliasing) public SubScene(Parent root, double width, double height, boolean depthBuffer, boolean antiAliasing) Constructor add: public Scene(Parent root, double width, double height, boolean depthBuffer, SceneAntiAliasing antiAliasing) public SubScene(Parent root, double width, double height, boolean depthBuffer, SceneAntiAliasing antiAliasing) Note:The antiAliasing argument will be used if the underlying graphics driver has anti-aliasing support. Where SceneAntiAliasing is an enum with the following entries at the moment: public enum SceneAntiAliasing { DISABLED, // disables anti-aliasing DEFAULT, // enables anti-aliasing using a default system setting available that balances speed and quality FASTEST, // enables anti-aliasing using minimum system setting available that results in better frame rate NICEST // enables anti-aliasing using maximum system setting available that results in best visual quality } Thanks, - Chien
Re: API Change Proposal - Re: MSAA and Scene anti aliasing
I agree, however I would prefer a single class over subclasses if possible. I have added Jim's proposal to the JIRA for consideration. https://javafx-jira.kenai.com/browse/RT-31878 Thanks, - Chien On 7/31/2013 3:21 PM, Kevin Rushforth wrote: This seems cleaner in terms of extensibility. I think we can wait on adding anything other than the public static finals for this release, but plan to extend it using something like what Jim suggests. -- Kevin Richard Bair wrote: Personally I liked this approach. It was like an enum in ease of use but much more extensible in the future when we add more anti-aliasing types and twiddles. Richard On Jul 31, 2013, at 1:36 PM, Jim Graham james.gra...@oracle.com wrote: D'oh! I knew I should have been checking this list a bit. I hope this isn't too late to have any impact... As an intermediate solution this is fine, but when we want to get into providing settings for MSAA and FSAA and other algorithms I think classes are more flexible than enums. How about this solution: package javafx.? public class SceneAntialiasing { public static final SceneAntialiasing DISABLED; public static final SceneAntialiasing BALANCED; public static final SceneAntialiasing FASTEST; public static final SceneAntialiasing NICEST; public static SceneAntialiasing[] getAvailableTechniques() { } SceneAntialiasing() { /* package private constructor! */ } } public class MsaaAntialiasing extends SceneAntialiasing { MSaaAntialiasing(int numsamp) { /* package private */ } public int getNumSamples(); } public class FsaaAntialiasing extends SceneAntialiasing { FsaaAntialiasing(int numsamp) { /* package private */ } public int getNumSamples(); } Note that there are ways for the system to construct these objects without providing public constructors so that these become statically defined by the system. What about Anisotropic filtering? Is that considered a form of AA, or an option on top of AA? ...jim On 7/24/2013 3:07 PM, Chien Yang wrote: Thanks for the help! I was of 2 minds about it; alphabetical or logical. public enum SceneAntiAliasing { DISABLED, // disables anti-aliasing BALANCED, // enables anti-aliasing using optimal system setting available that balances speed and quality FASTEST, // enables anti-aliasing using minimum system setting available that results in better frame rate NICEST // enables anti-aliasing using maximum system setting available that results in best visual quality } - Chien On 7/24/2013 2:49 PM, Richard Bair wrote: Just to be picky, I would put DISABLED first in the list. It seems more consistent to have the only OFF mode to be first and then all the rest of the options (which happen to then have ordinals 0) will be some form of ON mode. Richard On Jul 24, 2013, at 2:37 PM, Chien Yang chien.y...@oracle.com wrote: Thank you for the feedback! We decided to drop DEFAULT in favor of BALANCED. So here is the revised SceneAntiAliasing enum entries: public enum SceneAntiAliasing { BALANCED, // enables anti-aliasing using optimal system setting available that balances speed and quality DISABLED, // disables anti-aliasing FASTEST, // enables anti-aliasing using minimum system setting available that results in better frame rate NICEST // enables anti-aliasing using maximum system setting available that results in best visual quality } Thanks, - Chien On 7/23/2013 1:29 PM, Chien Yang wrote: Hi all, We appreciate all the feedback you have contributed to this topic. After listening to the feedback and an internal discussion, we would like to propose a minor change to the API for supporting scene anti-aliasing. We intentionally choose not to expose the number of samples and techniques used in this release, but this doesn't preclude future addition when the time is right for more options. This change will be tracked by RT-31878 (https://javafx-jira.kenai.com/browse/RT-31878): Anti-aliasing API Change Proposal: Constructors remove: public Scene(Parent root, double width, double height, boolean depthBuffer, boolean antiAliasing) public SubScene(Parent root, double width, double height, boolean depthBuffer, boolean antiAliasing) Constructor add: public Scene(Parent root, double width, double height, boolean depthBuffer, SceneAntiAliasing antiAliasing) public SubScene(Parent root, double width, double height, boolean depthBuffer, SceneAntiAliasing antiAliasing) Note:The antiAliasing argument will be used if the underlying graphics driver has anti-aliasing support. Where SceneAntiAliasing is an enum with the following entries at the moment: public enum SceneAntiAliasing { DISABLED, // disables anti-aliasing DEFAULT, // enables anti-aliasing using a default system setting available that balances speed and quality FASTEST, // enables anti-aliasing using minimum system setting available that results in better frame rate NICEST
Re: API Change Proposal - Re: MSAA and Scene anti aliasing
I'm pretty confident we'll want different sub-types as we go along (CSAA, MSAA, FXAA -- there are a lot of different ways to do full-scene anti-aliasing and I bet that they will have different parameters for controlling their various algorithms), but we can cross that bridge later. Richard On Jul 31, 2013, at 4:36 PM, Chien Yang chien.y...@oracle.com wrote: I agree, however I would prefer a single class over subclasses if possible. I have added Jim's proposal to the JIRA for consideration. https://javafx-jira.kenai.com/browse/RT-31878 Thanks, - Chien On 7/31/2013 3:21 PM, Kevin Rushforth wrote: This seems cleaner in terms of extensibility. I think we can wait on adding anything other than the public static finals for this release, but plan to extend it using something like what Jim suggests. -- Kevin Richard Bair wrote: Personally I liked this approach. It was like an enum in ease of use but much more extensible in the future when we add more anti-aliasing types and twiddles. Richard On Jul 31, 2013, at 1:36 PM, Jim Graham james.gra...@oracle.com wrote: D'oh! I knew I should have been checking this list a bit. I hope this isn't too late to have any impact... As an intermediate solution this is fine, but when we want to get into providing settings for MSAA and FSAA and other algorithms I think classes are more flexible than enums. How about this solution: package javafx.? public class SceneAntialiasing { public static final SceneAntialiasing DISABLED; public static final SceneAntialiasing BALANCED; public static final SceneAntialiasing FASTEST; public static final SceneAntialiasing NICEST; public static SceneAntialiasing[] getAvailableTechniques() { } SceneAntialiasing() { /* package private constructor! */ } } public class MsaaAntialiasing extends SceneAntialiasing { MSaaAntialiasing(int numsamp) { /* package private */ } public int getNumSamples(); } public class FsaaAntialiasing extends SceneAntialiasing { FsaaAntialiasing(int numsamp) { /* package private */ } public int getNumSamples(); } Note that there are ways for the system to construct these objects without providing public constructors so that these become statically defined by the system. What about Anisotropic filtering? Is that considered a form of AA, or an option on top of AA? ...jim On 7/24/2013 3:07 PM, Chien Yang wrote: Thanks for the help! I was of 2 minds about it; alphabetical or logical. public enum SceneAntiAliasing { DISABLED, // disables anti-aliasing BALANCED, // enables anti-aliasing using optimal system setting available that balances speed and quality FASTEST, // enables anti-aliasing using minimum system setting available that results in better frame rate NICEST // enables anti-aliasing using maximum system setting available that results in best visual quality } - Chien On 7/24/2013 2:49 PM, Richard Bair wrote: Just to be picky, I would put DISABLED first in the list. It seems more consistent to have the only OFF mode to be first and then all the rest of the options (which happen to then have ordinals 0) will be some form of ON mode. Richard On Jul 24, 2013, at 2:37 PM, Chien Yang chien.y...@oracle.com wrote: Thank you for the feedback! We decided to drop DEFAULT in favor of BALANCED. So here is the revised SceneAntiAliasing enum entries: public enum SceneAntiAliasing { BALANCED, // enables anti-aliasing using optimal system setting available that balances speed and quality DISABLED, // disables anti-aliasing FASTEST, // enables anti-aliasing using minimum system setting available that results in better frame rate NICEST // enables anti-aliasing using maximum system setting available that results in best visual quality } Thanks, - Chien On 7/23/2013 1:29 PM, Chien Yang wrote: Hi all, We appreciate all the feedback you have contributed to this topic. After listening to the feedback and an internal discussion, we would like to propose a minor change to the API for supporting scene anti-aliasing. We intentionally choose not to expose the number of samples and techniques used in this release, but this doesn't preclude future addition when the time is right for more options. This change will be tracked by RT-31878 (https://javafx-jira.kenai.com/browse/RT-31878): Anti-aliasing API Change Proposal: Constructors remove: public Scene(Parent root, double width, double height, boolean depthBuffer, boolean antiAliasing) public SubScene(Parent root, double width, double height, boolean depthBuffer, boolean antiAliasing) Constructor add: public Scene(Parent root, double width, double height, boolean depthBuffer, SceneAntiAliasing antiAliasing) public SubScene(Parent root, double width, double height, boolean depthBuffer, SceneAntiAliasing antiAliasing) Note:The antiAliasing argument
Re: API Change Proposal - Re: MSAA and Scene anti aliasing
Sorry let me be clear. Having a class vs an enum was my preferred approach and I'm glad with Jim's nudge it looks like we'll go there. Having just the few predefined constants as a starting point I think is good, and we can add sub-types and more goodness in the future. Richard On Jul 31, 2013, at 4:47 PM, Richard Bair richard.b...@oracle.com wrote: I'm pretty confident we'll want different sub-types as we go along (CSAA, MSAA, FXAA -- there are a lot of different ways to do full-scene anti-aliasing and I bet that they will have different parameters for controlling their various algorithms), but we can cross that bridge later. Richard On Jul 31, 2013, at 4:36 PM, Chien Yang chien.y...@oracle.com wrote: I agree, however I would prefer a single class over subclasses if possible. I have added Jim's proposal to the JIRA for consideration. https://javafx-jira.kenai.com/browse/RT-31878 Thanks, - Chien On 7/31/2013 3:21 PM, Kevin Rushforth wrote: This seems cleaner in terms of extensibility. I think we can wait on adding anything other than the public static finals for this release, but plan to extend it using something like what Jim suggests. -- Kevin Richard Bair wrote: Personally I liked this approach. It was like an enum in ease of use but much more extensible in the future when we add more anti-aliasing types and twiddles. Richard On Jul 31, 2013, at 1:36 PM, Jim Graham james.gra...@oracle.com wrote: D'oh! I knew I should have been checking this list a bit. I hope this isn't too late to have any impact... As an intermediate solution this is fine, but when we want to get into providing settings for MSAA and FSAA and other algorithms I think classes are more flexible than enums. How about this solution: package javafx.? public class SceneAntialiasing { public static final SceneAntialiasing DISABLED; public static final SceneAntialiasing BALANCED; public static final SceneAntialiasing FASTEST; public static final SceneAntialiasing NICEST; public static SceneAntialiasing[] getAvailableTechniques() { } SceneAntialiasing() { /* package private constructor! */ } } public class MsaaAntialiasing extends SceneAntialiasing { MSaaAntialiasing(int numsamp) { /* package private */ } public int getNumSamples(); } public class FsaaAntialiasing extends SceneAntialiasing { FsaaAntialiasing(int numsamp) { /* package private */ } public int getNumSamples(); } Note that there are ways for the system to construct these objects without providing public constructors so that these become statically defined by the system. What about Anisotropic filtering? Is that considered a form of AA, or an option on top of AA? ...jim On 7/24/2013 3:07 PM, Chien Yang wrote: Thanks for the help! I was of 2 minds about it; alphabetical or logical. public enum SceneAntiAliasing { DISABLED, // disables anti-aliasing BALANCED, // enables anti-aliasing using optimal system setting available that balances speed and quality FASTEST, // enables anti-aliasing using minimum system setting available that results in better frame rate NICEST // enables anti-aliasing using maximum system setting available that results in best visual quality } - Chien On 7/24/2013 2:49 PM, Richard Bair wrote: Just to be picky, I would put DISABLED first in the list. It seems more consistent to have the only OFF mode to be first and then all the rest of the options (which happen to then have ordinals 0) will be some form of ON mode. Richard On Jul 24, 2013, at 2:37 PM, Chien Yang chien.y...@oracle.com wrote: Thank you for the feedback! We decided to drop DEFAULT in favor of BALANCED. So here is the revised SceneAntiAliasing enum entries: public enum SceneAntiAliasing { BALANCED, // enables anti-aliasing using optimal system setting available that balances speed and quality DISABLED, // disables anti-aliasing FASTEST, // enables anti-aliasing using minimum system setting available that results in better frame rate NICEST // enables anti-aliasing using maximum system setting available that results in best visual quality } Thanks, - Chien On 7/23/2013 1:29 PM, Chien Yang wrote: Hi all, We appreciate all the feedback you have contributed to this topic. After listening to the feedback and an internal discussion, we would like to propose a minor change to the API for supporting scene anti-aliasing. We intentionally choose not to expose the number of samples and techniques used in this release, but this doesn't preclude future addition when the time is right for more options. This change will be tracked by RT-31878 (https://javafx-jira.kenai.com/browse/RT-31878): Anti-aliasing API Change Proposal: Constructors remove: public Scene(Parent root, double width, double height, boolean depthBuffer, boolean antiAliasing) public SubScene(Parent root,
Re: API Change Proposal - Re: MSAA and Scene anti aliasing
Thank you for the feedback! We decided to drop DEFAULT in favor of BALANCED. So here is the revised SceneAntiAliasing enum entries: public enum SceneAntiAliasing { BALANCED, // enables anti-aliasing using optimal system setting available that balances speed and quality DISABLED, // disables anti-aliasing FASTEST, // enables anti-aliasing using minimum system setting available that results in better frame rate NICEST // enables anti-aliasing using maximum system setting available that results in best visual quality } Thanks, - Chien On 7/23/2013 1:29 PM, Chien Yang wrote: Hi all, We appreciate all the feedback you have contributed to this topic. After listening to the feedback and an internal discussion, we would like to propose a minor change to the API for supporting scene anti-aliasing. We intentionally choose not to expose the number of samples and techniques used in this release, but this doesn't preclude future addition when the time is right for more options. This change will be tracked by RT-31878 (https://javafx-jira.kenai.com/browse/RT-31878): Anti-aliasing API Change Proposal: Constructors remove: public Scene(Parent root, double width, double height, boolean depthBuffer, boolean antiAliasing) public SubScene(Parent root, double width, double height, boolean depthBuffer, boolean antiAliasing) Constructor add: public Scene(Parent root, double width, double height, boolean depthBuffer, SceneAntiAliasing antiAliasing) public SubScene(Parent root, double width, double height, boolean depthBuffer, SceneAntiAliasing antiAliasing) Note:The antiAliasing argument will be used if the underlying graphics driver has anti-aliasing support. Where SceneAntiAliasing is an enum with the following entries at the moment: public enum SceneAntiAliasing { DISABLED, // disables anti-aliasing DEFAULT, // enables anti-aliasing using a default system setting available that balances speed and quality FASTEST, // enables anti-aliasing using minimum system setting available that results in better frame rate NICEST // enables anti-aliasing using maximum system setting available that results in best visual quality } Thanks, - Chien
Re: API Change Proposal - Re: MSAA and Scene anti aliasing
Thanks for the help! I was of 2 minds about it; alphabetical or logical. public enum SceneAntiAliasing { DISABLED, // disables anti-aliasing BALANCED, // enables anti-aliasing using optimal system setting available that balances speed and quality FASTEST, // enables anti-aliasing using minimum system setting available that results in better frame rate NICEST // enables anti-aliasing using maximum system setting available that results in best visual quality } - Chien On 7/24/2013 2:49 PM, Richard Bair wrote: Just to be picky, I would put DISABLED first in the list. It seems more consistent to have the only OFF mode to be first and then all the rest of the options (which happen to then have ordinals 0) will be some form of ON mode. Richard On Jul 24, 2013, at 2:37 PM, Chien Yang chien.y...@oracle.com wrote: Thank you for the feedback! We decided to drop DEFAULT in favor of BALANCED. So here is the revised SceneAntiAliasing enum entries: public enum SceneAntiAliasing { BALANCED, // enables anti-aliasing using optimal system setting available that balances speed and quality DISABLED, // disables anti-aliasing FASTEST, // enables anti-aliasing using minimum system setting available that results in better frame rate NICEST // enables anti-aliasing using maximum system setting available that results in best visual quality } Thanks, - Chien On 7/23/2013 1:29 PM, Chien Yang wrote: Hi all, We appreciate all the feedback you have contributed to this topic. After listening to the feedback and an internal discussion, we would like to propose a minor change to the API for supporting scene anti-aliasing. We intentionally choose not to expose the number of samples and techniques used in this release, but this doesn't preclude future addition when the time is right for more options. This change will be tracked by RT-31878 (https://javafx-jira.kenai.com/browse/RT-31878): Anti-aliasing API Change Proposal: Constructors remove: public Scene(Parent root, double width, double height, boolean depthBuffer, boolean antiAliasing) public SubScene(Parent root, double width, double height, boolean depthBuffer, boolean antiAliasing) Constructor add: public Scene(Parent root, double width, double height, boolean depthBuffer, SceneAntiAliasing antiAliasing) public SubScene(Parent root, double width, double height, boolean depthBuffer, SceneAntiAliasing antiAliasing) Note:The antiAliasing argument will be used if the underlying graphics driver has anti-aliasing support. Where SceneAntiAliasing is an enum with the following entries at the moment: public enum SceneAntiAliasing { DISABLED, // disables anti-aliasing DEFAULT, // enables anti-aliasing using a default system setting available that balances speed and quality FASTEST, // enables anti-aliasing using minimum system setting available that results in better frame rate NICEST // enables anti-aliasing using maximum system setting available that results in best visual quality } Thanks, - Chien
Re: API Change Proposal - Re: MSAA and Scene anti aliasing
+1 on having DISABLED be first. -- Kevin Richard Bair wrote: Just to be picky, I would put DISABLED first in the list. It seems more consistent to have the only OFF mode to be first and then all the rest of the options (which happen to then have ordinals 0) will be some form of ON mode. Richard On Jul 24, 2013, at 2:37 PM, Chien Yang chien.y...@oracle.com wrote: Thank you for the feedback! We decided to drop DEFAULT in favor of BALANCED. So here is the revised SceneAntiAliasing enum entries: public enum SceneAntiAliasing { BALANCED, // enables anti-aliasing using optimal system setting available that balances speed and quality DISABLED, // disables anti-aliasing FASTEST, // enables anti-aliasing using minimum system setting available that results in better frame rate NICEST // enables anti-aliasing using maximum system setting available that results in best visual quality } Thanks, - Chien On 7/23/2013 1:29 PM, Chien Yang wrote: Hi all, We appreciate all the feedback you have contributed to this topic. After listening to the feedback and an internal discussion, we would like to propose a minor change to the API for supporting scene anti-aliasing. We intentionally choose not to expose the number of samples and techniques used in this release, but this doesn't preclude future addition when the time is right for more options. This change will be tracked by RT-31878 (https://javafx-jira.kenai.com/browse/RT-31878): Anti-aliasing API Change Proposal: Constructors remove: public Scene(Parent root, double width, double height, boolean depthBuffer, boolean antiAliasing) public SubScene(Parent root, double width, double height, boolean depthBuffer, boolean antiAliasing) Constructor add: public Scene(Parent root, double width, double height, boolean depthBuffer, SceneAntiAliasing antiAliasing) public SubScene(Parent root, double width, double height, boolean depthBuffer, SceneAntiAliasing antiAliasing) Note:The antiAliasing argument will be used if the underlying graphics driver has anti-aliasing support. Where SceneAntiAliasing is an enum with the following entries at the moment: public enum SceneAntiAliasing { DISABLED, // disables anti-aliasing DEFAULT, // enables anti-aliasing using a default system setting available that balances speed and quality FASTEST, // enables anti-aliasing using minimum system setting available that results in better frame rate NICEST // enables anti-aliasing using maximum system setting available that results in best visual quality } Thanks, - Chien
Re: API Change Proposal - Re: MSAA and Scene anti aliasing
I am not sure I like the name of the value DEFAULT. To me default implies some kind of typical option for the particular platform which could conceivably be very different on each platform. For example, on my Windows super-computer with ultra fast GPU the default would logically be something like 16x whereas on my iPhone I would expect the default to be using only 2x. The comment for DEFAULT implies that it's really more of a BALANCED or MODERATE setting that would have the same characteristics on each platform. On 24 July 2013 06:29, Chien Yang chien.y...@oracle.com wrote: Hi all, We appreciate all the feedback you have contributed to this topic. After listening to the feedback and an internal discussion, we would like to propose a minor change to the API for supporting scene anti-aliasing. We intentionally choose not to expose the number of samples and techniques used in this release, but this doesn't preclude future addition when the time is right for more options. This change will be tracked by RT-31878 ( https://javafx-jira.kenai.**com/browse/RT-31878https://javafx-jira.kenai.com/browse/RT-31878 ): Anti-aliasing API Change Proposal: Constructors remove: public Scene(Parent root, double width, double height, boolean depthBuffer, boolean antiAliasing) public SubScene(Parent root, double width, double height, boolean depthBuffer, boolean antiAliasing) Constructor add: public Scene(Parent root, double width, double height, boolean depthBuffer, SceneAntiAliasing antiAliasing) public SubScene(Parent root, double width, double height, boolean depthBuffer, SceneAntiAliasing antiAliasing) Note:The antiAliasing argument will be used if the underlying graphics driver has anti-aliasing support. Where SceneAntiAliasing is an enum with the following entries at the moment: public enum SceneAntiAliasing { DISABLED, // disables anti-aliasing DEFAULT, // enables anti-aliasing using a default system setting available that balances speed and quality FASTEST, // enables anti-aliasing using minimum system setting available that results in better frame rate NICEST // enables anti-aliasing using maximum system setting available that results in best visual quality } Thanks, - Chien
Re: API Change Proposal - Re: MSAA and Scene anti aliasing
We are way past the feature freeze date for this release. The objective now is to ensure the API is clean and doesn't preclude future options. Currently MSAA is the only supported technique and specifying the number of samples will require additional API which we aren't ready to commit. - Chien On 7/23/2013 2:04 PM, Felix Bembrick wrote: Exactly. I think we need to come up with a word that implies that it's really a balance of quality and speed. That's why I suggested BALANCED but I am hoping we can do even better than that. As an aside, why did you decide to not expose the setting of either the AA type or number of samples? I would have though that serious graphics developers would really like to have such options available to them. On 24 July 2013 06:58, Chien Yang chien.y...@oracle.com mailto:chien.y...@oracle.com wrote: Yes, very good point, we struggled with the DEFAULT value too. It doesn't really convey the in between value of FAST and NICEST. - Chien On 7/23/2013 1:41 PM, Felix Bembrick wrote: I am not sure I like the name of the value DEFAULT. To me default implies some kind of typical option for the particular platform which could conceivably be very different on each platform. For example, on my Windows super-computer with ultra fast GPU the default would logically be something like 16x whereas on my iPhone I would expect the default to be using only 2x. The comment for DEFAULT implies that it's really more of a BALANCED or MODERATE setting that would have the same characteristics on each platform. On 24 July 2013 06:29, Chien Yang chien.y...@oracle.com mailto:chien.y...@oracle.com wrote: Hi all, We appreciate all the feedback you have contributed to this topic. After listening to the feedback and an internal discussion, we would like to propose a minor change to the API for supporting scene anti-aliasing. We intentionally choose not to expose the number of samples and techniques used in this release, but this doesn't preclude future addition when the time is right for more options. This change will be tracked by RT-31878 (https://javafx-jira.kenai.com/browse/RT-31878): Anti-aliasing API Change Proposal: Constructors remove: public Scene(Parent root, double width, double height, boolean depthBuffer, boolean antiAliasing) public SubScene(Parent root, double width, double height, boolean depthBuffer, boolean antiAliasing) Constructor add: public Scene(Parent root, double width, double height, boolean depthBuffer, SceneAntiAliasing antiAliasing) public SubScene(Parent root, double width, double height, boolean depthBuffer, SceneAntiAliasing antiAliasing) Note:The antiAliasing argument will be used if the underlying graphics driver has anti-aliasing support. Where SceneAntiAliasing is an enum with the following entries at the moment: public enum SceneAntiAliasing { DISABLED, // disables anti-aliasing DEFAULT, // enables anti-aliasing using a default system setting available that balances speed and quality FASTEST, // enables anti-aliasing using minimum system setting available that results in better frame rate NICEST // enables anti-aliasing using maximum system setting available that results in best visual quality } Thanks, - Chien