This 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, May 22, 2016

Black Dragon Viewer - Update 2.5 - Alpha 3 "Roaring Dragon"

Today, is the day, my birthday.

I thought it would be a good thing to make an update today, right?

So i took the last 2 days off of playing Stellaris and merged all the way up to the very latest Linden Release and broke the Viewer twice in the process. Seriously, it's broken this time. I swear.

As always i need feedback what's broken. Also, did you see the pitiful try of LL to explain the new jellydoll feature? It's finally official! Soon we shall all be single color low res sprites. Except me of course, my render complexity is always too damn low.

This update also contains some changes i did before i started getting occupied with Stellaris, including an updated object profile window...

the ability to control the alpha value in colors via the color picker... (only works with UI colors and only those who actually use it)

completely revamped pie menus...

and a bunch of other things i sadly don't have pictures of, such as my old SSFUI returning (partially).

Have fun.


Added: Ability to change alpha/transparency of a color in the internal Color Picker.
Added: Ability to use multi line in the pie menu to prevent clipping.
Added: Option to ignore "Choose Sex" selection on login.
Changed: Pie Menu color, transparency, highlight and fading transparency.
Changed: Reworked all pie menus, removed old features, added new, reordered everything.
Changed: "Copy UUID" to "Copy Avatar UUID"
Changed: All necessary pie menu slices to use multi line.
Changed: Added an outer ring with a highlight indicating the slice is a menu.
Changed: Overhauled Pie Menu look, made it look more like an action wheel.
Changed: Applied tools floater layout to the inventory object profile panel.
Changed: Applied tools floater layout to the inworld object profile panel.
Changed: Don't waste time rendering an empty label in the pie menu.
Changed: (SSFUI) Use SLURL's for creator/owner and group name in the Object Profile.
Changed: (SSFUI) Use SLURL's for IM/Group messsage headers.
Changed: (SSFUI) Use SLURL's for online notifications.
Changed: Replaced Avatar Render Complexity debug options.
Changed: Seperated money notification into spend and receive options.
Changed: Don't halt startup progress because of "Choose Sex" dialog as our Avatar might actually appear regardless.
Changed: Version to 2.5 Alpha 3.
Fixed: Dragon main menu becoming invisible on certain aspect ratios.
Fixed: Spelling error.
Fixed: Viewer not able to show the notification it just received error.
Fixed: Absolutely devastated compile. Need to manually fix every, single, file, soon.
Fixed: Project cannot be setup because keys.xml is missing.
Fixed: Compile, again. RLVa and Graphic Presets broken, possibly more.
Fixed: About Viewer showing old unused info.
Fixed: Cannot save presets.
Removed: Greater/Smaller than symbols as they are no longer used as indicator for a menu.
Removed: Pie Menu separator lines.
Removed: Spammy debugging code for pie menus.
Removed: Derender Avatars over byte limit option.
Merge with Release 4.0.5 (~620 changes)
Merge with Release 4.0.6 (~300 changes)

Monday, April 25, 2016

Black Dragon Viewer - Update 2.5 - Alpha 2 "Beyond"

This update focuses on the very scarce feedback i've gotten so far.

It should fix quite some enormous log spam, errors, wrong debug options, some debugs possibly not saving, as well as some people's problem not being able to enable Deferred with mid-range GPU's.

See the changelog for all the changes and tell me if your issue was fixed.

Lastly i made some quick comparison shots too, so i can remind you of the basic graphical differences.

Note: I tried using the same camera position and rotation, using scripted camera on the first 2 shots and manual positioning on the last 2 ones. I've also used exactly the same sky preset and used max graphics on both Viewers (except the last shot where Volumetric Light makes little sense). Both Viewers use different camera settings and the world rendering screen in the LL Viewer is slightly smaller in height which changes the field of view outside of your own field of view setting making it impossible to get the exact same shot, but they should suffice i suppose. Also clouds, freaking impossible to sync up in both viewers... ugh.


2.5 Alpha 2

Changed: Set Window Size floater layout and style to match the new stylings in Preferences.
Changed: Increment steps of SSAO Factor slider to 0.01 for greater precision.
Changed: Applied SSAO Factor increment changes to Machinima Sidebar slider too.
Changed: Display preferences layout for better readability.
Changed: Joystick floater (Flycam Setup) layout and title colors to comfort the style used in preferences.
Changed: Made feathering sliders spinners for easier and more precise control.
Changed: Camera, Keybinds and Sound preferences layout slightly for visibility.
Changed: Applied the new preferences layout to UI Colors preferences tab.
Changed: Trigger threshold for texture memory warning raised to 1024mb total.
Changed: Make SSR stronger.
Changed: Disallow Third Person Steering mode in Mouselook.
Changed: Toggle Third Person Steering Mode off when switching to Mouselook.
Changed: Version to 2.5 - Alpha 2.
Fixed: Warning in floater_window_size.
Fixed: Warning in preferences floater.
Fixed: Several warnings about missing fonts used for languages we don't even support anymore.
Fixed: Set Window Size resolution buttons not working.
Fixed: Compile error in render pipeline.
Fixed: Wireframe mode in Deferred.
Fixed: Almost everything being invisible in non-Deferred.
Fixed: High UI/Find Widget frame spikes and errors of wrong control types.
Fixed: Right-Click touch being greyed out at all times.
Fixed: Bottom buttons in Places floater not clickable.
Fixed: (Potential) Some people not being able to turn on Deferred due to incompatibility with forced advanced shader level 2. Keep forcing shader level 2 as option.
Fixed: bindTexture and enableTexture spamming into the millions.
Fixed: Loading presets causes the display to go all crazy and breaking the display panel.
Removed: 800x600 Resolution from Set Window Size floater.
Removed: Shadow Occlusion.
Removed: First shadow split offset. (Seems to fix the ugly double-shadow on some windlight presets)
Removed: RenderShadowType control call.
Misc: Some Vector4 implementation cleanups. VW still not triggering a callback.
Misc: Viewer care and feeding, cleanup and unbreaking more tiny stuff that will never make a difference.

