Disclaimer

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.

Friday, September 30, 2016

Black Dragon Viewer - Update 2.5 "Ending Dragon"

Ending Dragon,
Ender Dragon,
End Dragon,
Dying Dragon,
Omega Dragon,
Resting Dragon,
Sleeping Dragon.

There are many names for this update i liked but "Ending Dragon" is probably the best for this update as it contains "end", signalling "the end" that i announced almost 3.5 years ago and at the same time describing what is going to happen.

Lets turn back time for a second. May 17th 2013, almost 3.5 years ago when i announced Black Dragon i kinda announced it's "death date", saying that i will end active development with the version 2.5 which, back then, i thought would take roughly 30 more updates, with one update coming each week. So... i expected Black Dragon to go silent a bit over half a year later, possibly a year max with smaller updates in between. Turns out this is not how it works. I pushed out 2.5 further and further and if you want ... 2.5 years later ... funny isn't it? The amount of time i would delay it's end was in it's final's update name all along. So was it planned all along? Who knows ... i guess this means Half Life 3 IS in fact confirmed after all.

Back to nowadays, i'm struggling to keep myself interested in continuing the Viewer, i feel bored an empty, worse i feel like i'm wasting my time more than when sitting around wasting time. It doesn't help me to get further in life either and before anyone says anything overly enthusiastic, the answer is no. You can hardly call this coding, this is like modding a game, just because someone can mod a game, no matter how good, doesn't make him a game developer, writing stuff from scratch is something entirely different than modding existing content, i can't even set up a simple 3D view of a cube. I'm surprised i have even gotten this far.

So what's going to happen now? I'll be updating the Viewer with the latest code and features as well as fix bugs whenever i see fit but i won't be writing anymore update notes, i'll release updates whenever i think i've done something, they'll be silent updates so you'll have to check for them yourself. I might do a monthly or quartely quick write up of big changes that have been happening since last update but that's pretty much it. I'll do one last push to get as many of my changes into the official Viewer but don't expect anything, LL is very specific about what they want and how and i'm even more specific on how i want LL to want these things.

Oh well, i guess you expected a blog post about the last release instead of some suicidal "goodbye" talk, so let's use the last bit of leftover enthusiasm to cover that instead.



User Interface



I added some not-so-fancy but informative [Moderator] and [Developer] tags to the IM window, so from now on you should be able to identify people who have moderator rights in a group chat, the developer tag is basically just for me for fun so you know when you're talking to me, that should stop the question "are you the developer of black dragon?", yes, yes i am. If both is true (only in my group chat) you will see [Mod][Dev], all of these tags have different colors.


While going through the old localization files for the preferences floater i fixed a bunch of changed labels and fixed pretty much all german preferences tabs, they should be working now but don't expect them to be complete, it's just a re-enabled versions of the previous localization before i've redone preferences and stopped updating the german localization.


The Visual Outfit Browser has been implemented and (of course been) changed to make it less ugly and more fitting for the appearance floater it is in, also i changed a few things around so it should work fine with the smallest width possible for the appearance floater without needing to scroll horizontally ugh.


I also made the inspect avatar toast a lot less ugly, that light grey was sticking out like a Christmas tree in a pitch black night. It has more space for the description too!


I also added an option to the snapshot floater called "autoscale rendering" that will automatically scale Depth of Field, Shadow Blur and SSAO higher as counter to high resolution snapshots which tend to make these effects less visible or weaker, this is not a bug, it's simple logic. If you put a square with 200x200 dimensions on a 512x512 picture it will cover almost half of the picture but if you put the same square on a 2048x2048 picture it will only be a tenth of that picture, that is essentially what is happening here and this autoscale feature simply multiplies the strength and size of SSAO, Shadow Blur and Depth of Field internally to match the desired output resolution, note that this is not perfect or in any way a super complex calculation, it's a simple multiplier that goes up/down with the resolution of your snapshot compared to the resolution your window currently has.



Rendering



I've made some changes to the way some shaders are loaded, i've separated them from the big main pile and made them separately loadable, this allows me to load them whenever necessary without incurring a massive recompile of all shaders just for a tiny change. This change drastically affects the framerate hitch you may see when toggling any of the main features such as shadows, ssao, ssr and so on, almost all of them are now instantaneously just like changing shadow resolution.

