Black Dragon is MY Viewer, i decide which feature i want to add and which to remove, i share this Viewer to show the world that user base size is not important, i do rate quality by effort, thought and love put into the project, not some rough estimated numbers. I consider feature requests only if i you can name proper valid reasons i can agree on. It is my (unpaid) time i'm putting into this project, i'm not here to cater to every Joe's desires.

Sunday, February 16, 2014

Emergency Update

After some feedback, merging, fixing and testrunning it for a few hours i think this new update is ready to go live, i can't hold it back any further as it contains important fixes and HTTP.

I also missed alot writing in the last post, i didn't explain much because the original plan was to put everything into a huge Release post on 2.4 which might take another month or so.

Anyway, i'll do a run-down of some of the most important changes in this and the last update, so here we go:

User Interface:

With the implementation of my new right-mouse hold camera turn feature alot of bugs sneaked in, most of which i fixed before the update went out, theres no promise that i can fix all of them, there will always be bugs somewhere and one of these bugs was the inability to right-click into the tools floater more and more people kept reporting. The problem was found quickly, with the implementation of this feature i had to change how right-click menus work, the tools floater however was kept as it was and we all probably know that the tools floater hides itself as soon as we do any kind of unusual action not directly linked to building such as caming around. Consider this issue fixed, the tools floater will continue to hide as usual but not anymore when we right-click... or hold.

Last update also added the option to change Tone Mapping to "Custom", there were no options to customize it however, with this update you will see a bunch of new options in the Tone Mapping area to customize Tone Mapping when set to "Custom", they come with the usual "default" buttons aswell, don't be shy! play with them, you can just revert them back to default.

My change to how RenderShadowResolution works kept alot people with a huge questionmark over their head. Let's clear that one up too! RenderShadowResolution was previously a F32 debug, something like 1.0 or 0.5923643, it was a direct shadow resolution multiplier, multiplying your current shadow resolution, which was depending on your screen resolution, by your desired amount. I removed this F32 debug and put it into a Vector3 debug which is basically an array with 3 F32 debugs, like this: 1024,1024,1 or 1024,1024,1.0 in this case. It allows me to save the shadow width and height into the first 2 arrays and the multiplier into the third array, allowing us to customize shadow resolution freely. In "Display" you will find 3 sliders now, Shadowmap Width, Shadowmap Height and Shadowmap Multiplicator, these 3 together are the Vector3 i was talking about and they work just as you think they would work: (Width * Height) * Multiplicator. If you got a 1080p resolution like me, you would have to set it to 2048 * 1024 * 1.0 to roughly get what you did before this change, but why would you chose a such strange resolution if you can select a quadratic shadowmap like: 2048*2048*1.0 or 1024*1024*2.0. Can you still follow me or is your brain starting to overheat already?

I noticed an increasing amount of people with an issue that is causing them have tooltips on their screens forever, its (obviously) an user error, you open the "Interface" tab, see the scrollbar and start scrolling your Mousewheel, everyone does that. Scrolling however changes the value of spinners, even if you didn't focus them, i wonder why this was never changed... i changed it to disallow changing values as long as you don't focus that spinner, that means you can now safely scroll up and down using your Mousewheel without having to fear to accidentally your settings again. -- i love that wording.


Last update reduced the near-clip plane drastically. You don't know what that means? It means you can zoom closer onto your avatar or objects around you before they start "cutting off", this is exceptionally good in Mouselook where hands and other stuff often whoosh around near your head/eye position.

SSAO, Shadow Blur, Tone Mapping and some Glow settings have been finetuned a bit more for a better overall look, sunrise/dawn scenes should now have a fairly good visible "bleeding" effect for glow, that means, glow "bleeds" over as in its "overglowy", you can see this effect on these 2 comparison shots (might be hard to see because these are high resolution snapshots) aswell as the new glow defaults which generally brighten areas lit by the sun more than before. It creates a warm looking image.

Here are 2 comparison snapshots for the old and new Tone Mapping defaults, i'm sure you will like the new one, its probably the biggest visual change for Tone Mapping i've done since i added it.

Depth of Field has been changed in how it is calculated, this change comes from Tofu Buzzard who also did Screen Space Reflections and other nice things such as SSAO algorythm changes and haze fixes. Overall Depth of Field should be alot faster now for a very slight reduce in quality. Don't worry tho i will offer you an option to chose between all 3 different Depth of Field types in 2.4. You can see how the chair color bleeds slightly over its edge into the blurry scene, this doesn't happen in with the original slower Depth of Field but for now its a fair trade until you get the option to chose.

I limited the maximum blurriness a bit and finetuned the max CoF value for Depth of Field to prevent Depth of Field from eating all your FPS when its getting really blurry.