Friday, April 15, 2016

Aaaand i'm done.

After the gathering comes the scattering.

The past week was hell on earth for me. Not because the job or my boss was shit but because it was simply too much for me, so much that even my boss told me that i should stop and that i'm going to risk going into hospital if i continue. So there i am, jobless, again.

You all got your lovely, bitchy Niran back.

Saturday, April 9, 2016

Bad News.

I was secretly expecting to get a job soon and sadly (for you) yesterday i got this super random call if i want a job, because there's one i could get pretty much right now, all i had to do was work for 2 days and see if everything is fine. So after these 2 days now, everything seems fine, payment seems good, no over hour bullshit and if, i do get paid immediately, also my boss seems really nice, so are my new fellow workers. Boss already told me that i'm in, which now means i'll do the usual 40 hour week + optional Saturday 3-hour-bonus cash day. And it's not an easy job, i'm working as car mechanic, which honestly was pretty much the last thing i would have ever looked for (working with cars was never my thing, i know i'm weird). So for now i'll pretty much have  very few hours a day where i can actually do what i want and that massively cuts into the already really limited time i used to put into the Viewer lately. I totally expected this to happen in 1-2 months maybe when i finished the last official release. Well, that's life i guess. I will still always be there (offline mails or online) for support so don't worry about that. It just might take longer to get unplanned stuff and additional stuff (non merging with Linden) done now, don't worry, i will still maintain the Viewer to stay compatible as quick as possible, after this release.

Friday, April 1, 2016

Black Dragon Viewer - Update 2.5 - Alpha "Omega"



So, this is it mh? The "final" update is just around the corner. As announced long ago, back then i said i'm going to do about 50 more updates (until 2.5) and here we are now. This is 2.5... well, the Alpha of it. Why Alpha? I have made extreme changes to how Deferred is handled and this might totally blow fish out of the water and i want to know before i release the actual real 2.5 update and call it the last official update.

This update contains a tremendous amounts of changes all over the place, most noticeably the Interface and Deferred Rendering, i won't go into detail for any of these, it will all be done in the actual 2.5 update post that will be coming someday when Bento is released. Bento is also the only thing that is holding back 2.5 now. What i need is a metric fuckton of feedback about the UI changes and how well the Deferred Rendering still works. There's only ONE on and off toggle now, no more Vertex Shader, Atmospheric Shader etc, nothing. Just Deferred on or Deferred off or "super duper hyper broken do not ever use again mode" how i call it. Please, whatever you do, do NOT toggle Deferred off, i left the Deferred toggle in so you can enable it, in case you didn't or in case the Viewer set it lower than that. This Viewer is made for Deferred and ONLY for Deferred. Any potato PC can run Deferred nowadays, just disable shadows and the other stuff and you are good to go.

Note there's still quite some stuff missing such as the "Tutorial", many helpful pages, the manuals page on my blog which has been unfinished for many months and there are still quite a few features and UI overhauls i want to do. Appearance/Edit Shape for example.


2.5 Alpha