I added the old Depth of Field back into the Viewer, it's a toggle in both the display preferences as well as the sidebar, it's slower, causes massive framerate loss if turned all the way up to SUPER BLUR but looks all the better to make up for it, the new one in comparison is highly inaccurate and causes haloing around focused objects or avatars. See the difference in the pictures below.

new Depth of Field
old Depth of Field




























Viewer



I cleaned up, optimized and simplified and tagged another a bit of my code and fixed a few warnings all over the place. Changes to make future merges easier as well as allow other people to easier identify my changes if they want to take them.

I fixed a few issues such as guns not working in mouselook, butchered a few statistics that are being send to LL and merged Marine's fix to prevent 100% transparent objects from rendering.

RLVa is sadly completely off the table, when i started merging the differences in i came across the whole appearance and HTTP stuff and it dawned me that this will most likely sabotage RLVa so i kept it out once and for all. I'm sorry folks, RLVa is not going to be added back into the Viewer unless i get a version of it that is up to date with the very latest stuff and is not blown apart by changes that are made half a week later by LL that refactors the entire viewer-server communication again. I'm sorry but i'm sick seeing it happen over and over again.

Here are some random facts:


  1. I made 9 updates in 2013, 24 updates in 2014, 32 updates in 2015 and 17 updates (including this one) in 2016. Clearly i've been the most productive in 2015. 2016 is by far the lowest if we take into account that 2013 started at October. That makes a total of 82 updates, 52 more than originally planned.
  2. The new snapshot floater in the LL Viewer was my fault.
  3. I did not know C++ in any way when i started developing Nirans Viewer. I still don't know the basic basics.
  4. Black Dragon was active for 40 months, Nirans Viewer was active for 20 months making a total of 60 months i developed both Viewers together, 5 years.
  5. I spend most of the time on the UI unless you count an iterative process as continuous process without pauses in that case i spend most of the time on finetuning settings.
  6. The Viewer never had more than 2500 users according to the statistics i got. I'm currently estimating them at roughly 2000.
  7. I like transparency and i love changelogs/patchnotes. I hate it when people say over generalized things like "we changed stuff" it's a clear indicator that they either don't care about documenting changes or are incapable of doing so due to managerial reasons for example.
  8. Most of the main Third Party Viewers (including mine) are developed by or at least with the help of one or more Furry. Exodus, Firestorm, Black Dragon, Alchemy, Singularity. You might want to think about that next time you insult one. I didn't know either until i started attending more opensource developer meetings.




Changelog



2.5 - Ending Dragon (you can see the complete list of 2.5 changes since 2.4.9.9 on the changelogs site)


Added: Ability to switch between the old style high quality Depth of Field and the new faster but less precise one.
Added: High Quality Depth of Field option to preferences.
Added: High Quality Depth of Field option to Machinima Sidebar.
Added: A few more german translations, mainly the main shader toggles.
Added: Chat moderator and developer tag.
Added: Simple automatic SSAO/Shadow/DoF scaling option to scale these up/down for higher-than-window resolutions.
Changed: Layout of the picks floater and the picks info panel.
Changed: Made rendering only reload shaders where necessary, eliminating freezes when toggling shaders.
Changed: Made changes to how shadowmaps are allocated.
Changed: Overhauled the layout of the appearance floater.
Changed: Reduced outfits per row to 2.
Changed: Reduced outfit item size to fit into the minimum floater width.
Changed: Colors of visual outfit browser to match the rest of the appearance floater.
Changed: Decapitalized german outfit tabs.
Changed: Inspect avatar toast layout, made available description space much bigger.
Changed: Disabled the collection of a few statistics that seem completely unnecessary and old.
Changed: Search bar is uncomfortably close to the clock in the english UI.
Changed: Version to 2.5 Ending Dragon. Marking the end of the active development cycle.
Fixed: Guns not working in mouselook with mouselook grab disabled.
Fixed: XML parsing errors in floater_picks.
Fixed: XML parsing errors in panel_pick_list_item.xml
Fixed: Almost all compiling errors, still doesn't compile.
Fixed: Compile once and for all.
Fixed: Line Endings.
Fixed: Invalid token warning in panel_snapshot_postcard.xml.
Fixed: German translation for general preferences tab.
Fixed: German translation for display preferences tab.
Fixed: Don't render 100% transparent objects. Fixed by Marine.
Fixed: German translation for chat preferences tab.
Fixed: German translation for IM preferences tab.
Fixed: German translation for privacy preferences tab.
Fixed: Display tab clipping Vignette options.
Fixed: Chat scroll panel having the wrong name.
Fixed: Blackness when turning off Blur Light after turning off SSR/SSAO and Shadows.
Misc: Line endings fix.
Misc: Cleanup in snapshot floater code.
Misc: More tagging in llviewershadermgr.cpp.
Misc: Cleanup and tagging in llfloatersnapshot.cpp/h and pipeline.cpp/h.
Misc: Cleanup and optimization in llviewershadermgr.cpp.
Merge with Bento
Merge with Release

