[sldev] Rendering Limits

Melinda Green melinda at superliminal.com
Sat Jun 20 18:44:19 PDT 2009


Maybe there is more than one XUI here and I could be the one causing the 
confusion but I had thought that what LL's calls XUI was an entirely 
homegrown XML schema. (Or is that LLUI?) Anyway, there's no connection 
to Java that I'm aware of, and being a big Java nut, I'd certainly have 
remembered that.

Good luck getting traction with your Snowglobe-Sharp API. That does 
sound interesting.
-Melinda

Dzonatas Sol wrote:
> The XUI standard is still tied to Java. That means the fully 
> scriptable XUI formats are limited to Java programmers. With the XUI 
> standard also being tied to mobile devices that depend on Java, well, 
> I guess the right question to ask is how to get XUI to work well, 
> being fully scripted (with Java), on mobile devices that don't run 
> Java? I'm sure further discussion on that will go beyond interfaces to 
> handle rendering limits.
>
> Also note, there are already Eclipse plug-ins for XUI builders. Since 
> there are more than a few, I'll just link to a forum about them: 
> http://sourceforge.net/forum/forum.php?forum_id=556171
>
> If the fully scriptable XUI/Java based interface can reach the same 
> API that any other alternative scriptable UI can reach, then that API 
> is key... rather than require transformations of XUI to any degree.
>
> Note, I have already made an API for ControlGroup classes in 
> Snowglobe-Sharp, and it does make things that much more powerful (as 
> you even noted with XUI).
>
> Melinda Green wrote:
>> It is definitely on the road map to eventually support a fully 
>> scriptable XUI format as well as to allow programmatic viewer control 
>> from external processes through published APIs. I don't expect that 
>> the native scripting language will be anything like LSL, but who 
>> knows, that might not be such a bad idea. Visual GUI builders are 
>> definitely another direction in which I expect this to grow, and 
>> implementing one as an Eclipse plug-in definitely looks like the 
>> quickest path to me. I don't know anything about Glade but perhaps 
>> that would make that task even easier. The key will be to get such 
>> GUI builders to read and write XUI files. That much could be done 
>> today even without any scripting ability, and even the LL designers 
>> struggle to hand-code XUI when such a GUI builder would save so much 
>> time in the long run. That's definitely a plumb task that an 
>> enterprising SLDev member could take on and earn much love. In the 
>> meantime I highly encourage anyone interested to get more familiar 
>> with the powerful XUI features available today. Much of it is 
>> undocumented, and helping to create *that* missing piece would be a 
>> great place to start since clear specs are absolute prerequisites for 
>> creating GUI builders or any other infrastructure on top of it.
>>
>> -Melinda
>>
>> Dzonatas Sol wrote:
>>> I think what some people want is a like a LSL based code-behind 
>>> feature to the UI.
>>>
>>> Did I say it? Oops, I did.
>>>
>>> Hold that thought.
>>>
>>> Actually, I'm eager for GtkBuilder to fully phase-in, then UI 
>>> builders like the Glade Interface Designer would have lots of fun 
>>> interactive, custom widgets ready to use in the palette:
>>> http://glade.gnome.org/screenshots.html
>>>
>>> Example vid of using Glade:
>>> http://people.redhat.com/overholt/nativeeclipse/
>>>
>>> Of course, that was with Eclipse, and the Eclipse UI is written with 
>>> Gtk. Hmmm - powerful enough for holistic programmers.
>>>
>>> Here is an older review of Glade: 
>>> http://loosexaml.wordpress.com/2008/10/14/giving-glade-a-fair-shake/
>>>
>>> The Glade Interface Designer is also a library, so it is embeddable 
>>> (into some viewer app someday maybe): 
>>> http://glade.gnome.org/docs/index.html
>>>
>>> Ok, I said too much.
>>>
>>> Cheers,
>>> http://twitter.com/Dzonatas
>>>
>>> Melinda Green wrote:
>>>> Nexi,
>>>>
>>>> I'm not stating an opinion about the value of Windlight controls 
>>>> one way or the other. I do agree with you that it would be better 
>>>> if the setting names were better chosen in order to organize them 
>>>> into some meaningful hierarchy, but the chance to do that passed a 
>>>> long time ago. Even if someone did the huge job of changing the 
>>>> names throughout the entire source code and XUI content, that patch 
>>>> would never be accepted because of the branches within LL (and 
>>>> externally) that would be affected. The end result is that once you 
>>>> name a setting or control, it's nearly impossible/impractical to 
>>>> change it. We're then left with an underlying flat list of settings 
>>>> for better or worse and I therefore believe this is *not* the place 
>>>> to start! We could of course impose an external organization onto 
>>>> that list though a config UI like you suggest. That sounds like a 
>>>> good idea to me but is completely orthogonal to taking advantage of 
>>>> the existing XUI<-->saved settings bridge.
>>>>
>>>> If anyone wants to see good examples of doing the sort of stuff I'm 
>>>> talking about, I recommend looking at the new View->Beacons floater 
>>>> implementation that I created. It was implemented almost entirely 
>>>> in XML, only requiring C++ code to launch the floater and to 
>>>> enforce a couple of the previous quirky interactions between the 
>>>> beacon types. The rest is implemented entirely in XUI making heavy 
>>>> use of the control_name tag. BTW, this is how many of the Windlight 
>>>> controls were implemented too and was where I found the examples I 
>>>> needed when doing the beacons work. This is an incredibly powerful 
>>>> and underused pattern.
>>>>
>>>> -Melinda
>>>>
>>>> Nexii Malthus wrote:
>>>>  
>>>>> Well, I think we could start by re-working the debug-settings menu 
>>>>> a bit.
>>>>>
>>>>> Load up Firefox and go to this page:   "about:config"
>>>>>
>>>>> Thats an excellent example of a good debug settings menu. The 
>>>>> settings are easily understandable imho.
>>>>>
>>>>> Seperated into their relevant sections,  I think it would be great 
>>>>> if we had that a similiar naming scheme. That would be at least 
>>>>> one step towards opening up the deeper parts of the engine towards 
>>>>> users. Not to mention the help it would provide to developers, 
>>>>> lindens and non-lindens alike for making it easier to test out 
>>>>> experimental features or performance optimizations.
>>>>>
>>>>> Imagine a naming scheme towards the graphical subsystems.
>>>>> render.spatial.maxnodesize for this situation as a loose example.
>>>>>
>>>>> Wouldn't it be easier and efficient to expose only the relevant 
>>>>> debug settings to each subsystem too? render.* being available to 
>>>>> the render stuff. network.* being for the network stuff.
>>>>>
>>>>> If we want to revamp the whole way preferences work we need to 
>>>>> move step-by-step from the bottom up.
>>>>>
>>>>> I do agree that the LL designers feel a bit itchy about the 
>>>>> current windlight preferences and I agree, it is messy. But its 
>>>>> wrong to hide the tools for the right job when you consider the 
>>>>> majority of individuals that are willing to go a step further to 
>>>>> make their experience so much better.
>>>>>
>>>>> Just look at the stuff Torley and other talented photographers 
>>>>> have made in snapshots by messing about in the windlight settings 
>>>>> and shadows.
>>>>>
>>>>> - Nexii Malthus
>>>>>
>>>>> On Fri, Jun 19, 2009 at 9:45 PM, Melinda Green 
>>>>> <melinda at superliminal.com <mailto:melinda at superliminal.com>> wrote:
>>>>>
>>>>>     That's an interesting suggestion, Nexii. I'm not sure how the LL
>>>>>     designers feel about all those Windlight preferences but I
>>>>>     wouldn't be surprised if they'd mostly prefer to hide or 
>>>>> eliminate
>>>>>     most of them. There's always a tension between number of controls
>>>>>     and the all-important SL learning curve.
>>>>>
>>>>>     One way to break this logjam is to start using the new XUI
>>>>>     features to allow external designers to create custom UI without
>>>>>     the need for developers to hook them in and compile entire custom
>>>>>     viewer binaries and then update them with each viewer version.
>>>>>     Skinning is the first step on that road but there is a lot of
>>>>>     other useful stuff under the hood that can also be used today. My
>>>>>     favorite is the "control_name" XUI tag which lets you associate
>>>>>     check box and slider values with particular saved settings. When
>>>>>     you load a floater or other XUI element containing a check box or
>>>>>     slider with that tag, then it takes it's initial value from the
>>>>>     named saved setting and automatically saves back out modified
>>>>>     values as the user interacts with those controls.
>>>>>
>>>>>     This is extremely powerful and should let you create your custom
>>>>>     panel to control any of the boolean or real valued settings that
>>>>>     you see in the debug settings floater. The only thing really
>>>>>     missing here (other than support for more control types) is the
>>>>>     ability to launch a custom floater. Ideally that would come with
>>>>>     the badly needed keyboard remapping functionality to allow you to
>>>>>     specify a hot key to load a named floater. (Hint: Great Snowglobe
>>>>>     feature here!) Since we don't have that yet, you'd probably have
>>>>>     to append your controls to some existing floater if you want to
>>>>>     add controls without programming, but that shouldn't be too 
>>>>> awful.
>>>>>
>>>>>     -Melinda
>>>>>
>>>>>     Nexii Malthus wrote:
>>>>>
>>>>>         I think by spatial groups you could consider how dense an 
>>>>> area is.
>>>>>
>>>>>         We really should open many more options on the preferences
>>>>>         menu. Perhaps it should branch off into a seperate menu 
>>>>> due to
>>>>>         the relevant complexity, imagine how complex the windlight
>>>>>         sliders are, but they are also nicely dispersed into their
>>>>>         relevant categories and sections. We should aim to achieve 
>>>>> the
>>>>>         same, not to mention the explanations that were provided in
>>>>>         the WindLight menu were pretty cool and awesome to understand
>>>>>         what the settings do.
>>>>>
>>>>>         WindLight is a mere single subsystem of the entire graphics
>>>>>         system, why can't we have the same attention put into other
>>>>>         areas in terms of control via the UI?
>>>>>
>>>>>         There are many hidden settings, some that are not even
>>>>>         affected by the more generalised "Low, Medium, High, Ultra"
>>>>>         that have an impact on FPS and the experience.
>>>>>
>>>>>         L$0.02.
>>>>>
>>>>>         - Nexii Malthus
>>>>>
>>>>>         On Fri, Jun 19, 2009 at 7:50 PM, Harleen Gretzky
>>>>>         <gretzky.harleen at gmail.com <mailto:gretzky.harleen at gmail.com>
>>>>>         <mailto:gretzky.harleen at gmail.com
>>>>>         <mailto:gretzky.harleen at gmail.com>>> wrote:
>>>>>
>>>>>            It appears to be more than just jewelry that is effected.
>>>>>            VWR-14049 and VWR-14146 are builds that are effected 
>>>>> also. When
>>>>>            posing this question I was really trying to understand 
>>>>> how the
>>>>>            rendering limits work. For instance, does the 
>>>>> renderMaxNodeSize
>>>>>            limit apply to the entire scene, or only to portions of 
>>>>> the
>>>>>         scene?
>>>>>            Does it apply to avatars as well as objects? It seems 
>>>>> to have
>>>>>            something to do with 'spatial groups' but what are 
>>>>> 'spatial
>>>>>            groups'? Is renderMaxNodeSize the only rendering limit?
>>>>>
>>>>>            If renderMaxNodeSize is the only setting that, I would
>>>>>         think the
>>>>>            best solution as has been suggested on the JIRAs and 
>>>>> here is to
>>>>>            move the setting onto the Graphics preference tab. 
>>>>> Since it
>>>>>         seems
>>>>>            to be a little low for those running graphics at High and
>>>>>         Ultra it
>>>>>            should probably be increased for those users. So maybe
>>>>>         something like:
>>>>>
>>>>>            Low - 2048
>>>>>            Mid - 4096
>>>>>            High - 8192
>>>>>            Ultra - 8192
>>>>>
>>>>>            Then if a user chooses Custom there should be a slider
>>>>>         control to
>>>>>            allow it to be set to the value of their choice. Just my
>>>>>         two cents.
>>>>>
>>>>>            -Harleen
>>>>>
>>>>>
>>>>>            _______________________________________________
>>>>>            Policies and (un)subscribe information available here:
>>>>>            http://wiki.secondlife.com/wiki/SLDev
>>>>>            Please read the policies before posting to keep 
>>>>> unmoderated
>>>>>            posting privileges
>>>>>
>>>>>
>>>>>         
>>>>> ------------------------------------------------------------------------ 
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>         _______________________________________________
>>>>>         Policies and (un)subscribe information available here:
>>>>>         http://wiki.secondlife.com/wiki/SLDev
>>>>>         Please read the policies before posting to keep unmoderated
>>>>>         posting privileges
>>>>>
>>>>>
>>>>>     
>>>> _______________________________________________
>>>> Policies and (un)subscribe information available here:
>>>> http://wiki.secondlife.com/wiki/SLDev
>>>> Please read the policies before posting to keep unmoderated posting 
>>>> privileges
>>>>
>>>>   
>>>
>>
>
>


More information about the SLDev mailing list