Added: Ability for Viewer to handle Vector4 control types.
Added: Ability to control every shadowmap size seperately and independently.
Added: Ability for preferences floater to utilize each of a Vector4's values.
Added: Ability to clear derender list without switching SIMs.
Added: Warnings for several options that may cause problems.
Added: Readded negative blur passes.
Added: Ability to control SSAO passes.
Added: Options to Preferences - Display to control the amount of samples for Shadow and SSAO blur.
Added: Light Softening option to Display Preferences.
Added: Light Softening option to Sidebar.
Added: Separators to display prefs to better separate groups of options.
Added: Separator image.
Added: Slider track backgrounds.
Added: Ability to define a second Slider Track background (from thumb to end).
Added: Second Slider track background for the track from thumb to end.
Added: Texture.xml reference for the Preferences separator.
Added: Debug to toggle between fast and slow customizable version of Light Blur.
Added: Basic play day cycle in 5 minute steps, no smooth transitions yet.
Added: Option and Code to toggle between fast and slow customizable version of Light Blur. Can be found in Display Preferences.
Changed: Motion Blur trigger threshold for alphas to the same of solid objects.
Changed: Shadow Resolution controls to use the new Vector4 controls.
Changed: Upped Shadow Resolution controls max limit to 6k
Changed: Shadow Resolution controls to have one slider for both width and height.
Changed: Allow Motion blur in Freeze Frame mode.
Changed: More consistency changes and code cleanup in Motion Blur.
Changed: Make the Fullbright toggle actually kill Fullbrights immediately. Added preparations for restoring them.
Changed: Made bind buttons display the currently bound key and masks.
Changed: Keybindings layout to make space for long labels.
Changed: Shadowmap resolutions, 2k for close, 4k for mid, 2k for far, 512 for very far.
Changed: Rigged all warnings to settings and made them display when certain criteria are met to inform the player about possibly negative performance impacts and problems.
Changed: Drastically increased SSAO strength now that it is much smoother again.
Changed: Default Shadow and SSAO Blur Samples to 8 (up from 4)
Changed: Split SSAO from Ambient Occlusion, making both toggeable invidually.
Changed: (Sideeffect) SSR now works without Ambient Occlusion or Shadows.
Changed: Make RenderDeferredBlurLight toggle AO now that SSAO is seperate.
Changed: sunLightSSAO shader to allow toggling of SSAO.
Changed: Renamed Ambient Occlusion setting to Screen Space Ambient Occlusion.
Changed: Moved Screen Space Reflections (SSR) to Deferred Rendering tab.
Changed: Moved Blur Slider to Light Softening.
Changed: Renamed and moved SSAO/Shadow Blur Quality to Light Softening.
Changed: Moved Extended Shadow Distance to the top shadow options.
Changed: Moved Depth of Field options tab below the SSAO options tab.
Changed: Renamed Ambient Occlusion to Screen Space Ambient Occlusion.
Changed: Moved Screen Space Reflections to indicate that SSAO is no longer needed.
Changed: Light Softening tooltip in Preferences to match that of the Sidebar.
Changed: Made Deferred Rendering toggle everything at once.
Changed: Machinima Sidebar layout.
Changed: Moved Water Reflection options in Sidebar to the Deferred options.
Changed: Reorganized and moved Display Preferences.
Changed: Renamed Level of Detail tab to Quality.
Changed: Renamed Performance tab to Rendering.
Changed: Moved Avatar Physics option to Quality tab.
Changed: Moved Anisotropic Filtering option to Rendering tab.
Changed: Moved OpenGL Texture Compression option to Viewer tab.
Changed: Moved Enable Fullbright option to Rendering tab.
Changed: Moved Render Unloaded Avatars option to Rendering tab.
Changed: Moved Render Attached Lights option to Deferred Rendering tab.
Changed: Moved Render Attached Particles option to Rendering tab.
Changed: Moved Draw Distance slider to Rendering tab.
Changed: Moved Particle Amount slider to Rendering tab.
Changed: Moved Terrain Texture Quality option to Quality tab.
Changed: Moved Sky Quality option to Quality tab.
Changed: Moved Reflection Amount option to Quality tab.
Changed: Moved Reflection Quality option to Quality tab.
Changed: Moved Post Process Quality option to Quality tab.
Changed: SSAO defaults.
Changed: Tone Exposure Red/Green/Blue defaults.
Changed: Moved and cleaned up preferences code slightly.
Changed: Make sliders use a background for the track from for left to the thumb position.
Changed: Nicer slider textures to go along with the new track backgrounds.
Changed: Layout of Edit Shape panel, cleaner and bigger.
Changed: Made some slight adjustments to Slider textures.
Changed: Use the correct reference to the Preferences separator image.
Changed: Visual separation and readability changes to Camera Preferences.
Changed: Visual separation and readability changes to Keybindings Preferences.
Changed: Visual separation and readability changes to Sound Preferences.
Changed: (Experimental) Enabled Materials rendering in reflections.
Changed: Make the agent recorder record 10 times faster, making it less of a camera/avatar jerk.
Changed: Version to 2.5 Alpha.
Fixed: Motion Blur not working on rigged meshes.
Fixed: Crash when rendering fitted mesh avatars with Motion Blur.
Fixed: Shadows on Alphas being broken/off.
Fixed: More shadowing on Alphas being broken/off.
Fixed: Motion Blur on alpha masked objects.
Fixed: Motion Blur on alpha masked rigged meshes.
Fixed: Motion Blur breaking on fitted mesh, fixed once and for all.
Fixed: A few more bind buttons being linked to the wrong slots.
Fixed: Freeze World always enabled when first opening the snapshot floater.
Fixed: Volumetric Lighting being broken/off since the shadow resolution changes were introduced.
Fixed: "Volumetric Lighting" being falsely written as "Volumtric Lighting".
Fixed: Shadows and lighting being broken when SSAO is off but shadows are on.
Fixed: Lighting being off when shadows are off but SSAO on.
Fixed: Shader level 1 soften light, alpha and material.
Fixed: Projector Shadow height not properly working.
Fixed: Underwater overworld image too bright. Taken from Alchemy.
Fixed: Fullbrights ignoring atmospheric haze. Taken from Alchemy.
Fixed: Description text box reaching outside of the script preview window.
Fixed: Right Shoulder Camera Preset sliders not working.
Fixed: Crash when defaulting the Right Shoulder Camera Preset.
Fixed: Differing lighting without SSAO/Shadows by forcing deferred shader level 2.
Fixed: Some layout inconsistencies in Machinima Sidebar.
Fixed: Alphas being broken on distance.
Removed: Unnecessary Motion Blur code.
Removed: Shadow Resolution Multiplier.
Removed: Experimental Code that slipped into the commit.
Removed: Commented out obselete, spammy keybinding debug information.
Removed: Shadow Distance blur (again), overblurs projectors way too much.
Removed: Ability to toggle anything below Deferred Rendering. Deferred on or off only now.
Removed: Ability to toggle Bumpmaps.
Removed: Ability to toggle Hardware Skinning.
Removed: Ability to toggle Post Process Glow.
Removed: Ability to toggle Vertex Shaders.
Removed: Ability to toggle Atmospheric Shaders.
Removed: Transparent Water option from Sidebar.
Removed: Vertex Shaders option from Sidebar.
Removed: Atmospheric Shaders option from Sidebar.
Removed: Hardware Skinning option from Sidebar.
Removed: Bumpmap option from Sidebar.
Removed: Post Process Glow option from Sidebar.
Removed: Basic Light Amount options.
Removed: Basic Options tab.
Removed: Basic display tab code.
Misc: Cleaned up sunLightSSAOF shader a bit.
Misc: Doing some cleanup in Viewer Shader Manager.
Misc: Doing some cleanup in the Render Pipeline.
Misc: Cleaned up softenLight shader a bit.