11 comments:

  1. Niran, I'm not going to try and persuade you to keep going as you have, because that would be insulting and also probably futile. Instead I'll just thank you for making the prettiest viewer, even if one did need a bit of a monster PC to run it right :)

    If I may make one request, though, when you do "update the Viewer with the latest code and features as well as fix bugs whenever you see fit", just stick a note somewhere to say you've done it. If I've been away from SL for a week or three usually this blog is the first place I check to find out if there's a new version of my favorite viewer :)

    ReplyDelete
  2. I'll log my changes because A: i have to and B: i love logging changes - since i'm logging them anyway i'll continue updating the changelog, i might also put a "Changelog" panel into the login screen as well as a version counter somewhere on the blog with a date when the last release was uploaded.

    I'm sorry i haven't come with a better way yet, i actually wanted to make the auto-updater work for 2.5 but every time i look into the auto updater it looks more like a mystery.

    I'm also sure you don't need a monster PC to run the Viewer, at least not on minimal settings, a 3ghz quad core, 8gb RAM and a GTX 260 or higher should be enough to run Deferred without Shadows and Blur Light with a decent framerate.

    ReplyDelete
  3. So long, and thanks for all the fish, Niran :)

    ReplyDelete
  4. Yeah man, I've used Black Dragon and followed this blog a long time and I can say it's my favorite viewer. While good quality visuals are attainable on other viewers, yours has always been on the leading edge.
    So thank you for all the great work you've done and perhaps the experience you've attained with NiranV and later Black Dragon may yield you the ability to develop your own commercial product to help you with your life, and maybe later down the line an even better SL viewer.
    *virtual toast*

    ReplyDelete
  5. Thank you for all your works and your addition to LL viewer and others TPV. And thank you for your different point of view make this viewer with so much personality. :)

    ReplyDelete
  6. Thank you for making one of THE best SL viewers in existence :) I do hope you continue on, but it's your choice really as you're not getting paid. I bet though that the people who love your work might consider donating some funds to your time. Whatever you decide just know that you're appreciated and you do great work!

    ReplyDelete
  7. Hey, sad to hear the news, but thanks for the awesome viewer I love for its perfection.
    And who knows... that a version 3.0 ever pops up from you.

    ReplyDelete
    Replies
    1. It's far from perfection.

      Perfection is designing every single panel with a very strict and specific layout with a set rule set for each and every individual situation. I've been eyeballing most stuff since many layouts are beyond unreliable, fixing them would be the very first step to perfection before i could even think about setting rules for layouts. It's virtually impossible to do, SL has too many features that makes having a singular, completely streamlined and strict layout pretty much impossible, every window is a new challenge, every panel adds another depth of complexity throwing all your designs completely off again, it is impossible to perfect the UI alone, everything else is just worse.

      3.0: Someday.

      Delete
  8. Curious how are you able to interact with objects off sim such as vendors for example, since some shopping events use multi-sims and your unable to buy something from a range

    ReplyDelete
    Replies
    1. Not sure why you ask but yea you seemingly cannot interact with objects offsim which makes sense. Not sure if that's something you can fix in the Viewer tho.

      Delete
  9. So, wake up, Mr. Niran. Wake up and smell the ashes.

    ReplyDelete