Hey guys and gals!
Its been a little while but we are sure you will find that the wait was worth it. We have cool new visual settings and options from Ayamo and Geenz as well as a whole bunch of new features outline in our last blog post.
We’ve noticed that our viewer is starting to get some attention from Photography and Machinema communities in Second Life, and we are completely thrilled to see people being creative with Exodus! As a great big thank you, we have made some cool new things to make the viewer even more special for users wanting enhanced visual control.
Some viewers pride themselves as having “great graphics.” Fact of the matter is that most of these features are available in any viewer and can be accessed from the debug menu. While not the most user friendly way of doing it, the debug menu offers up some amazing options. So we have decided to make a neat menu with sliders to control some graphics options that seem to be popular. This gives choice to you. We will never release Exodus with crazy graphical presets that we assume you will like, or sacrifice viewer performance for the sake of some eye candy.
We’re also previewing the new mesh deformer thanks to the awesome work that Qarl has been doing! You can find the option to turn this on/off in the "Advanced" menu, under "Rendering Features", give it a try and send your feedback over to https://jira.secondlife.com/browse/STORM-1716.
So what's the big deal? Read on to find out. I will hand you over to Geenz.
This is Geenz here to explain what kind of new rendering features I’ve came up with for this release!
The first big feature on the table, is floating point frame buffers. Floating point frame buffers allows for a variety of fancy techniques. Amongst those techniques that magically "just work" is light bloom!
Now that we have floating point frame buffers, we can also do things like HDR tone mapping, shader-based gamma correction, and a few other techniques that generally benefit from high precision (or in our case, half precision) frame buffers. This feature can be enabled via the freshly revamped Visuals window.
On the subject of tone mapping, we've also adding a technique named "Filmic Tonemapping". The biggest benefit of this technique, is it allows for more film-like quality tone mapping in comparison to other tone mapping techniques. This feature may be further extended in the future to allow for even more fine tuned control over the scene’s tone mapping.
To complement this effect, we've also added vignette. Vignetting as it’s called in photography, is a technique that basically lowers the brightness of the image around the corners and edges of the image, leaving the center of the image brighter than the edges.
Note: The avatar shown above is the recent Blue Galaxy mesh cat.
Just like most Exodus features of this nature, Vignette is completely adjustable, and in this case, even works without deferred rendering being enabled! Machinimists and Photographers are sure to greatly appreciate these features!
I’ve been working on Gamma Correction as well, which is a technique that’s seen a fair bit of attention recently in the game industry as of late.
Basically, everyone's monitors display color values in what's known as "gamma space". Most people’s monitors tend to have a gamma curve roughly around 2.2. Most textures and general color values are typically created in gamma space, meaning that nine times out of ten, they'll look correct on the vast majority of displays out there. Linear calculations used in 3D graphics however, aren't typically done in gamma space, and as such need to be corrected for your monitor’s gamma output for the “correct” results.
What this means, is in most circumstances, the shading you see on 3D objects is technically incorrect due to the issue of most linear equations not accounting for the display’s output gamma.
To account for this, I've chosen to implement gamma correction within the viewer. This produces "more accurate" shading within a scene, and a more "next-gen" like appearance of shaded objects that you typically see in many current generation games now days, while preserving the color fidelity of existing textures in Second Life.
Within today’s release of Exodus, I’ve implemented shader-based gamma correction by converting in-world textures into a linear color space, and then applying the final correction as a post process. This may change in the future to come closer to getting gamma correction “for free”, by reading in-world textures as sRGB, and writing the final color values to an sRGB frame buffer, and having OpenGL work its hardware sampling magic from there. Work was done to do this before today’s release, but ultimately shader-based gamma correction was found to be the least problematic approach to this, and has proven thus far to be much more compatible with most OpenGL implementations out there, such as Apple’s older OpenGL implementations on OS X 10.6, and some of AMD’s older drivers on some of their hardware.
As always, we value performance and stability greatly with our viewer, and as such, these options will be disabled by default, but can be enabled either via their debug settings and via the new Visuals window in the new release.
It's also worth mentioning that some of these features may change in the future based upon resident feedback (don’t forget, we have a forum!), such as the tone mapping implementation and the floating point render texture implementation. Our current builds use RGBA16F 64-bit render textures, though we may opt for more compact floating point render buffer formats in the future, as we optimize our rendering pipeline further.
Starting with this release, we’re now shipping Qarl’s mesh deformer. Everyone on the Exodus Viewer team is very excited about Qarl’s work on his mesh deformer, as it’ll make things easier for both content creators and regular SL users alike!
The basics of the mesh deformer are this: have you ever made a mesh jacket, and found that you needed to make several different sizes to fit most of your customer’s shapes? Have you ever bought a pair of mesh pants, only to find to your frustration that they don’t respect the shape you’ve put so much time and effort into tweaking and making "just right"? Then the mesh deformer is for you!
The parametric mesh deformer allows any wearable mesh to fit to whatever shape you have applied to your avatar, by simply wearing the mesh! Of course, this is currently alpha code, and as such we’re shipping this feature as a preview that you must enable in the viewer manually due to its potential stability problems, and its ability to make existing content look odd. Please keep in mind that only people who have the feature enabled will be able to see the deformer in action, meaning people using a viewer that do not have the deformer enabled will be unable see anything different for people who do. We’re including this in the hopes of being able to gather user feedback for Qarl, so that he may improve the deformer as time goes on.
In the next release, you’ll be able to easily tweak settings like shadow map resolution, camera f-stop for depth of field, and several other settings relevant to machinema and photography! All of these can be found in the new “Visuals” window in this release.
Of course, even with these new photography and machinema oriented rendering features, we definitely won’t be stopping here with rendering enhancements! In the near future, I will be adding features such as motion blur, and of course be finding various performance enhancements for the above mentioned features.
Unfortunately, the Mac version of today’s release will be a bit late on being available to the general public in comparison to the Windows and Linux versions, but we’re working hard to have it available later today.
So there you have it guys and gals. We are hard at work to bring you the very best combat viewer in Second Life. You asked for more general features and we listened! Thanks for all of your support, we really hope you like the new release.
- Known Bugs
- Some windows appear at the top left of the screen, and or don’t persist positioning on relogin, we’re aware of this problem and hope to have it fixed soon.
- If you have buttons placed at the bottom of your screen, you will be unable to place your chat-bar into the bottom left.
- The mesh uploader seems to be unable to create/use the physical randomly.
- Alpha blended fullbright objects and eyelashes will occasionally go white when changing rendering settings with gamma correction enabled. Expect to see this fixed in the next update.
- Gamma correction currently requires shadows to be enabled, but the tickboxes don't imply this at the moment, without shadows enabled you'll just get a over brightscene, enable shadows to see the correct effect. Expect to see this fixed in the next update. Read more about this bug here.
- Merged our viewer to the latest Snowstorm, which includes the new snapshot window included too, that allows you to take snapshots to your feed. Such a great feature, so hat's off to the Lab for improving our profiles even more!
- Added Firestorm’s mesh uploader. We’re still trying to work out the kinks, but we decided to add the functionality in early.
- Added Qarl’s mesh deformer, hiding under the Advanced menu currently, within the Rendering Features sub-menu. Give it a try, if you know what you’re up to!
- Added RLVa thanks to Kitty (from Catznip Viewer) and Chalice (from NaCl Viewer). Enable this through the advanced menu. A restart is not required, thanks to Chalice’s changes.
- Added a new "chat console" feature, rather than using the notifications/toasts, your chat can be sent to a v1 style console, which functions exactly the same as it did back on v1.
- Added an option to have chat and instant messages in a very cool, mono spaced, Irssi inspired style, which some users will absolutely love!
- Added a set of new options to the "FUI" buttons, allowing you to have smaller buttons, or buttons without icons, so hopefully you'll find a setting you like. If you've got any ideas for more settings like this, be sure to give us a shout!
- Added a bunch of new buttons you can swap in/out.
- Added a new button labeled, "redraw", this button will set your draw distance down to 0 for three seconds, then back to what it was set to before, useful for when things aren't appearing.
- Added a patch from STORM-591, which fades in/out parcel media streams, very nice work Jonathan Yap.
- Added script alert/notifications, allowing you to see when the script count in the region shoots up, or down.
- Added option to move notifications and instant message chicklets to the bottom right, rather than the top right, thanks to Kitty from Catznip Viewer.
- Added/replaced the vanilla build tools with Firestorm's fancy ones, with all the little copy paste buttons, and other improvements.
- Added an option to see friend-foe arrows floating around the sides of your screen while in third-person, as requested!
- Added a set of buttons to save or load position and rotation information of a object into it's description, very useful for when moving builds from one region, to another.
- Added support for AZERTY keyboards (for movement, ZQSD rather than WASD), as requested!
- Added the preferences window option to the menu's on the login page, most of the options should work while you're not logged in. Some are per-account settings, those obviously wont save till you're logged into an account, need to look into disabling those, if any.
- Added an option to have crouch in a toggle mode, so you only have to press your crouch button once to stay in crouch, rather than holding it for extended periods of time, as requested!
- Added an option to save scripts as Mono/LSL2 rather than forcing you to use LSL2 while editing scripts that are in your inventory, as requested!
- Added an option to adjust your avatars Z offset, so if you're avatar is sunk in the ground or floating because of attachments/animations, you can go ahead and change your offset, as requested!
- Added a new menu item under build, scripts, which gives you the ability to remove scripts from a selection, from the build menu under the sub-menu "scripts".
- Added a high precision rendering mode that makes use of 64-bit frame buffers under Deferred Rendering. This allows for lighting information in deferred rendering to exceed a range of 0 to 1, allowing for effects such as light blooming on over-brightened surfaces. This is only available in deferred rendering.
- Added shader-based gamma correction. This is only available in deferred rendering.
- Added Filmic Tone Mapping. This is only available to deferred rendering.
- Added vignette. This is available in both deferred and non-deferred rendering.
- Adjusted the default chat bar to be a little more minimal, and not get in the way of things. Sadly at the moment if you have placed buttons at the bottom of your screen, you will be unable to put your chat-bar into the bottom right of your screen.
- Made various improvements to the skin, fixing alignments of various windows such as the login screen, and giving shades of blue rather than white/grey where suited.
- Made the AO persist on/off status, so if you disable it, it will stay disabled when you relogin.
- Enabled "copy" menu item on worn items, allowing you to make a backup of items, as requested! You may have made a mistake on while editing. Copying it while attached will usually take a copy of the state it was before you attached it.
- Enabled "restore to last position" menu item, in inventory. Just to note this feature doesn't always work as expected, and it restores it to the last position in-world, do not use this for your attachments.
- Various tick boxes in the new build tools, have a modifier so if you hold CTRL or SHIFT it will force tick/untick the box, ignoring it's current state. Very useful for when you're dealing with large selections of locked items. We may extend this feature to all tick boxes in a future release.
- Fixed various cases where names were displayed twice in chat, that shouldn't happen anymore!
- Beacons will now work in mouselook (as they don't in the official viewer, due to implementation,) as requested from various members of the combat community, I saw no reason why not to "fix" this feature.
- Fixed the about land button sometimes breaking, they should work a lot better now.
- Fixed mouse look sensitivity, while zoomed in using the right mouse button, looking up and down would be over sensitive compared to left and right.