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.

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.

Friday, February 9, 2018

Discord Server is live

I sat down for an hour and made a Discord Server for the Viewer (finally), now you can bug me with your issues all the time, everytime, everywhere you go, no matter where i am. It also offers some help resources, a help and suggestion channel as well as general chat and picture posting channels for those who want to share their pictures made with Black Dragon. Note the server is only moderated by me and i won't be moderating much, you are free to post whatever dirty nude pictures you deem right but prepare for EWWW's if people might not like it. *shrug*

For those of you who dont know what discord is it's a chat and voice application just like Skype/ICQ/Teamspeak but on steroids you don't even need to have it installed to use it, you can use it via their website too, though you might want to save it somewhere if you are asking for help so you'll get the notification when you get an answer to your help request.

Please don't expect me to respond the instant you @mention me or write into help, i might be sleeping or playing a game or simply not at my PC, i'll get to you eventually.

The invitation link can be found on the right side in the sidebar labeled "Discord Channel" it will direct you to the website where you'll be asked if you want to join the server, accept and you'll be given the option to either close the tab for if you have the app installed or continue to the server through the website in case you want to use the webapp.

Monday, February 5, 2018

Black Dragon Guide: Projector Lights

It seems like that projector lights cause some confusion, whether it is not knowing how to enable them or not knowing why they might not work. Here's a guide on how to set up projector lights.

Step 1: Preparations

First and foremost to make projectors even work you have to make sure several options are enabled as follows:

Deferred Rendering - to allow shadows and projectors to work, at all.
Render World Lights - to allow lights not attached to anyone to work, at all.
Render Spotlight Light Refraction - to allow the light cast by projectors to be seen, this includes shadows that are inside the light radius, remember no light, no shadows.
Shadows: Projectors - to allow projectors to cast shadows.

Additionally you should make sure the shadow resolution for both projectors are set to at least 512 (1024 is better and still lower than default but looks more than fine).

If any of these options are not enabled or not working for some reason (unsupported hardware such as Intel GPU's) you'll not be able to see them.

Step 2: Setting up the projector

Right click the ground or any object and select Build to open up the build tools floater, you can do the same by hitting Ctrl + B or Ctrl + 1/2/3/4 for any of the tools directly. Now rez any prim and set it's "Light" property to true, the prim will now emit light, nothing new so far. The magic happens when you select the empty texture select rectangle at the bottom of the same tab you just enabled the "Light" property in (Features tab) and select a texture, if you don't have one handy you can simply use "Blank" at the top, that works too. Accept with "OK" and the light should have vanished like this:

Fear not, you didn't do anything wrong, the reason the light vanished is because the light is now a projector, a projector is a directional light only casting its light into one direction, which by default is below this cube, stupid that. Lifting up the cube will immediately reveal the light being projected below it:

Given everything mentioned above is working and you haven't done anything wrong you should probably already see the projector casting a shadow depending on if something is in it's light such as my Avatar is on the picture.

Step 3: Finetuning

Now that the projector is set up and working you'll have to finetune it. Change the light intensity, radius, falloff and so on. New for projectors are FOV, Focus and Ambiance. FOV simply controls the field of view (how wide the light is), focus sets the amount of blur or sharpness the corners and the projected texture has (if any) and ambiance sets the amount of light in all shadowed areas, essentially setting this up will raise the ambient lighting up to the point of completely eliminating any cast shadows, they will however continue to cast them, taking up resources and a precious shadow spot.

Additional Info

If your projector still does not cast a shadow this might be due to the limitation of a maximum projector shadow amount of 2. You can never have more than 2 projectors that cast shadows at any given time and the Viewer will try to give those shadow spots to the closest 2, this can essentially make a perfectly set up projector not cast a shadow because 2 other projectors are closer and taking up the 2 available shadow spots, keep this in mind.

Two shadow projectors are fine.

A third one cancels the right one out. Try to prevent this at all cost, don't use more than 2.

Sadly we don't have any means of controlling which projectors can cast shadows or not beyond the local option i added labeled as "Shadow" besides the checkbox for the "Light" property. You can use this to prevent a projector from casting a shadow to make room for a more important one doing so but this option is not saved as it is not synchronized to the server. I've written a Jira to get this feature implemented with not much progress so far.

Note that additional projectors will reduce your framerate fast as they take up a lot resources even when not casting shadows, use them carefully.

Sunday, February 4, 2018

Black Dragon 64x - Update 3.0.2 "Spring Dragon"

Just a quick update, fixing the pay dialog in the german UI as well as overhauling it while being at it.

Also another Patron, yay.

Niran trying to figure out dance floors, how am i doing?

Thursday, February 1, 2018

Black Dragon 64x - Update 3.0.1 "Spring Dragon"

Another update with more meaningless fixes and changes.

There's sadly not much to talk about, it contains a bit of fixing unreadable username tags, a slider not working, the friend count not counting properly and borderless window crashing when activated through the menu, also IM flash count and period options have been removed as they are no longer used and were causing crashes if one were to reset them.

There's only one thing...

As promised and threatened, Object Quality is now clamped to 4 max. I said, if FS pulls through with this, i'm going to do it as well and it seems like even LL is planning to do so. This means soon shit content creators have to be less shit and learn to mesh better so their stuff doesn't go invisible the moment you zoom out 2 meters as they wont be able to tell customers anymore to simply set the LOD to higher than 4. Don't like it? I don't give a fuck, you deserved this, it's time this mess is finally getting cleaned up.

I'm watching you.

Wednesday, January 24, 2018

Black Dragon 64x - Update 3.0 "Spring Dragon"

The big 3.

3 words.

Bugs and fixes.

Initially 3.0 was planned to be a huge update with lots of changes in the UI but when i started working on the places window i realized what a huge clusterfuck it is and immediately lost all mood to continue so no massive UI overhaul. I'll progressively update the UI over coming updates as usual instead.

Instead, this update contains mostly fixes and some up to date LL code with the latest release. One thing right away, the media autoplay issue is still not fixed even after several fixes from LL, i won't touch it, i don't care about autoplay media, it is the single most annoying, least interesting and most forgettable feature in any Viewer and i have no idea how to fix it even if i wanted, i'm happy i can find my way through big parts of the rest of the code without my head exploding.

Anyway, fixes include outfit filter having black text on black background, the sidebar and display tab not refreshing when loading a preset and HOPEFULLY the poser not being overridden anymore by certain human mesh heads (god these things only cause issues, i swear. Texture corruption, alpha issues, no mod, overpriced junk ~ i'm looking at that shitpile of 5000L$ for a goddamn head ~ and animations that override even the highest internal animation priority).

Most of my time however was wasted on getting two new buttons working (and making the code look somewhat decent) to move entries in the animator up and down by one row. Hooray for that! No need to add something in between and deleting the old entry, now you can just move it up and down as you see fit.