Friday, February 5, 2016

Black Dragon Viewer - Update "Learn To Move"

Redownload, it contains the fix from -2 and fixes the default graphics preset saving greyscale as well as fixes a bug that destroys your controls file when pressing load default and export right after, make sure you delete your controls.xml file in your Roaming folder if you experiencing keybinding issues and delete the default.xml in your presets folder in Roaming if you want to generate a clean one.

Last update saw the first iteration of fully rebindable keys, this update is the second iteration and will bring many aspects of this feature close to what i initially wanted them to be.

Despite the overly negative feedback based on ignorant, selfish needs which sabotage my work and ignore my plans which i clearly explained in my last update post, i decided to continue and improve on this initial barebone implementation. Thanks for 0 constructive feedback, good thing i don't give a shit and have a finished plan for my feature before i release it, making feedback completely obsolete anyway.


This update re-enables arrow keys for movement. They are bound as alternative control set, that means you can use both AWSD and Arrow Keys, i would highly recommend you start using AWSD as i'm not going to take any further steps to support an inferior control set. There is no reason to use arrow keys, ever, especially NOT as left handed person, you are crippling yourself. Your subjective opinion does not matter here.


I added a bunch of buttons to bind a secondary key to any action in almost all modes, some do not have an alternative binding available because it does not make sense having one, why would you want to have 2 keys for opening chat for example, same could be said for the entire alternative binding thing... but lets not get into that.

Additionally there are now trash buttons that allow you to unbind one binding selectively, without having to unbind and redo them all.

I also added a button to reload the default controls shipped with the Viewer.

The bind key dialog will now appear in the center of the screen, instead of somewhere in the left upper corner, making it less of a tedious mouse raping activity to rebind lots of keys.

I have fixed an issue in which the Sound & Media tab in preferences vanishes after closing the preferences floater a few times.

I fixed the set voice key dialog using the same floater as the rebind key dialog and made it appear in the center as well.


From now on the Viewer will save your custom controls file into the user settings folder which hopefully fixes you being unable to save them due to missing writing permissions. Don't ask me how you managed to not have writing permissions in your Viewer folder, you broke it, not me, i fixe... worked around it for you.

The Viewer will also attempt to load your custom bindings first, failure in loading your custom bindings will result in the Viewer loading its defaults, failure in loading these as well will result in having no controls at all as opposed to simply crashing.

I fixed an issue in which the Viewer bound the last internally bound key to all upcoming empty key slots, resulting in one key doing pretty much everything that was previously not bound.


Added: Ability to selectively remove one bind.
Added: Ability to reload the default controls.
Added: Ability for the Viewer to have a seperately saved custom binding set apart from the default it is shipped with.
Added: Ability to bind a secondary binding set.
Added: Arrow Keys as secondary binding set.
Added: Load Default Controls button to Keybindings preferences tab.
Changed: Moved saved bindings to user settings.
Changed: Moved the default controls.xml file to the app settings folder.
Changed: Made the Viewer try loading the custom bindings first and fall back to the defaults if no custom bindings are found.
Changed: Stopped the Viewer from crashing when no file is found.
Changed: Stopped the Viewer from crashing when binding a key fails for whatever reason.
Changed: Don't use the same bind key dialog for setting a voice key.
Changed: Open the "Bind Key" dialog in the center of our screen instead of the upper left corner.
Changed: Version to
Changed: Version to
Changed: Version to
Changed: Background color to red-orange to match the loginscreen background video.
Changed: Unbinding all controls now automatically exports as well.
Changed: Reuse onExportControls instead of using the direct variant.
Changed: Made Greyscale, Chromatic Abberation and Sepia Post Process Effects non persistant, fixes the default graphics preset saving a raised greyscale value.
Fixed: Bug in which the Viewer bound the last retrieved key for all empty coming bindings.
Fixed: Sound & Media tab vanishing after closing preferences a few times.
Fixed: Select Voice Key floater not working properly.
Fixed: Issue with keybindings not working until first exported.
Fixed: Bug where the Viewer writes into the existing file instead of creating a new one when pressing Export after Load Defaults.
Fixed: Auto-export after loading defaults doesn't work, wait for the binding process to be done.
Removed: Some old keybinding code.
Removed: Old keys files.

Tuesday, January 26, 2016

Black Dragon Viewer - Update "Binding Keys"

Please make sure you downloaded it contains an important fix for vehicle controls. If not, go download it and install that one.

Feature Highlight

As the update label suggests, this new update focuses primarily on binding or rebinding keys, in other words: Remapping Controls.

That's right, the feature that has been missing for over 13 years now. It is finally coming into Second Life, at least a small part of it, my userbase. I have worked the past few days up and down to get this feature up and running as it is right now. It is pretty "basic" at the moment and only allows binding one set of controls for pretty much all controls available, it is not possible to bind alternative controls yet but will be soon.

It works pretty straight forward, you click the [set key] button, popping up a small window asking you to press the key you wish to set for this action, you can then choose to add modifier keys such as CTRL, ALT and SHIFT in any possible combination, when done, press "Bind" and that's it.

