+1. Well said.

- Chien


Sent from my mobile phone. Please excuse my brevity.

On Jul 15, 2013, at 12:19 PM, Thor Johannesson <thor.johannes...@oracle.com> 
wrote:

> I think there should be a simple way to request full scene anti-aliasing to 
> improve 3D rendering. And also an optional more advanced way to specify which 
> type…
> 
> The current way of setting AA is nice simple hint.
> Scene(Parent root, @Default("-1") double width, @Default("-1") double height, 
> boolean depthBuffer, boolean antiAliasing)
> 
> For the advanced variation, I think it might be premature. Considering there 
> is an ugly workaround to specify number of samples for MSAA, with 
> “prism.multisample” system property.
> 
> Exposing too much detail selection too early will only lead to unnecessary 
> complication.  The fact we are using MSAA for full scene anti-aliasing to 
> improve the quality of 3D rendering is an implementation detail.
> For platforms that do not support MSAA or have high restrictions on memory 
> then we might employ a different technique.  For example edge anti-aliasing 
> by post processing.  Once that is in place it makes sense to provide more 
> control to the user.
> 
> -Thor
> 
> On Jul 15, 2013, at 8:05 AM, Kevin Rushforth wrote:
> 
>> I am fine with an enum that represents the style of AA requested: NONE, 
>> MSAA, SOME_OTHER_AA, ...
>> 
>> It is the combining of number of samples into the enum that seems 
>> undesirable to me. I would prefer that be a separate Integer attribute.
>> 
>> -- Kevin
>> 
>> 
>> Mario Torre wrote:
>>> 
>>> At first I was about to reply a +1 to Kevin, but then I realised:
>>> 
>>> 1. This is indeed an area where people want to know the implementation 
>>> details.
>>> 
>>> 2. An enum can be extended with different implementations, for example add 
>>> a non MSAA to the mix.
>>> 
>>> The drawback is that the enum may grow just for the need to add a new 
>>> property to the AA algorithm. I'm not sure how likely this is, but I didn't 
>>> see that many actual implementations to consider that an issue.
>>> 
>>> If this is the case, one may have a descriptor object passed rather than an 
>>> enum, so that external implementations may easily extend/replace the 
>>> default code.
>>> 
>>> The descriptor could be an opaque type so that the code that needs to 
>>> handle knows about it, but for users it still behaves like if it was an 
>>> enum. In fact, the defaults may even be collected in an enum again.
>>> 
>>> Cheers,
>>> Mario
>>> 
>>> Il giorno 15/lug/2013 01:24, "Richard Bair" <richard.b...@oracle.com 
>>> <mailto:richard.b...@oracle.com>> ha scritto:
>>> 
>>>   I know iOS gives at least two or three options. A single enum
>>>   seems cleaner than two properties (and yet another constructor!
>>>   Speaking of which it would be better if this were a mutable property).
>>> 
>>>   Is it that you don't like that some options can't be honored?
>>> 
>>>   On Jul 13, 2013, at 12:00 PM, Kevin Rushforth
>>>   <kevin.rushfo...@oracle.com <mailto:kevin.rushfo...@oracle.com>>
>>>   wrote:
>>> 
>>>> I don't really like the single enum approach. I would prefer to
>>>   keep the existing MSAA boolean, and then, if needed, add a
>>>   separate attribute for requesting the number of samples; if
>>>   desired there could be a read-only attribute that returns the
>>>   actual number of samples used. Most chipsets give limited (or no)
>>>   control over the number of samples anyway so an enum doesn't seem
>>>   like a good fit.
>>>> 
>>>> -- Kevin
>>>> 
>>>> 
>>>> Gerrit Grunwald wrote:
>>>>> +1 for the enum approach...will make it easier to enhance for
>>>   future options...
>>>>> 
>>>>> Gerrit
>>>>> Am 12.07.2013 um 19:55 schrieb Richard Bair
>>>   <richard.b...@oracle.com <mailto:richard.b...@oracle.com>>:
>>>>> 
>>>>> 
>>>>>> Thor recently pushed an implementation for MSAA for those
>>>   cases when the feature is supported by the card and where a Scene
>>>   (or SubScene) is created with the antiAliasing flag set to true.
>>>   MSAA is "Multi-sampled Anti Aliasing", which means that the
>>>   graphics card, when configured in this mode, will sample each
>>>   fragment multiple times. The upshot is that 3D doesn't look as jaggy.
>>>>>> 
>>>>>> However this has an impact on performance (usually an extra
>>>   buffer copy or at the very least you will be sampling each pixel
>>>   multiple times so if you are doing something graphically intense
>>>   then that might push you over the edge where you start to see
>>>   performance degradation). Now multi-sampling can be 2x, 4x, etc.
>>>   The higher the multi-sampling value, the better the quality, and
>>>   the lower the performance.
>>>>>> 
>>>>>> I'm also bothered but the name "antiAliasing" because there
>>>   are many forms of anti-aliasing in the world and it isn't clear
>>>   which this is. I think perhaps we should instead have an enum. The
>>>   idea is that we can add to the enum over time with greater options
>>>   for how to perform the scene antialiasing.
>>>>>> 
>>>>>> public enum SceneAntiAliasing {
>>>>>>  DISABLED,
>>>>>>  DEFAULT,
>>>>>>  MSAA_2X,
>>>>>>  MSAA_4X
>>>>>> }
>>>>>> 
>>>>>> And then grow it over time to include potentially other
>>>   techniques. My thought here is that the implementation is going to
>>>   matter to folks. They're going to want to be able to make the
>>>   performance / quality tradeoff, and perhaps even the
>>>   implementation tradeoff (since different implementations may
>>>   provide somewhat different results). DISABLED turns it off,
>>>   obviously. DEFAULT allows us to pick what we think is the best
>>>   (might be different on different platforms. Desktop might go with
>>>   MSAA_16x or equivalent while iOS might be MSAA_2X). Then some
>>>   standard options.
>>>>>> 
>>>>>> Thoughts?
>>>>>> Richard
> 

Reply via email to