As of this update Depth of Field is now even easier to set up, you can now press CTRL + X to enable free selecting of a Depth of Field focus point, just like zooming on it...without zooming on it, just like you can in Flycam mode. Press CTRL + X to activate it, move your mouse to your desired focus point position and press Shift + X to lock the focus point there, Depth of Field will now stay focused on that point, no matter if you zoom on something else or if you move your mouse, to deactivate/release the focus point again just disable the lockon with Shift + X. You can also disable the free focus point selection with CTRL + X, that will make Depth of Field focus normal again, e.g focus on your Zoom point.



Added: Refreshing for our new custom Tone Mapping options and for our new Shadow Resolution array.
Added: Slider options for custom Tone Mapping preset, now we can truly customize it. Also changed FXAA name slightly so people don't oversee it that easy.
Added: Sliders for active/inactive floater transparency. I wonder where i lost them.
Added: Debugs for freely selectable Depth of Field. Needs a bit cleanup now.
Added: Freely selectable Depth of Field focus point, enable it via CTRL + X and lock it via Shift + X.
Added: Right-Arm Editing Motion option. Fixes awkward joint breakage on certain angles for both left and right arm.
Changed: ShowSelectionBeam now controls if our Avatar does the editing arm motion.
Changed: Controller defaults slightly for better seperation between walking diagonally and straight into one direction.
Changed: More finetuning for Controller defaults, remap all buttons to nothing except flycam when we click SpaceNav Defaults.
Fixed: Load/Save Camera position not working anymore.
Fixed: Inability to right-click into the Tools floater because it vanishes for a split second.
Fixed: Compile.
Removed: Debugging stuff for selectable DoF focus point.
SH-4667 HTTP Viewer reports network error instead of a misnamed joint on mesh upload
SH-4645 Viewer hangs on exit after cancelling a mesh upload.
SH-4516 Fix a subset of thread races in llmeshrepository
SH-4492 Create a useful README for llcorehttp.
SH-4490 More 'humane' error code presentation from llcorehttp callers
SH-4489 New debug/dev settings for control over new mesh behavior
SH-4478 Corrected/updated error handling for all retrieval operations.
SH-4411 Thread/mutex rework between main and worker thread
SH-4407 Tuning to get new code working as well.
SH-4371 Reduce 22mS inter-conenction latency on HTTP operations.
SH-4368 Adjust upload timeout parameters for slow networks.
SH-4365 Conversion of mesh uploaders to llcorehttp.
SH-4325 Viewer working mixed grid with GetMesh and GetMesh2 caps
SH-4312 Clumsy configuration coordination between mesh and corehttp
SH-4310 Better status checking and error logging in Mesh code.
SH-4257 Preparation for a new cap grant:  GetMesh2
SH-4252 Add second policy class for large mesh asset downloads
SH-4184 Conversion to llcorehttp.  Remove unneeded responder classes (moved to Handlers).
SH-4163 Run an initial series of 'B' tests on the mesh downloader code
SH-4162 Merge metrics repo into this branch and integrate
SH-4161 Integrate cpu metrics into LLDeadmanTimer and then metrics viewer
SH-4153 Port user and system cpu accounting from example program.
SH-4139 Convert http downloaders and responders to llcorehttp patterns
SH-4106 Significantly upgrade the HttpHeaders interface for SSB.
SH-4090 Integrating deadman timer with mesh repo downloads.
SH-4089 Unit test work for timer.  Knocked off some tests for the deadman's timer.
SH-4088 Deadman timer switch started in llcommon.  Unit test started.
SH-3690 Cleanup pass through code.

Sunday, February 9, 2014

Emergency Update

NOTE: This and the next update are emergency updates, to stay 100% compatible with whatever hellish stuff LL is cooking. This is just a fraction of the actual 2.4 that is planned.

Mark my words: this is definetly not the last update.

Linden Labs didn't release any new version this week, this emergency update however was announced for this week, so here it is, updated and with lots of fixes and additions.

I do not want to talk about these fixes and additions too much for now, it's late, i'm tired and i'm not in mood to write a huge post about all the new things now.

There are a few things i want to run down quickly, they are important and they need testing.


I think theres not much to explain how it works, you hold down your right mouse button and drag your mouse around and kazam, your camera/avatar rotates/turns around, something pretty much every MMO has and which SL is lacking very badly. One big upside of it is you can hold down right mouse and drag around to move your camera around after you zoomed on something, without having to old ALT or CTRL or Shift or any other of these pesky keys and it looks and works much smoother than moving your cam with keyboard. Yes. Right-click menus still work. Don't panic...they just work slightly different now, instead of opening as soon as you press down your right mouse button, they will open when you release it and only if you didn't move your mouse over a certain radius from your initial click position. Wonderfull magic.