To ensure it worked properly i had to remove the internal code that removed doubles, that means you can bind all actions to one key, which will result in that key probably doing a lot of funky things, please be aware of that.

Additionally there are two more buttons, "Unbind All" which does exactly what it says, unbinds all controls locally without saving it - and "Export" which manually saves your current bindings to the desired file's name, which is "controls.xml" right now until i add loadable presets. I used these buttons for many hours of debugging, be careful with these as they might break something in a case i have not yet managed to reproduce.

By far the biggest downside of this change is that all controls have been unbound and completely rebound from the scratch, it might be possible that i missed some, additionally there will be no more Arrow Key controls, the controls are now by default AWSD as they should be.

Here's an overview of the new controls:

AWSD - Move left/forward/backwards/right
Q/R - Rotate left/right 
Space - Jump/fly up 
C - Crouch/fly down
X - Stop movement
F - Toggle fly mode
Enter - Start chat

User Interface

I've re-added the "Keybindings" tab to the preferences floater, it contains all the new stuff you will need to rebind your controls.

I've also changed a few german translations to better match the new preferences layout.

I've fixed the inverted "Letter keys are used to" option, it should behave properly now.

I've added a Freeze World menu entry to the main menu, it can be found in: Dragon - Useful Features - Shortcuts - Freeze World. (Ctrl + Alt + F)


I've made some changes to the Tone Mapping defaults, it seemed like i forgot to change them, that or i made more tweaks to it later, after i made my last tweaks. You'll have to revert the Tone Mapping settings to default with the [default] key if you've touched the sliders at least once.

I've also made some changes to the way shadows and SSAO are softened, for the better i hope, they should be softer than before while projected light shadows shouldn't be over-blurred anymore.


As you may have noticed (or not) i have made some changes to the blog, i felt that it was time to work up some parts of the blog, namely the download link which now always refers to the "pre-download" page which will link you to all important information before downloading the Viewer, hopefully reducing the "i can't see anyone" question i keep seeing a lot lately.

From now on you won't find a download link anymore in my update posts, only the sidebar will now contain the download link. I'm currently deciding if i should remove the sidebar download link and only have a download link in my blog to force people to look into the update posts.

I'm also trying to clean up my writing a bit more, making it clearer what i want and what i've changed.



Added: Ability to remap almost all controls in the UI, unbind them, export them with a given name and load them on start.
Added: Freeze World shortcut menu entry.
Fixed: Wrong translation for the mouselook invert option.
Fixed: Inverted "Letter keys are used to" option.
Changed: Tone Mapping defaults, brighter.
Changed: More tweaks to SSAO/Shadow softening.
Changed: Ignores to allow commiting changes to the character folder.
Changed: Display prefs XML cleanup.
Changed: Set the default controls file name to "controls.xml".
Changed: Disabled Keyboard Layout options.
Removed: Shortcut from Debug Avatar Textures.

Sunday, January 3, 2016

Black Dragon Viewer - Update "Occluding Ambience"

I highly recommend you press the default buttons for all SSAO options to make sure they match the new defaults.

First update of 2016.

Let's start this year with revisiting Screen Space Ambient Occlusion (SSAO) shall we? I made some tweaks to the blurLight shader, overall increasing the smoothness of SSAO without impacting framerate negatively. Also fixed is the weird case of light being blurred twice (it's in the LL Viewer too and explains why shadows are so horribly overblurred), that means less blur on shadows, crisper shadows and most importantly projector light shadows are not ultra blurry anymore, they look fine again. While doing some tweaks to the light blurring i also fixed the ability to control shadow blur on distance and SSAO blur, both work now. These changes were necessary as i removed the ability to switch between Tofu's softening kernel and the default LL one, Tofu's is now default and cannot be toggled anymore, good riddance shitty quad kernel!

I used the time jumping around between shader files to do a little... comparison between original LL style look of graphics and my most current Black Dragon style graphics. I reverted all my tweaks, all my debugs, removed all changes, swapped my shader files with those of LL and brought all my visible graphic features on par with those of LL to show you an example of how different both Viewers look in their "recommended" default settings.

Linden's Original

Black Dragon's Default

Note: I recommend using "Custom" Tone Mapping and "Linear" Color Correction.

Also in this release is an updated layout for the Machinima Sidebar which now matches the preferences layout.

Fixed are also a few little layout inconsistencies as well as an issue with the Landmark Profile buttons which didn't enable.

For Adeon i also included my Freakangels 5 Windlight sky preset which i often keep using for a lot of pictures in modified form obviously, the original Hippotropolis Windlight sky preset which i used for the loginscreen video is also included in case you want to see it for yourself, the last is Insilico 4 which i used quite a few times for the SIM Insilico, the old loginscreen image for example, again modified for whatever shot i'm taking. The actual graphics preset i used for the video can be found here on the forums.

Below are some snapshots, showing my Avatar in pieces and funny experiments with the SSAO and projected light blurring.



Added: RenderSSAOBlurSize Debug option to control ssao softening.
Added: Tweaks to blurLight shader, allow SSAO and Shadow smoothening controls.
Added: SSAO Blur Size slider to Machinima Sidebar.
Added: Freakangels 5 Windlight preset.
Added: Insilico 4 Windlight Preset.
Added: Hippotropolis Login Screen Windlight Preset.
Changed: Chat Preferences title bar length.
Changed: Much enhanced SSAO, smoother, darker.
Changed: Machinima Sidebar layout, applied Display panel buildup.
Changed: Version to
Fixed: Shadows and SSAO being blurred twice.
Fixed: Distance Blur not working. Broke Shadow Gaussian and Blur Size for it.
Fixed: Control buttons in Place/Landmark Profiles not working.
Fixed: SSAO Blur Size slider in Display Preferences.
Removed: Softening Kernel options, they are no longer used.
Removed: Unused code.

