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.

Wednesday, April 18, 2018

Black Dragon 64x - Update 3.1.0 "Rolling Dragon"

Last bugfix focused update for a bit.

This update fixes a bunch of rolling related issues, for once Save Camera will now save the rotation, loading it again after you already loaded it and the camera has come to a complete halt you'll load the rotation as well, this way you can load position and rotation independently. Also the camera floater now has roll buttons for those who...use the onscreen controls.

Further improvements to shadow accuracy on different altitudes, hopefully the last for a while, as well as slightly higher default shadow resolution on the last shadow map and a slightly smaller default shadow range for the first map resulting in overall better shadow quality.

The light toggles will now persist over sessions, the volumetric lighting tab and its options are enabled again and clicking default on the new camera roll option should no longer crash. Media and Music volume have been lowered down to 20% by default and more cleanup has been done all over the place. Last but not least rigged alpha masking now works on the water surface when looking through the water surface down onto something below it.

This update merged in all the latest LL code including the latest CEF changes which now doesn't flash white anymore when loading but instead will default to black, this especially helps with the login screen flashing up white for a short period of time when first starting the Viewer, yay, that was really annoying.

Cleanup, cleanup, cleanup, stuff, cleanup.

Sunday, April 15, 2018

Black Dragon 64x - Update 3.0.9 "Rolling Dragon"

We all hate boring updates don't we?

This is why this new update includes 2 weeks of banging my head against the metal wall that makes up my cozy little parcel place.

2 weeks of banging my head against the wall to bring you something that i had pretty much working right away just in the wrong order but instead chose to try all kinds of ways getting it to work just to find out once again that the solution was there from the get go. I was literally joking about this when i started.

But here it is!

THE MUCH REQUESTED (not really) CAMERA ROLLING! (Hover over it, gear icon and hit HD)

Default bound to Shift + Q/E you'll now be able to roll the camera just like you can do with a controller but now you can finally do it on keyboard too, no need for the flycam. This is something i wanted to do for a long time.

But this isn't over yet, with working camera rolling i simply had to add it to the Cinematic Camera mode too. Have a BLURURURGRGRGRGRGRGRGRUURGRGLRLRLRGR....


Amazing! And you can set how much the camera is allowed to roll, by default its set to 0.85 (roughly only 15% strength), setting it to 1 disables it and 0 allows... well see above. This is what SL always was meant to be.

Now if you excuse me ...ohwait there's still more!

I reorganized the keybindings so they'll be listed much more logically now. Both this and the new default camera roll bindings will only work if you've never changed your controls yet, you'll either have to reset them or add all extra controls manually.