This is something i really want to be tested, EVERYONE, get your controllers and space navigators out and map the shit out of them! Yes, map, as in mapping, as in remapping... you can remap pretty much all buttons on your controllers now to any common action, actions like toggling run, fly, mouselook, flycam, zooming in and out, rolling left and right, jumping, crouching and maybe even more. I urge you to try it if you got a controller. Especially space navigators are important since the fix for controllers might have impact on these and i really need to know that. The above video is meant to show that my Xbox360 controller now works just fine for avatar movement, no more camera stutter/jerking when trying to move and cam around at the same time.

More to read tomorrow...maybe.


Added: Ability to disallow using Mouse-wheel to change values in spinners. Prevents some nasty problems with hovertips accidentally getting set to infinite.
Added: Ability to remap all available and functioning buttons mainly of a Xbox360 controller.
- Works with up to 16 buttons (for other controllers or joysticks)
- Adds the ability to map zoom in/out/default, roll left/right, jump, crouch, toggle flycam, toggle run, toggle fly and mouselook to available buttons.
- Certain mappings only work in either Avatar/Flycam or Build mode because not all do make sense e.g Avatar has no roll, Build no run toggle and so on.
- Jump/Crouch works as Y up/down in Avatar fly mode, Flycam mode and Build mode.
- Adds a button to reset everything to Xbox360 controller defaults.
- Adds button widgets to visualize which buttons are currently pressed.
- Adds spinners to map all actions to buttons.
- Tweaks feathering to make the second finetuning slider obselete.
- Changes the whole layout of the joystick floater to a cleaned up version fitting to our new Preferences look.
- Moves OK and Cancel buttons to the bottom to make them always visible.
- Adds several Debugs to control all new mappings. Could be expanded to more stuff in future.
- Changes to Xbox360 defaults if we havn't had a non-spacenav joystick initialized before.
- May need some cleanup, it looks a bit hacky right now.
Added: Missing icon textures for our old-new toolbar buttons. Welcome back.
Added: Missing strings and icons for our old-new toolbar buttons.
Added: "Custom" Tone Mapping style.
Added: Several missing extra Toolbar buttons such as Pathfinding and Machinima ones.
Added: Hold Right Mouse Button to turn camera/avatar around.
Removed: Unused textures from preload.
Removed: "Shadow Resolution" slider and disabled "Underwater Distortion" checkbox.
Fixed: Realistic Mouselook going crazy when looking straight down/up. Clamp our pitching to prevent this.
Fixed: Camera resetting when jumping, crouching or flying up/down with controller resulting in slightly jerky camera movement.
Fixed: Jerky and broken camera movement while moving the avatar around with certain controllers especially Xbox 360 controller. Remove additional dead zones and use raw deltas instead, also stop resetting our camera when strafing.
Fixed: Viewer Icons.
Fixed: Crash when Alt-zooming around and pressing the right mouse button.
Fixed: Zoom cursor showing up on Third Person Steering Mode or Hold-Right-Mouse turning and even on just right-clicking.
Fixed: Green-tone of right-click dropdowns beeing too bright and sometimes hard to read on.
Fixed: UI Size always reverting to "Small" after relog when it was previously set to "Normal".
Fixed: (L$[COST]) strings in Inventory and Main Menu.
Fixed: Compiling issues.
Fixed: Compile errors after RLVa merge.
Fixed: More compile errors after merge.
Fixed: Camera resetting in Third Person Steering Mode and Hold Right Mouse-Button Steering mode while walking.
Fixed: Sampling blur twice because of merge magic.
Fixed: Crash when spawning the right click menu in Appearance Mode with enabled Appearance Camera.
Fixed: Right-Click menu not working when in Build/Edit mode.
Fixed: A bunch of right-click dropdown menus having a grey background instead of the normal menu background defined in colors.xml
Changed: New Shadow Blur, SSAO and Tone Mapping settings. Tone Mapping is now much more original SL like, extreme dull effect anymore and alot more colors, more than original.
Changed: Use Tofu's faster Depth of Field without Anti-Fringe until we can switch easily between all 3.
Changed: Drastically reduced near-clip plane, allowing for super close zooms and nearly 0 clipping in Mouselook. Thanks to Adeon for telling me.
Changed: Rip out all constantly recreated floats and vecs in SSR and add them as pre-created variables, we can set them later on but don't need to re-create them every time. Possibly a very slight performance increase.
Changed: Shadow Map Resolution to be quadratic depending on your screen width only.
Changed: Seperated shadow resolution completely, added a Vector3 to allow custom shadow width and height, multiply everything by Z.
Changed: Reflect custom shadowmap options in our "Display" panel.
Changed: Random loadingscreen preloading code. I might have to take a closer look since it seems to select the same picture twice in a row.
Changed: Group counter display to show (Current Count + Available / Maximum)
Changed: Torn-off right-click dropdowns should have no background color since they have a floater background.
Changed: Toolbar button flashing colors to a less ugly glowing white.
Changed: Glow default settings to a prettier and stronger glow.
Changed: Depth of Field Defaults, limit our absolute max blurriness to drastically increase framerate with extreme Depth of Field blurring.
Changed: Allow scrolling by default but only change values if the editor field has focus, otherwise dismiss our scrolling.
Changed: Disabled Underwater Distortion as it is non-functional right now.
Cleanup: Removed obselete code.
Misc: MISC.
Merge with RLVa
Merge with Fitted Mesh
Merge with Linden Release
Misc: Stuff.
MAINT-3575: remove old exe if found in current install directory
MAINT-3571: include settings_install.xml whether it contains settings or not
MAINT-3489: Make Mac updater script detect prematurely deleted .dmg.
MAINT-3412 Fix Intel Iris recognizer to include optional Pro as is reported with integrated-only graphics on new MBP
MAINT-3376 FIXED Successive llSetTextureAnim calls fail in 3.6.10 (283075) unless a different command (llSleep(0.01), llSay(0,"hello")) is placed between them.
MAINT-3356 GPU Table update to support Retina MBP 'Intel Iris OpenGL Engine' driver id on Mavericks.
MAINT-3353 fix
MAINT-3343 FIXED Expand/Collapse message pan only on left click.
MAINT-3338 fix disable of particle glow on false suspicion of lying network data
MAINT-3331: On update, remove com.secondlife.indra.viewer.savedState.
MAINT-3330 fix regression on mac caused by shader change for 3107 by rolling back to prev version of shader
MAINT-3312 : crash in LLVOAvatar::lazyAttach().   Reverted some earlier changes
MAINT-3311 Add avatar_lad and avatar_skeleton changes from Jeremiah
MAINT-3294 (Microphone button clipped when resizing Conversations List in CHUI)
MAINT 3099: remove any Vivox log file left in the program folder
MAINT-2258 : temp attachments getting removed improperly.  Reviewed by Kelly.
MAINT-140 revert to simplified cleanDeadObjects to avoid accidental refcounting crashes
INTL-126 fix incorrectly translated Boolean values in XUI; remove some obsolete strings
ACME-1099 : Fix crash when getting the Facebook cap from a (potentially null) region
DRTVWR-338 Make an inocuous change to get a new build number out of TeamCity
FITMESH-6, FITMESH-20  Fix for some objects disappearing when hardware skinning enabled and ALM disabled.
STORM-1993 In the About Land floater only send object return time to server when it has been changed
STORM-1992 'Open voice connection' and 'Expand participant list' buttons are overlapping each other in IM conversation after resizing.
STORM-1989 Overlapping UI elements in Upload Model floater
STORM-1987 Inconsistent menu naming and behavior in Places floater
STORM-1986 Added right click Show on Map context menu for Inventory floater landmarks
STORM-1984: Mousing over UI elements does not make them light up
STORM-1982 Remove duplicate entry in settings.xml
STORM-1981 Rough initial changes for evaluation purposes.
STORM-1980 Play sound for region restarting message
STORM-1975 IM windows occasionally report false typing status.
STORM-1950 MATBUG-360 MATBUG-361 fix recognizers for nV 680/690 cards
STORM-1831 Changing addRegionChangedCallback to more closely resemble the feature it replaces. This fixes the crashes reported by Whirly
MATBUG-360 MATBUG-361 STORM-1950 MAINT-2252 MAINT-2981 gpu table update
BUG-4685: remove any SecondLife.exe file left in the SecondLifeViewer folder by an install prior to 3.12
BUG-4286 add AMD R7/R9 entried to GPU table
BUG-3968: do not wear an object when renaming in inventory
BUG-3764: Groups count in groups list does not display if floater is resized
OPEN-196 add handler for socket.error
OPEN-195 Cleaned non-UTF8 safe characters
OPEN-113 Build > Upload > Model > Calculate weights & fee is not disabled in OS built viewers

Saturday, February 1, 2014

Emergency Update coming soon.

This is sort of... unplanned and was absolutely not expected to happen so soon, but since next week will feature a new Linden Release that will either contain the new HTTP stuff or Fitted Mesh, both of which may fuck up the Viewer in some way or another, i decided to make an "emergency" update that will contain either both or atleast the important one.

So... yes. Update confirmed. Half Life 3 confirmed aswell.