Tuesday, December 29, 2015

Black Dragon Viewer - Update "Preferred Preferences"

Today i'll release the last update of this year.

This update's main topic will be the preferences panel which has undoubtedly become a bit... of a mixed chaos. While the display preferences tab has gotten quite some upgrades and consistency changes, all the other panels were left out... until now.

I spend quite some hours doing some consistency changes to all the other preferences panels, swapping out dropdowns for radio buttons, making sure checkboxes have 0 pixels padding to the one above, changing all title colors, rewriting some labels and generally changing the layout to that of the display preferences panel, including the addition of a huge bunch of "default" buttons for all sliders as well as the ability to write the number directly, there are still a few exceptions like the general tab which has dropdowns due to coding reasons, i will be swapping out as many things as possible in future updates to make sure the preferences UI becomes as simple as possible by only using a very limited set of UI widgets that everyone should be able to understand easily, a nice side effect of this is the opportunity to add more "danger" and "default" indicators to make it even easier to quickly identify where problematic options might have broken something for you.

Here's an example of how the panels have changed:

Another obvious change you will most likely notice immediately is the reactivation of the login screen videos, coming with a new video, as always.

Fitting to the end of the year, the name of this new video is "This is Black Dragon - 2015", it could have been "was" but then again it would be unfitting for the time it was uploaded at, still in 2015. You can watch the video here as well, in full HD and in 60 FPS.

You will notice some other minor changes and probably some bugs, report me any you can find, the biggest misc addition you might notice is the ability to right click rigged meshes again, hooray for that, the camera flying off into the distance should be fixed in this version.

All other changes mostly include merging up with the latest Linden Release code and the Maintenance code which includes a tiny change to icon downloading that should hopefully delay the appearance of the famous "Texture Trashing" problem until there's a proper fix for it.

This update was suppose to include the Bento Project, for those who don't know, it's the extended skeleton with additional bones for wings, face, fingers and so on. I was on a working version at the meeting that was held right after this Project was announced, sadly i was personally asked not to include Bento in my Viewer early on and on the possibility of my Viewer getting removed from the TPVD or worse, getting blocked alltogether or even my account getting locked, i chose to not include it. If you want a Bento Viewer that is not the official one you will have to use Cool VL Viewer. I asked for an explanation as to why this would be a problem, i didn't get any specific answer on that. All i can say is: My Viewer does not support mesh upload in any form, therefor the only thing my Viewer could do with the Bento Project code included is... watch other people... with fancy graphics. I chose to exclude mesh upload a long time ago because i do not want people to upload with a Viewer that is not the official one simply because i do not want people to upload something that could look and work differently on the official Viewer and therefor for everyone, i don't want to be responsive for broken or "specific" content released upon the grid. There was/is already a discussion about LoD's, Mesh Uploads and Firestorm that looked like Firestorm could be held responsive for allowing Mesh Uploads with their possibly different handling of LoD's in conjunction with Settings. Someone saying "because of your different graphic settings creator X Y and Z are creating content that looks broken or causes framerate issues for everyone, including yourself" is the last thing i want.



