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.

Thursday, December 10, 2020

Black Dragon 64x - Update 3.9.3 "Visualizing Dragon"

 So here we are. The update that was supposed to release a few days ago is finally here.

I was just readying everything up, hitting full recompile and then quite a shitshow started because its still 2020 lads, a sudden influx of reports that required attention. So after a couple more days, here we are, almost all of them fixed (except one that i cannot fix, not even investigate, due to reasons the reporter should know very well)

About the bugfixes: SLURL's when launched from outside SL got delivered to the client but didn't open the place profile anymore when already logged in... that one was particularly funny because it was an issue caused by my debug cleanup, turns out one of the debug lines were not only setting a debug string but also executing importing relay code that was necessary to let that SLURL pass through. Whoops.

Then we have something that has been quite an annoyance for me personally for a long time but was so easily fixable that it wasn't worth investigating. Whenever you turned on Volumetric Lighting and then DoF you'd end up with double the amount of glow due to the Viewer using the wrong shader which resulted in the glow being applied twice, it was easily fixable by refreshing the rendering but was finally an big enough annoyance to warrant getting investigated and fixed. Consider it a dead bug.

Another one of those annoyances was the voice call windows that showed their docking tongue above the voice button even when the voice button was at the top of your screen.... when i investigated this long ago, i didn't find anything wrong with it. Nowadays it was a matter of settings to find the issue... sometimes it is better to come back to something at a later time to get a fresh view on something with possibly more knowledge.

Occlusion Culling, ohboy, the bastard son that no one wants. If you had it on (for whatever reason) and moved an object below the water line, it would start flickering... worse, other objects would start flickering too and if that wasn't enough if you were underwater and looked up, everything was flickering too. Good thing that's no more, with its fix also came back the EEP water reflection code which has its rolling camera issue fixed some time ago but was still... horribly broken when anywhere near the water plane. I've finally managed to fix the awkward reflection/refraction clipping and also refixed attached lights going all super funky on the coastline, since that was a thing with that code as well.

The most curious and troublesome issue (not because its actually a problem but because it caused me some trouble in Discord for those who've followed it) is the famous "pink world" display on logout. Everyone who has logged out has already seen it and noticed that its no problem at all, it doesn't do anything besides looking stupid. This issue originally came from the inclusion of Firestorm's fading progress screen long ago, due to the fade into black-screen and the quick destruction/shutdown of the world the destroyed (pink world) was visible before we could hide it. Later i removed the black background for progress screen all togther and the logout screen counts as progress screen too which just amplified this issue as now the Viewer wouldn't even attempt to fade in something over it to hide it. The fix for this was somewhat simple though, i just show the black background that you see on first login and have it instantly show fully, rather than fade it, just like the Official Viewer does. You can't fix the pink world shutdown since its... well the shutdown of the world but you can hide it. So... no more pink world for you!

Now to some improvements, since this update isn't just fixes. When i watched one of several tour videos for Black Dragon, i noticed that the person was scrolling past the bottom of the windlight preset list and started accidentally scrolling the camera... and then i remembered, i hate this, this happened so often to me already... let's just say this should no longer happen, you are now free to keep scrolling as much as you want without the scroll falling through to the rest of the Viewer and you starting to zoom in/out accidentally.

The POSER! One of many many improvements that come up as i go with the idea of implementing some QoL for the UI based on the Unity Engine is ... actually not coming from Unity at all, its coming from Blender, have you ever posed in Blender? You can opt to mirror your changes to X / Y / Z axis, and i though a mirror function for bone rotations could be useful right? Here it is!

<iframe src='https://gfycat.com/ifr/SecretBraveBrocketdeer' frameborder='0' scrolling='no' allowfullscreen width='800' height='454'></iframe>

Another "improvement" you might notice is the addition of an option called "Easy Rotations". This option has always been the default how the Poser sliders worked and will continue to remain that way but now you can turn off the "help" of the Poser and let it freely modify your sliders to represent the actual rotations of your bone, this essentially doesn't change much for you in terms of usage but it might look confusing for you which why Easy Rotations is enabled by default. Having the other two sliders move when you move one slider allows the Poser to show you the actual real rotation rather than a faked one that will ultimately "break" the bone. What i mean with break is, rotate the X Y and then Z axis, then zero them in any order that is not the reverse of that... you'll end up with 0 0 0 not being the default resting position that you get when resetting the bone. With Easy Rotations off, you do because 0 0 0 actually means 0 0 0 but due to the way quaternion rotations work you'll have to work your way from Z to X, zero Z, then Y, then X and you should be able to zero out the bone just fine... or just hit reset. The option is there though, again mechanically nothing changes, you'll still just slide sliders and they still do exactly the same thing, just numbers will be different.

As always, i hope you enjoy the update, there will most likely be another one around Christmas bringing the latest code from LL that i didn't want to merge, risking breaking a lot of things again. I need a working Viewer before i can break it again, it makes debugging and fixing a lot easier.

By Emely Laks

Emeline Laks
By Emely Laks