Furthermore i added Intel GPU detection, the Viewer will now display on both the login screen as well as preferences that you are using an Intel GPU, if you are using one currently. If an Intel GPU is detected all options starting at Deferred Rendering down to the very last display option will be disabled and you will be unable to toggle them as they don't work anyway, at least currently, why? i don't know but the newly added shader error logging might just tell me what is happening, so if you are using an Intel GPU and you want to help me possibly fix this, open the debug settings and force enable RenderDeferred, then send me your log file (best would be in Discord because it's super easy there).

Some feedback from Skyler Mews regarding the transition time when using "Zoom In" in the radar tab was addressed and it should no longer take up to 10 seconds (1 second max now) to zoom in on someone no matter the distance.

Great news also to those very few people who cannot run the AVX version, i'll be recompiling the Viewer non-AVX sometime later, figured it would be a great time to do this.

And the rest of this update is just a big bunch of commenting, organizing and cleaning up my code. Even code wants to look fancy, even if no one ever looks into it. It brings joy to know that your stuff is well organized and looks clean.

Wednesday, April 4, 2018

Black Dragon 64x - Update 3.0.8 "Dark Dragon"

"This is no ordinary darkness, this is ADVANCED darkness."

Phew finally.

Still a bugfix update, possibly 1-2 more coming before going back to working on the sidebar again.

Be sure to click the "Gear" icon and hit HD for that sweet sweet quality.

So this update comes with a bunch of debug changes, MU pose chat is now disabled by default, artificial delays after teleport for the sake of precaching are disabled now too and quite a host of debugs have been removed as they serve no purpose anymore.

The Joystick floater has been slightly updated.

Some optimizations in the camera animation code have been done particularly regarding the cinematic camera, mouse smoothing and third person steering mode, they should no longer do slow debug setting calls hopefully improving and stabilizing performance a tiny teeny bitsy more while moving the camera around, you probably wont even notice unless you have nice 60 fps like i do.

The toggle for projector shadows can now be toggled regardless of mod permissions and invert pitch in Mouselook option has been slightly relabeled for better wording.

A bunch of reported bugs have been fixed including, the "Refresh" button in windlight editors not working (in addition they now refresh when reopening them), a crash that occurred when you clicked "Change Selected" without having something selected, the Avatar Mute Settings don't refresh when you change them in preferences and....ohwait that was it.

On request i also added a pitch invert option for third person mouse controls and i added a few first steps to hopefully enable camera rolling with keyboard/mouse controls soon without needing the flycam.

I still got quite a few things planned, Intel GPU warnings, better custom sidebar, camera roll, camera recorder window, possibly some improvements to the complexity window (like actually showing names of other people's attachments), camera offset for mouselook and more optimizations of my own code and stuff in the UI. We'll see.

Monday, April 2, 2018

Black Dragon Guide: User Interface Tour

So you've been booting up Black Dragon and wondering about the different, where's your X and how can you find Y. This guide is going to focus on a few things about the UI you should probably know.


Starting with one of the first things you'll see after logging into Second Life will be your Toolbars. Toolbars are the 4 (2 vertical and 2 horizontal) bars aligned to the edge of your screen, these invisible bars can be filled with lots of buttons. By default you'll find a few of them already attached to the top.

From left to right you'll find the Voice toggle, Conversations, People, Places, the Machinima Sidebar, the Poser, Outfits and your Inventory. You can drag them to any of the four toolbars at the edge of your screen, top, bottom, left and right, you can also remove them or change their appearance as well as add new ones by right clicking them and selecting "Toolbar buttons". You can also get there by pressing Ctrl + Alt + B or by using the main menu (Dragon - Edit - Toolbars).

Local Chat

Local Chat is by default part of the Conversations window because as you might have guessed it it's a conversation (kinda... talking to yourself doesn't count). However not many know that you can simply detach the Local Chat tab from the Conversations window and have it be a separate window or more specifically a movable chatbar.


If you are wondering where your Linden Balance has gone, it can be found in your Inventory because... well it is part of your Inventory isn't it, that is if your Inventory is some kind of wallet.

Action Wheel (Pie Menu)

The good old pie menu is still a thing in Black Dragon, it can be found in Preferences - Interface - Use Action Wheel and in case you wonder why it's called Action Wheel, that's because it's really more of an action wheel than a pie menu now. It looks a lot different than what you're used to, the layout has been completely overhauled too and unified across all pie menus to offer as much consistency as possible, most options can be found in the same place across all pie menus, jellydoll options are always in the bottom menu, on the right for instance, bottom, top, left and right are the only places that can be menus except the detach menu of course. Menus are also visually highlighted with a blue border color and the entire pie menu has a fancy open animation, although you will hardly see it as it opens really fast, but here's it in super slow motion regardless.

Top Bar

The Topbar, besides additional graphics options this is probably the core of what started once Nirans Viewer. The Topbar is a unique combination of the Favoritesbar, the Statusbar and the Navigationbar all in one, neatly packed to save as much space and offer all functions still. It can also be customized somewhat, you can toggle of favorites if you want to save more space or simply don't use them, you can show coordinates and parcel properties too. The previous and next teleport as well as home button can be found here too. Did you know you can search via your Navigationbar? And did you know you can type in names of landmarks you got to auto-complete them and teleport there? You can also click into the Navigationbar and change the coordinates to teleport up/down or in any direction. Who needs the GetToHeight (GTH) command if the Navigationbar can do all of it already.

Main Menu

The main menu simply labeled as "Dragon" is another unique feature of the combined Topbar although it was more out of necessity than actual desire. It houses all menus you know and love, opens up all additional menus and makes the need to toggle the Advanced and Develop menus obsolete as these are shown by default. No more Ctrl + Alt + D (which was clashing with camera movement control anyway). A neat feature of those menus is that you can undock them by clicking the small double line at the top of a menu, this will undock the menu and make it a window you can keep open and drag around where ever you want it. Handy.

Animation "Synchronization"

Quite a few people keep asking if such a feature exists. Well does it? No, not directly. However you can find an animation "restart" in the Poser window which can be found in the main menu Dragon - My Useful Features - Pose/Animation Manipulator. Simply select everyone whose animations you want to restart and hit the "Restart" button, this is essentially the same as synchronizing them.

Machinima Sidebar

The Machinima Sidebar is a really neat and quick tool to change a few settings for that perfect shot, it has been with us in several incarnations now since almost 6 years and it's really easy to get to too! Just hit F1, you can also click the Machinima Sidebar button if you got that one in your toolbars or simply do it through the main menu Dragon - My Useful Features - Machinima Sidebar. It offers a good selection of all of the most used features (except windlight presets) for you to play with and soon you'll even be able to make your very own version of it!


Oh the preferences, the heart of the Dragon. You'll find an extreme amount of extra options surfaced in Black Dragon, 90% of which are found in the "Display" tab, the very core of what makes this Viewer what it is. You'll find a lot of options for each and every aspect of the graphics in Black Dragon, almost everything is customizable to some degree if you know how.

Each and every option has been labeled properly with their correct name rather than some abbreviation that someone chose to dumb down the name, almost everything can be googled and read up on if you really want to know what it is. In addition i added tooltips for every single option explaining what the option does as best as i can without making it sound dumbed down again, they even show you visually how much of an impact the option has in general both on performance and visual fidelity. All options have also been reorganized and logically grouped to make the sheer amount of options remotely manageable, this is to make sure i'm not just adding more and more tabs making the whole preferences window a tabbing nightmare where you are just navigating deeper into the what seems like a folder structure down until you end up somewhere you don't want to be.

All options are organized from top to bottom, have a streamlined look and follow design rules to make sure everything looks as consistent as possible. Sliders are only used where it makes sense and most of the quality-type options have been simply replaced with radio button chains that offer a much simpler and easier "Low - Medium - High - Ultra" style of setting your quality as it can be found in games today, no more guessing whether 2 is better than 1 or the other way around. This also allowed for a neat little visual aid i added to highlight options that represent the equivalent of Linden Labs "Ultra" setting as well as highlight options that might cause issues or are not recommended to be set such as the feared Object Quality beyond 2. Ontop of all this, the title tabs will show small warning icons informing that something you've set might be problematic and you should possibly look into it, especially if you are having issues, you can hover your mouse over them to get more information on what is wrong. Have you set too much video memory to be used? or too less? Is your draw distance too high? It will tell you! Watch out for the signs!

If that wasn't enough there are also "Default" buttons for all slider-based options allowing you to quickly revert back to the recommended default settings. NEAT! Just another thing, you can actually click the title tabs to open and close them, WOW! Oh another, in case you are an avid mouse wheel scroller, don't worry i feel you, scrolling through these options often meant accidentally changing them when your mouse hovered over them, NO MORE, options will no longer be changed when using your scroll wheel, phew, keep scrolling! So many changes, so many improvements and so much work just for a window that displays some options you might never even look into again.

And all of this for just a tap on Ctrl + P, easy to remember if you think about Control Preferences. You can also open it from the main menu Dragon - Edit - Preferences, really easy to remember too if you think of it as a sentence. In Black [Dragon] i want to [Edit] my [Preferences].

Tuesday, March 20, 2018

Black Dragon 64x - Update 3.0.7 "Dark Dragon"

"Still getting darker."

I fixed a nasty shadow clipping issue. I think i'm moving in circles here.

I also fixed the Vignette sliders being cut off in preferences, for the... i stopped counting. This happens every time i add a new option.

Lots of main title checkboxes in preferences have had their checkbox moved down due to the label offset fix, no more.

Also Motion Blur will work on hopefully most if not all objects again at the cost of a bit performance that is but don't worry you'll hardly notice it because...

Lots of changes from Linden Labs including loading only minimal level of details for jellydolled people, improving memory usage and performance slightly. Also boob physics finally seem to be stable no matter the framerate, took them really long but hey, boob physics are rocket science and probably the only thing women truly understand that is their natural bounce, smacking them to bounce them around is totally a men thing. Lots of crashfixes are included too absolutely fixing crashes you'll probably never see at the cost of me crashing instantly on teleport in my first session, what a great start i hope it will stay at "once", a Viewer randomly crashing once or twice a day is of no use for me. Lastly a metric fuckton of changes regarding Voice have been made, Voice should be much improved now (haven't tested it yet but we'll see).

Besides that not much, it's just a small time bugfix update from my side and getting the Viewer up-to-date again.

There are still quite a few things planned for the future. Next up is ordering for the custom sidebar among other things like redoing the About Land window.

Saturday, March 17, 2018

Black Dragon 64x - Update 3.0.5/6 "Dark Dragon"

"It's getting darker."

This time coming with double the update trouble!

I've massively revamped and extended the custom sidebar functionality for those and made it a lot more resistant to purposely trying to break it. You can now add titles and space tabs to the sidebar, all of which can be removed if you want. The Viewer now also comes with a default custom layout that emulates the original sidebar which is still accessed by default when opening the sidebar and will stay there for as long as i'm not fully happy with the custom sidebar.

I cleaned up a few more things and here and there and made some tiny improvements on shadows on different altitudes although this will still need further adjustments as everything. Rome wasn't build over night.

I also finally had enough of this stupid label offset that checkboxes had for... since.... um well all the time actually, their labels should not be on the same height as the checkbox itself rather than offset upwards which looked absolutely ridiculous. I MEAN LOOK AT IT. GODDAMNIT LOOK AT IT. IT'S HORRIFYING!

3.0.6 mainly made the sidebar more crash resistant against attempts to create faulty or broken widgets resulting in a crash and ultimately making you unable to start the Viewer unless you delete your sidebar config. I wasted another day on this just because someone thought it would be funny to simply not enter values and simply press "create widget", creating an empty widget. Well that's what you get for doing so! A well deserved crash.

Friday, March 16, 2018

Black Dragon Guide: Movement Controls

So. Two-hundred-and-sixteenth time. I've been counting how often people have asked the same question and it is obvious the FAQ is not sufficient anymore to explain this.

To clear a few misconceptions right from start.

No, this is NOT broken.
No, this is NOT bugged.
No, this is NOT weird.
No, your camera doesn't stay behind your back when you move left or right.
No, it's not like "in Firestorm", its ANY Viewer. Stop crediting them for things LL did.
Most importantly, no, this is not something camera related as literally everyone thinks.

What's the issue? You start the Viewer and hit A,D or Arrow Left or Right and your avatar moves to your left/right. This is not weird this is the industry standard since... 20 years? Pretty much since 3d games became a thing. It's called strafing, although compared to games it does not look like the usual strafing e.g looking forward while walking sideways, yea that's SL for ya. Strafing is set to replace the rotational movement by default, why? Because every game that isn't a complete pile of shit does this by now, just a few special snowflakes haven't catched up with something that has been established back in doom and quake times, namely Second Life for instance. Second Life as such classifies as game, more specifically as MMO, and even more specifically as Simulation and Sandbox. It's a Sandbox MMO and it offers what is quite standard for said MMO type, third and sometimes also first person camera, those are in 99% of all cases set up to have A/D for strafing rather than the long gone turning. But how do you turn then? You use your mouse of course. We didn't get this input device for nothing but clicking UI elements, its there offering extremely precise movement in 2 directions, enough for looking around in a 3d world such as Second Life. You can simply click and hold the left mouse button on your avatar to enable "Steering Mode" in which... you guessed it, steer your camera, dragging your avatar behind (yes your avatar behind, it follows your camera rotation not the other way around). You can also simply hold your right mouse button anywhere that is not the UI and drag your mouse around to do the same (this also works after alt-camming).

But this guide is for those who simply cannot use what is considered the most efficient, most convenient, fastest and most precise, industry standard way of controlling your third-person-viewed avatar/camera.

The secret reason i changed this is to teach you something. I do this all the time. Everywhere. I do the thing that seemingly no one else has the time to do today. (Guess why all the names of graphic features are labeled with their correct names, it's so you can google them and get some actual information on them: Wikipedia for instance. NO ONE KNOWS WHAT ADVANCED LIGHTING MODEL IS GODDAMNIT)

So what you want is, you want to turn around using (most likely) the arrow keys, rather than strafing to the left/right as it is by default. This is actually very easy and i don't know why this even needs explanation but...

In Preferences - Keybindings, you can find several lists filled with controls and actions. It looks like this.

Action tells you what it does, function is the internal name of the action, button is the currently set key that will trigger said action and modifiers are extra keys such as CTRL, ALT, SHIFT. In order to change the strafing back to turning you'll have to find and select the entry that reads "Turn Left" / "Turn Right" bound to Q and E and modify them by hitting the "Change Selected" button (or double clicking the entry). A new small window will pop up. This new window displays the old keybinding at the top and the new one below, all you need to do now is press your new desired key you wish to use to trigger turning either left or right, in this case either A/D or Arrow Left/Right. After pressing the correct key and having it show up below, hit "Bind" and repeat the process until you changed everything you wanted to change. In order to prevent you from strafing and turning at the same time now, you'll have to select the "Move Left" and "Move Right" entries that have your keys bound you want to use and delete them so your keys are not bound twice to two different actions. You can check if you did everything right by pressing your keys and if you did everything right your keys should now do these:

That's it actually. In case you REALLY need help, here's a the entire instruction in a 10 sec nutshell.

Tuesday, March 6, 2018


Well BOOOHOOOOO Niran, BOOOOOOOH. You broke all the things.

Kay. *releases 3.0.4*

Black Dragon 64x - Update 3.0.3 "Dark Dragon"

I thought i'd split this up here and make another update since you've been waiting for way longer than i'd like.

This update does pack a punch though, well internally that is. Took me much longer than i like and i'm still far from done... sadly.


First and foremost.

I made a new loginscreen video. Watch it at super smooth 60 FPS, only the finest of fine. Mh-mh.

I might make a few changes to it still, i'm not yet fully happy with it. We'll see.

Next up. As said in my previous post, the recorder window... it is there and it... works... kinda but really all it does right now is basically showing you the waypoints, you can add new ones and can play them back but it's buggy and finicky and really not fun to use right now. It had to make way for something else.

Which brings me to... the poser changes. I'm still investigating ways to make posing easier for everyone not me and thus i made some changes in which order rotations are applied in the poser, this does improve the slider-to-avatar handling a lot but... it causes a million new issues, poses are saved differently now (old ones are still compatible) and when this is finally going to LL this is going to be an unacceptable solution for server side synchronization. I'm thinking of splitting the poser into an extra window or at least multiple tabs, one for local posing that uses the new rotation orders and another tab for the server side synchronization implementation which will use the old way. I'll have to split them anyway at some point otherwise this is not going into official. I'm planning to have the poser start into "Edit Mode" just like it is right now with the option to switch to "Create Mode" which will allow exporting animations and will put you into the default T pose to prevent poses from being "stolen" (are you fucking kidding me? 10L$ 5 minute poses being stolen... what have we become...). If the poser does anything weird leave me some feedback, i'm sure i've missed something somewhere... probably.

In case you want to improve rotation orders yourself, there's a dropdown labeled by default with "NONE", you can use this to change the order in which rotations are applied, if you find a rotation order for a bone that works better than what i've set them to, just tell me, i couldn't test all bones but most bones should have a good rotation order set by default now. It's not perfect but its better than what we had before and makes posing a lot faster.

This should hopefully no more. One slider will now ALWAYS roll, the other two will move, still the second movement slider will however start rolling if you point up straight up/down relatively to the default rotation of the bone (thisisjusthowquaternionswork).

Now the thing that took me probably the longest out of all of these changes...

Customizable Sidebar. Currently you can add only sliders and checkboxes until i make radios actually take values for their sub-widgets... and other stuff.

It's not much yet, no debug setting dropdown (meaning you have to know the debug settings or look them up), possibly a million ways to break this stuff by simply not entering anything and probably weird stuff that might even crash the Viewer, use at your own risk.

Most of the other things are minor changes, improvements to shadow precision on different altitudes (hopefully), forced shader level 2 (this might further increase incompatibility with unsupported GPU's like Intel HD GPU's) and some experimental compiling changes that will completely and totally crash the Viewer instantly the moment you start it if your CPU is older than 2011. Sandy-bridge (Intel), Bulldozer (AMD) and up ONLY. It should have varying levels of performance improvements though (the reason i could take that login video with super smooth 60 fps without microstutters). If the Viewer crashes instantly when clicking the shortcut, you're most likely using an incompatible CPU, if that's the case... well tough luck. If the need is high enough for such a version that doesn't have these changes i might consider making one, otherwise this will be the new standard.

3.0.2 will stay up for a bit JUST IN CASE. This is not the rule, it's an exception, expect it to vanish at any moment i think 3.0.3 is sufficiently stable.

Saturday, February 24, 2018

Update 3.0.3 and why it is taking so long.

Long story short, i'm working on 3 bigger for this update.

One has been researching and studying the arts of rotations and how to make rotations in the poser a bit... easier to work with. I had... mediocre success. 3.0.3 will include a dropdown menu in the Poser to change the order in which you apply pitch, yaw and roll. Since quaternion rotations are heavily dependent on the order you apply each value in it makes a possibly drastic difference if you apply roll before pitch, or yaw before roll. I've switched most main bones around to use whatever rotation order i found to full fill the requirements i wanted for a "proper" rotation interface, this means most main bones should now have 2 sliders that move up/down and left/right while the third will ALWAYS roll around its own axis rather than going all nuts depending on the other two sliders. However due to how rotations work you might find yourself in the situation where one of the first two sliders will do the same as roll, this is simply due to how rotations are handled. Imagine looking forward, then looking up and down. Look forward again and then left and right on the same height, simple right? This is how the sliders work when not being used in conjunction with other sliders. The complex stuff starts when you look up a bit and then look to your right, what do you do? right, you look to the right on the same height you had before, you rotate your look on the same plane around yourself. This is how these sliders work too. Funky stuff happens when you look straight up or down and then try to look left or right, since you look left/right relative to the angle you look up you'll just turn around, basically rolling your view just like the third slider would do or as you would do when tilting your head to the side. Sadly there is nothing i can do about this. I hope to get a better fix for this when this is going to Linden Labs.

For now all old poses are detected as "legacy" poses and they will be loaded as such, meaning they will continue to look the way you saved them, all new poses saved after this update will use the new rotation orders for bones, making it easier for you to pose most of the bones, some weird bones like tail and wings do remain...weird since they are not aligned straight. :/

While we are talking about tails...

I got mine utterly smashed by a heavy metal cube while working on stuff. Yikes.

Second thing i'm currently (not) working on is the camera recorder window. The Viewer always had an avatar recorder implemented but beyond just recording and playing back there wasn't really anything you could do, i'll want to make a full camera suite that allows creating new recorded paths and edit them to make automated, animated camera paths possible. As nice bonus i saw something that might help me get camera tilting to work without controller (besides the camera recorder).

Last but not least, my current project is working on the sidebar... what is there to work on... especially for so long?

A fully customisable sidebar, it's taking quite some time (most of it was wasted on trying to find a way to delete layout panels out of stacks without crashing the Viewer but was ultimately given up on because it is simply not possible hence why it isn't done anywhere in the Viewer (probably)). I sure hope it will be worth the wait but as everything else will probably take multiple updates before its working as intended.

Also, little reminder to join the Discord chat if you need help or want to share pictures.