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.


  1. I'm trying to install the new version by all means but the viewer is always telling me I have version 3.7.2.
    I can't uninstall from Uninstall Programs. I have deleted the original folder to no avail...

    Also your "media_plugin_quicktime.dll" doesn't support streaming music from webpages embedded in prims. I had to copy/paste one from Exodus Viewer (no longer supporting my graphics card) to replace yours and hear music again.

    1. 3.7.2 is correct. Thats the internal Linden Lab code version. The Viewer itself is just labeled as in case of multiple updates with the same code version.

      The Viewer is not installed via normal installer, it is just a fancied up rar unpacker, you can just delete the Viewer folder, cache and settings if you want to do a clean install.

      Also media plugin beeing broken is wellknown even for Linden. Not sure if it will ever be fixed. I can watch youtube and browse the internet on prims without any problems. Webmedia plugin is mainly broken for parcel media (TVs that do use quicktime to play media)

    2. Thanks on the fancy unpacker!

      Oh, the media plugin seems to work now that I tried the Official Viewer again... well, it seems to no longer support Flash. X-D

    3. It was fancier in Nirans Viewer... the installer image doesn't work for some reason.

  2. All my compliments Niran, the work you are doing is amazing!
    I found your viewer only recently but it is really powerful and great. I was trying the new Depth of Field options, but I do something wrong I think, everytime I try to click "shift+x" I got a capital X into the chat instead of locking the focus. What am I doing wrong?

    1. Make sure no chat window is selected and "AWSD starts chat" is disabled, you should be able to find this option in either Chat or Movement options depending on as what i categorized it.

  3. Niran, it been a while now and i can't remember nor find the post - the keyboard shortcuts to save a cam position, then to revert?

    1. Shift + CTRL + C/V i think. Look into Dragon -> Usefull features (might be in shortcuts sub menu) to be sure.

  4. Hi Im having a problem installing viewer once Ive downloaded from your page.It keeps creating a copy of the same program. What do you recommend?

    1. Download it, double-click it to unpack it to your desired folder, start the Viewer via desktop icon (it should create one after unpacking).

  5. yes that was it. and the shadows seems to be working now too. maybe i had a bad installation before. The only thing that is really needed now is to bring back the "texture refresh" :)

    1. Why would you need Texture Refresh? Never seen a texture not rez properly, its main purpose was refreshing people's Avatar textures which are now baked via Server Side Appearance anyway.

  6. Honestly, Niran, I use it all the time. I do alot of weddings, for instance, and it is often needed, not just on avis, but trees, plants, walls, etc... there are times when a texture just does not load properly in the scene, and it needs to be refreshed. In fact, was it your old viewer that used to have a "refresh" button? where the whole scene would refresh? when i shoot weddings, for example, i often derender poses and other clutter. Sometimes I mess up get something else, with a 'refresh' button it would bring everything back. Now, if u screw up like that, you gotta relog..

    1. The refresh button was only supposed to rebake textures which the Viewer does automatically anyway. It's still there btw, not sure if its functional tho. You don't need to relog. Open the grouplist and change your group or change the region.

  7. I've noticed in the past couple versions something seems to have changed with how particles affect depth of field effects. Now if I have a big particle used for multiple motes of dust or flame embers, the whole particle, invisible areas included, make everything blurry.

    This didn't happen until recently. It makes a lot of environmental particle effects (ie: rain, snow, smoke, dust) very offputting.

    Also, the right mouse button features of "mouse steering" mode are broken, I'm assuming this is a bug related to the "right mouse button camera turn" feature.

    1. Your Depth of Field issues are old already, i'm aware of these, additionally i'm also aware that alpha's and invisible objects are calculated into Depth of Field aswell, it's an old issue LL brought in when they did Materials. They fixed the later one (atleast they thought) but not for all objects. It's still half-broken. I'll keep an eye open for additional fixes regarding this.

      Yes the right click functions don't work in Mouse Steering Mode and that's because of the new Hold Right Mouse feature, i'm at a point where i'm trying to decide weither i should keep this right-click functionality in Mouse Steering Mode or not.

    2. Ok, I'm never sure what bugs are SL in general bugs, or Black Dragon specific because, well, I've rarely any reason to use LL's viewer.

      I'd like to see the right click mouse features to return to mouse steering. They made it a lot more useable. Of course, it's possible there are other ways to address that which I just can't see at the moment.

      Say, did you ever do anything with that idea for moving forward using the mouse? I think the idea was holding both mouse buttons would cause your avatar to walk forward? I seem to recall this coming up in an SLU thread.

    3. I planned to include this feature anyway, in combination with right-hold mouse steering of course.
      Singularity did the left+right walk feature already.

  8. Niran, I am seeing an issue with the shadows on, i noticed on a few shots so i took this image to show you with shadows on and off. All shadows settings are default in preferences. basically, there seems to be a 'halo' around the avatar, faint, but noticeable. i tried all different settings, along with glow, ssao, etc.. not sure you seen this or even some sort of rendering error with my graphic. for this shot, i set everything that could be to default in preferences

    it doesnt show up on FS with shadows on


    1. What you're seeing is the unsmoothed darkening effect of Screen Space Ambient Occlusion or Ambient Occlusion called in Preferences, your picture clearly shows that the Shadow Blur Size option is set to 0.0 which means that Shadows and Screen Space Ambient Occlusion is not smoothed. You should set that one back to the default 2.1 or 2.4.

  9. ok, ty Nira, but also they should not have been any shadow.. the sun was black and at midnight. oh well, ill keep playing with it

    1. I'm not talking about any shadow, i'm talking about the black halo, that's called SSAO and is a feature, it is supposed to be smoothed with Shadow Blur Size, which is set to 0.0 in your picture which means it isn't smoothed in your picture, obviously.

  10. ohh, OK, i suppose I never noticed it before.now i know what not to do! thanks