Changed: Notifications Preferences panel layout, applied Display panel buildup.
Changed: Browser Preferences panel layout, applied Display panel buildup.
Changed: Camera Preferences panel layout, applied Display panel buildup.
Changed: Chat Preferences panel layout, applied Display panel buildup.
Changed: Controls Preferences panel layout, applied Display panel buildup.
Changed: General Preferences panel layout, applied Display panel buildup.
Changed: IM Preferences panel layout, applied Display panel buildup.
Changed: Privacy Preferences panel layout, applied Display panel buildup.
Changed: RLVa Preferences panel layout, applied Display panel buildup.
Changed: Sound Preferences panel layout, applied Display panel buildup.
Changed: Colors Preferences panel layout, applied Display panel buildup.
Changed: Interface Preferences panel layout, applied Display panel buildup.
Changed: Viewer Preferences panel layout, applied Display panel buildup.
Changed: Restored my own Notification floater layout.
Changed: Made show/hide Device Settings code more dynamic for future UI changes.
Changed: Reactivated Experimental Login Background Videos again.
Changed: Login Video to my latest one.
Fixed: Device Settings falsely opening when they should close and vise versa.
Fixed: Low level German UI label fixes to better match the new preferences layout.
Fixed: Viewer not starting up anymore after merge.
Fixed: Compile errors and reverted the file panel face back.
Fixed: More compile errors.
Fixed: Group count display missing.
Merge with Linden Release
Merge with Maintenance
MAINT-335 FIXED Avatar hangs in space after cancelling teleport
MAINT-884 FIXED Spanish Mundo > Acerca del terreno > Opciones: overlapped texts
MAINT-906 expiration time gets zeroes
MAINT-909 FIXED Opening a notecard with the same name as one that is already open does not work
MAINT-925 FIXED Objects called "Second Life" are unclickable & unmuteable via local chat
MAINT-933 FIXED [PUBLIC]Show Land Owner color overlay only visible where there is water when rendering of Lights and Shadows is active.
MAINT-957 WIP Double-click Auto-pilot activates for clicks on UI elements, HUDs, some right-clicks
MAINT-1017 FIXED Disable checkbox during saving process to avoid glitch.
MAINT-1109 Toggling graphics options causes viewer memory to increase, eventually causing the rendering pipeline to fall over and crashing the viewer
MAINT-1274 FIXED Light texture picker snaps back to initial choice
MAINT-1390 FIXED Top colliders floater reopens itself if it was closed at once after opening
MAINT-1401 FIXED Pressing 'Cancel' button in 'Color picker' dialog changes color of prim to the previous
MAINT-1459 For Sale accordion overlaps Estate accordion in Place Profile panel
MAINT-1588 FIXED Square fonts in OSX mountain lion
MAINT-2130 FIXED Update Tools floater after loosing selection.
MAINT-2215 Estate tools Apply button remains available after it is clicked.
MAINT-3491 FIXED If ALM is enabled while in wireframe mode, disabling wireframe mode results in a black screen.
MAINT-3568 Mac OS X, ALM, Full Bright, Shininess
MAINT-4018 Improvements to icon fetching.
MAINT-4260 FIXED Animated agents at high altitudes randomly show up at 0,0,0
MAINT-4360 (Setting LogTextureDownloadsToSimulator causes a viewer crash)
MAINT-4483 (Mesh uploader allows Low LODs to have more triangles than High LODs)
MAINT-5064 FIXED (Mesh upload attempt causes viewer crash) (replacing BBox generation)
MAINT-5268 (Rotating an object that's used as grid reference goes crazy)
MAINT-5443 FIXED Appearance menu does not display gestures in outfit
MAINT-5416 FIXED Cannot right-click a rigged mesh that's worn
MAINT-5464 FIXED Do not add badge to links that have a port number specified.
MAINT-5478 FIXED Keep history according to calendar days and don't completely remove events while changing threshold.
MAINT-5488 ADD FIX [Experience Tools] Opening an experience compiled script in an object in an adjacent region fails to show the script is compiled with an experience in the script editor.
MAINT-5495 FIXED Drag and Drop no copy items from object contents to inventory creates multiple pop ups
MAINT-5498 LLUrlEntry regex refactoring
MAINT-5533 FIXED The fragment part of an URI is only shown if it contains a query part as well.
MAINT-5547 FIXED errors when texturing a linkset "Unable to add texture. Please wait a few seconds and try again."
MAINT-5548 FIXED Don't update snapshot when resizing Viewer if snapshot floater is closed.
MAINT-5556 FIXED Active listing folder stays listed, with empty Version folder
MAINT-5584 FIXED On voice disabled parcel or region, speak button remains disabled in ad-hoc and group voice calls - you can hear but not speak.
MAINT-5619 : Viewer seems to parse LSL syntax file three times, has warnings
MAINT-5670 FIXED should not be parsed in expandable textboxes
MAINT-5678 FIXED Materials with spaces in name import with truncated names
MAINT-5688 FIXED Viewer crashes when user in DnD calling to another user also in DnD
MAINT-5728 fix for dae uploading crash
MAINT-5738 FIXED If "Always Run" is enabled, camming is broken when sitting down.
MAINT-5742 FIXED Appearance window progress indicator spins after changing to an identical outfit
MAINT-5743 Fixed Remove gpu_table and references to it from viewer packaging
MAINT-5753 FIXED Viewer crashes when opening a texture from object contents
MAINT-5755 FIXED Activating Show Avatar Complexity disables all llSetText (hovertext) until relog
MAINT-5758 FIXED "Ban Member" from the group chatters list context menu
MAINT-5756: Unicode characters in online notifications get stripped
MAINT-5759 FIXED URL links in the UI with non-English characters, diacritics, don't get parsed correctly.
MAINT-5760 Save favorite landmarks after renaming
MAINT-5762 FIXED Groups - Message about number of groups you can join does not recognize that your account is premium
MAINT-5796 FIXED Double clicking on anything in COF removes it from your avatar - including skin, shape, hairbase and eyes - results in bakefailed avatar
MAINT-5807 WIP - initialize some uninitialized members of LLModelLoader.
MAINT-5821 FIXED Giant spew of XUI messages in SecondLife.log
MAINT-5829 FIXED About Land floater defect
MAINT-5837 FIXED Hovering text is displayed when the avatar is blocked
MAINT-5846: Change media roll of begining to 10m
MAINT-5862: Change the Linux wording in the ToS floater per Grumpity.
MAINT-5966 - file download failures need feedback
MAINT-5870 FIXED Texture mapping drop down overlaps color thumbnail.
MAINT-5871 FIXED Duplicate Calling Card created for each friend on login.
MAINT-5876 FIXED Facial expressions & Preview while not working in many languages when importing animations
MAINT-5879 Block incoming blind teleport requests from non-friends
MAINT-5892 FIXED Alt camming on rigged mesh makes the camera judder, get stuck or fly off into the distance.
MAINT-5893 FIXED Issue with muted agent's attached lighting still rendering.
MAINT-5901: Make avatar auto pilot work correctly through transparent objects
MAINT-5903 FIXED Resident's name is not automatically filled into the resident chooser for the group invite
MAINT-5909: Enable unicode text input on mac and feed that directly into the viewer.  Windows fixes still required.
MAINT-5925 FIXED Viewer allows you to locally retexture anyones content including attachments.
MAINT-5933 FIXED When a new library avatar folder is created in Clothing folder, folder rename is grayed out until relog
MAINT-5934 FIXED Have to open About Land twice to get parcel ban timings to load in parcel ban list when banned names are not cached
MAINT-5940 FIXED Viewer group info widget query cleanup
MAINT-5941 [Valhalla] Default flash to on by default (reverts MAINT-5773)
MAINT-5956 FIXED Certain dae will not upload with the new importer code
MAINT-5961 FIXED Incorrect position of "Delete all" button within "Notifications" floater
MAINT-5971 FIXED Creator and Owner are missing in Object profile
SL-192 Edit Experience Profile shows up once an Exp is acquired
WOLF-300: Try using a smaller data volume for LLLeap tests on Windows.

Monday, December 14, 2015

Black Dragon Viewer - Update "Going Places"

Fixing the broken, protecting the fixed, i am the terminator of... bugs. *crunches a bug under his feet*

This time i got some work done on the places floater which i broke (intentionally) in the last release, it was in a catastrophic state before i broke it, the broken version was actually the good one, i just couldn't let you see it... you can thank me later.

The aforementioned fixes for the places floater were basically everything that were delaying this update so i had to get it done... even though it was a total pain, layered layers for layering layered layers in layers... you get the idea...

This update is really important as it also contains 2 crash fixes, one for a random crash i was experiencing (and you most likely too) due to leftover code that triggered a nuclear chain reaction in the Viewer, making it blow up violently as soon as certain avatars, objects, prims... whatever else it was, came into your draw distance, the other one for a crash 100% reproducible whenever you right-click while in either zoom/pan/orbit mode in the tools floater (build window) or when in object view mode in the camera controls floater, the camera controls floater thing was really tough... it took me just 50 builds to figure out a proper way to do it that works, as always the solution was as simple as it can get, so simple i would have never found it, hooray for having a nose for things like this.

Next up were the broken values for Avatar Rendering Complexity introduced in the last update, i'm sorry for that, it's the reason probably EVERYONE is always just appearing as jellybaby (or not at all), when merging with automerge i didn't see that the LL Viewer sets a default value for the new ARC debug, it was 200 because the LL Viewer sets the ARC limit depending on your general graphic preset which my Viewer doesn't have anymore, i raised the limit to the proper value of 120000, that means the probability of your friends being derendered is lowered by approximately 15%. Why only 15% you ask? because your friends are most likely resource hogs and have a much higher ARC than 120000.

This needs some explanation, first off you should read the Avatar Rendering Complexity wiki page LL made for this feature to get an idea what this actually is. Basically every avatar's "weight" is calculated, it depends on how much attachments he wears, how many prims it has, how many textures, which features does it use (glow, fullbright, materials etc) and so on, the more ARC someone has the more render resources he takes up, higher numbers = bad. If the avatar goes over your set limit, which in the case of my viewer is by default 120000, he will be rendered as impostor or "jellybaby", sort of like a 2D sprite if you know what that means, basically he will be derendered and use almost no resources, that feature is in place to A: protect you from evil graphic crashers and B: from hardware hungry framerate killer avatars like your friends or your own avatar (probably). Don't worry, your own avatar is not derendered for you, just for others with this feature enabled...oh did i say enabled? You can't disable it. That's right, no on/off toggle. I could make one but i'm sure LL is going to get soft and make one anyway, basically throwing this entire feature into trash, yay! So why did i set 120000 and not some other arbitrary number? All my avatars move in the range of 30000-150000 and as you may know i'm a furry, i wear quite some ARC heavy stuff, some of it stuff i can't just take off to reduce my ARC because it is my head, or my leg or my tail, they are however, still somewhat easy to get below 120000 if i wanted to (i don't want to because i don't use them anymore, they are old... sculpt... look like shit, you name it), also most normal avatars i see have an ARC below 120000 as well, so 120000 should be a good limit, it seems like something high enough to see low to medium weighted avatars without showing the ones that tend to tank your framerate. My current ARC is at ~36000, that should give you an idea and for those who don't know i look like this:

around 26000 of my ARC is my hair, 6000 my body and 4000 my clothes.

Additionally to the ARC value and limit there are 2 more limits set, the avatar size in bytes (8000000 = 8mb by default) and the maximum object surface an avatar can have (100m² by default), i'm not too sure about the size yet it might be a super miss, it isn't all that important but the avatar surface can play a huge role, very high surface m² can mean the avatar is wearing a shitton of textures or huge prims or might even be wearing a graphics crasher.

You can of course find the options in preferences - display - performance options and change them as you like, you can also right click someone and select to render someone always fully but i highly recommend you not to raise them all too much higher, higher values means heavier avatars means less framerate.

You can also check your own values and those of others around you with the now called "show avatar complexity information" menu entry in Dragon - Useful Features - Performance Tools.

It will display you the information like this:
Avatar Rendering Complexity
Surface m²
Size KB

Here's a snapshot from the last post to show you how it looks like.

I hope that clears up your invisible avatars issue once and for all, i'm sorry i didn't explain that in the last update where it was introduced.

Guess that's it for today, have fun with the now less crashy/buggy version.


Changed: Use ellipses for Inventory view, stop this endless horizontal scrolling mess.
Changed: Layout of Places floater.
Changed: Layout of Place Profile panel.
Changed: Layout of Landmark Info panel.
Changed: Fancied up forward button in History a bit.
Fixed: Clipping Landmark lists.
Fixed: Broken button rows.
Fixed: Random Crash with certain Avatars, removed some leftover code.
Fixed: Avatar Complexity Debugs being off, causing everyone to be a jellybaby.
Fixed: Crash when right-clicking in Object View or Zoom/Pan/Orbit mode.