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.

Wednesday, September 18, 2013

Alpha 2.3.2

It's time....tooooooo....UPDATE! or die.

I know i'm a bit slow atm but keeping the Viewer up to date, maintaining it, fixing stuff and basically redoing everything you've done already proves a bit more of a time waste than i thought, especially if you're feeling an increased need to play some games here and there.

This is also the last update before i will focus on heavier UI modifications, which also include totally redoing the Preferences floater, i'm not entirely sure if it will stay a floater this time or if i'm going to do that Sidebar thing i was originally planning.... but hey, we'll see.

So....this update comes with alot of CHUI bugfixing aswell as MAINT, NORSPEC (Materials) and general bugfixes (BUG and, CHOP) and ofcourse my own rotation of changes. See the changelog for a complete list of changes.


General:


I squashed alot of bugs, like the Chat Range Rings not working correctly, the Topbar background going nuts on Mouselook/Minilocationbar switch, "Busy Mode" not working (its called 'Do not disturb' now), the empty Local Chat tab in Conversations beeing selected whenever you opent he seperated Local Chat floater among a few other things.

I also merged CHUI, Viewer Development, Cocoa and brought everything up to date.

Some cleanups inbetween (not too much right now as i will do that later in maintenance updates) and generally some small changes here and there that should give back a bit more of a 'Nirans' feeling...things like Reset View will not change your Camera Preset anymore, some layout changes in the Script floater and Machinima Sidebar aswell as some options that were removed due to them beeing obselete and/or not working anymore.


Rendering:


Best change for you probably is the implementation of Screen Space Reflections (again) from Tofu, which can also be toggled on/off just like before. Internally it is now using a permutation system (basically an shader file if/else system connectable with Debug Settings or Viewer internal code) which will also allow new little neat tricks in future :)






Also Tone Mapping defaults were slightly changed for a slightly nicer and especially brighter look to match non Tone Mapping a bit more.
















Sometimes i would like to give the sky a slighly more blueish touch, not for me, just so you stop complaining about 'washed out' colors.


Snapshots:













Anyway, enjoy this brand new update.
Niran.


Changelog:


2.3.2 Alpha


Removed: Some Loadingscreen tips which don't show up-to-date information.
Removed: Old broken code.
Removed: Old Gamma Correction code leftovers.
Removed: High Precision toggle from Machinima Sidebar.
Added: Screen Space Reflections toggle to Graphics tab.
Added: Toggle for Screen Space Reflections using the Shader Permutation System.
Added: Screen Space Reflections feature from Tofu. Currently no way to disable it.
Added: Menu entries to toggle Minimap Chatrange Rings.
Added: Geforce GTX Titan to GPU Table.
Added: Translations for Windlight floaters and Inventory.
Added: Missing 'Play Chat Animation' option to Chat preferences.
Changed: Tone Mapping/Color Correction defaults for a slightly more finetuning overall look.
Changed: Disabled Physics Shapes menu entry as it crashes the Viewer.
Changed: SSAO/Shadow softening for less pixelation, also looks better on Avatars.
Changed: Make "Reset View" not change our camera preset.
Changed: Updated Special Thanks page in Viewer and marked all unknown or not fitting informations with a star.
Fixed: Topbar Background staying visible in Mouselook mode.
Fixed: MiniMapChatRing not correctly showing/hiding all rings, cleaned up code a bit and did a small performance tweak.
Fixed: Recent CHUI merge breaking forced single-line mode for IM tabs/Local Chat.
Fixed: Seperated Local Chat selecting the empty Local Chat tab in Conversation floater every time you open the Local Chat floater.
Fixed: Conversation tabs panel resizing incorrectly due to additional space values beeing added.
Fixed: 'Busy' (Do not disturb) mode not working.
Fixed: Machinima Sidebar overlapping the Topbar area.
Fixed: Script floater layout overlapping floater title bar.
Fixed: Top Toolbar Caret icon missing.
Fixed: Topbar background didn't hide when changing to Mini-locationbar.
Fixed: Missing Mini-locationbar background image.
Cleanup: Remove Tofu's huge amounts of unused/experimental outcommented code and prepare it for a toggling feature.
Merged: Up-to-date CHUI.
Merged: Up-to-date Materials Development.
Merged: Cocoa Project.
BUG-3605 / CHUIBUG-197 Don't create excessive amounts of string objects in LLNormalTextSegment::getNumChars.
CHUI-506 FIXED Don't change dropdown position if items are unchanged.
CHUI-748 (Right click does not produce context menu for landmarks in Trash in Places Floater)
CHUI-759 FIXED Group invites never received in do not disturb mode when leaving do not disturb mode
CHUI-797 FIXED Only one separated conversation window is shown after exiting from mouselook view
CHUI-808 FIXED Draggable separator between conversations and message pane is not discoverable:
CHUI-809 (Right-click menu on user name in compat chat mode doesn't have "IM")
CHUI-817 FIX Revealing the "Conversations" window reveals hidden Nearby Chat window as well
CHUI-818 FIXED For group toasts: show name of the group in Titlebar; add [From User_DisplayName] before text of the message.
CHUI-820 FIXED Cannot snap or move collapsed conversation window to left or right edge of viewer window
CHUI-827 FIXED "Linksets" menu item is added
CHUI-836 FIXED [CHUIBUG]Opening chat history from the conversation log sometimes crashes the viewer
CHUI-838 FIXED (Opening chat history for groups only works once per session, if at all)
CHUI-841 FIXED No warning given that you cannot leave a group you are the last owner of in conversation floater and people floater
CHUI-845 : Make changeLine() a bit more resistant to unforseen line count values (i.e. 0) and a bit more general
CHUI-850 FIXED Unread notifications are lost after relog in certain circumstances
CHUI-859 FIXED Conversation panel moves when new message received with Open Conversation window preference
CHUI-866 FIXED Disable menu item if Conversation Logging isn't allowed.
CHUI-867 FIXED Set focus to Session floater(if it is torn off) after clicking appropriate conversation item.
CHUI-896 ADD FIX Line flashing and FUI button flashing not working correctly for CHUI notifications
CHUI-899 (The size of conversations panel does not persist between sessions if user relogin while messages pane is collapsed. )
CHUI-911 FIXED [CHUIBUG]When Chat side of Conversations floater is reduced to it's minimum width the scroll bar is half-obscured.
CHUI-912: Propagate arrange request correctly, limit sort, improve filter perf, clear traces, add comments.
CHUI-913 FIXED Show toasts for torn-off windows that aren't collapsed.
CHUI-914 FIXED Restore previous text after gestures were triggered.
CHUI-915 ([CHUIBUG]Control+W hides Conversations floater instead of closing active tab)
CHUI-916 FIXED Clear mMisspellRanges if spell check is not needed.
CHUI-918 FIXED "Close all conversations" menu item is added to context menu.
CHUI-921 FIXED Default position of open floaters starts at left edge of viewer behind toolbar
CHUI-922 FIXED Panel width was increased
CHUI-923 FIXED Show toasts if Conversation floater is focussed and current conversation is not selected.
CHUI-926 FIXED FUI button will stay highlight(orange) if there are unread IMs when the conversation floater is minimized.
CHUI-932 FIXED Restore previous text only if there is no gesture.
CHUI-933 FIXED No notification of IMs when coming out of Do Not Disturb mode with Flash Toolbar button preference
CHUI-934 FIXED Don't try to close Session floater if it is already doesn't exist.
CHUI-936 FIXED Do not show Conversation log floater if logging is disabled.
CHUI-938 FIXED Pop up (?) notification steals focus
CHUI-941 FIXED [CHUIBUG]Inline input is not available in 3.5.0
CHUI-942 FIXED Choose Resident picker problems
CHUI-943 FIXED "Chat history" menu item is added to context menu for Nearby chat.
CHUI-944 FIXED Show Voice indicator for P2P torn off conversations.
CHUI-945 FIXED Add Object IMs to Chat Notification Preferences
CHUI-946 FIXED Return FALSE if key is not handled here.
CHUI-950 (Reduce min width of messages panel )
CHUI-952 FIXED Disable single line mode when restoring floater.
CHUI-953 FIXED Close conversation floater when quitting viewer
CHUI-955 FIXED Docked Group and Torn off p2p panel can be resized small enough for buttons to overlap
CHUI-956 FIXED Vertical scrollbar in conversation list not scrolls off bottom
CHUI-957 FIXED Missing line was added.
CHUI-958 FIXED Log spam: "drawtext: Ran off Segmentation End" and To field in nearby chat blank when selected
CHUI-959 FIXED Resident picker allowed to open behind fui toolbars
CHUI-963 (Toggling chat fui button twice tears off nearby chat to lower left corner also deletes other open conversations)
CHUI-964 ADD FIX Oversized "To" input field hides actual IM text
CHUI-966 FIXED WARNING: LLSysWellWindow::removeItemByID: Unable to remove notification given when deleting notification
CHUI-968 FIXED "name" attribute was added for panels
CHUI-971 FIXED Unnecessary checking was removed.
CHUI-972 FIXED Don't show voice request in DND mode, even if session with participant exists.
CHUI-973 FIXED Speaking indicator was removed
CHUI-974 FIXED "resident" accounts unable to see favorite landmarks on login screen
CHUI-975 FIXED Message text is changed
CHUI-976 FIXED Correct way to show Nearby chat is used now.
CHUI-978 FIXED Load data from chat log file in separate thread to prevent viewer freeze
CHUI-979 FIXED Clear highlight after clicking in chat input. Do not flash chat button if current conversation is focused and torned off.
CHUI-982 FIXED Clicking on conversation in conversation list to bring focus to conversation removes text entry prompt for chat bar
CHUI-983 FIXED Call showHistory() after clicking toast as it was before. Minor change in showHistory()
CHUI-984 FIX Clicking on voice icon no longer brings up voice volume slider
CHUI-985 POSTPONED [CHUIBUG]User receives three friendship offer notifications simultaneously when he accept/decline friendship offer
CHUI-986 FIXED Don't open Conversation floater for offline IMs if it's not from group or friend.
CHUI-987 FIXED (Viewer crashes when you try drag and drop any object from inventory onto avatar’s name in resident picker)
DRTVWR-324 : Suppress the use of BuildParams to set up the channel and use the TC environment settings instead
CHOP-951, IQA-1477: Validate args for numeric command-line switches.
CHOP-955, CHOP-957: Platform-specific switches files => settings_install.xml.
CHOP-956: Add settings_install.xml to settings_files.xml.
CHOP-957: Stop reading gridargs.dat in 'secondlife' wrapper script.
CHOP-959: Honor --graphicslevel switch even on first viewer run.
CHOP-960: Validate cmd_line.xml for map-to real settings.xml vars.
CHOP-962: Make LLControlGroup::declare* return LLControlVariable*
CHOP-966: use 4 part version numbers for release notes urls
OPEN-170: "Set Window Size" always increases window size by specified size
OPEN-171:  the save file dialog incorrectly uses type codes as extensions
OPEN-182: correct tip rev number use in local build version generation
MAINT-1453 ifdef around windows-only work-around to restore 8x and 16x AA modes on Mac
MAINT-2302: Re-enable previously-disabled LLProcess tests for diagnosis.
MAINT-2333: Use bouncing progress bar for Linux updater message.
MAINT-2404 Fixes detection of VRAM on OSX removed along with other AGL code. Code Review: callum
MAINT-2937 FIXED [CHUI] crash in LLToastIMPanel
MAINT-2938 FIXED [CHUI] crash in LLFloaterConversationPreview::showHistory()
MAINT-2939 FIXED [CHUI] On Windows machine location address bar in viewer goes blank if location is selected and a menu item is seleted
MAINT-3012 FIXED Don't show Destination Guide by default on first run.
MAINT-3020 ([CHUI] Torn off nearby chat is no longer visible after exiting mouselook)
MAINT-3048 FIXED Don't block IMs from Lindens even when "Only friends and groups can call or IM me" is set
MAINT-3073 ([CHUIBUG](You) feature is irritating, especially for emotes)
STORM-1850: ensure that last exec event reports apply only to the same version
STORM-1855: Improve performance of pasting large blocks of text in the script editor
STORM-1892 Add Apply button to the edit content permission floater
STORM-1894 UIScaleFactor: raise limit from 1.4 to at least 1.5
STORM-1910: Adds the count of groups and the remaining free group slots to the group list
STORM-1911: Go-to line function for the internal LSL script editor
STORM-1918 Part of the group notice attachment box does not allow dropping of assets.
STORM-1919: Fixed snapping of rotation in the edge-on case
STORM-1931: Added option to disable chat animations (say/whisper/shout)
STORM-1941: Cocoa project viewer: some coordinate conversions are off (Katharine Berry)
STORM-1942: dock icon bouncing unimplemented
STORM-1948 - Fix for Set home to here - screen_home.bmp not saved
STORM-1952: Add a confirmation modal when ejecting a member from a group
STORM-1953 Notifications that involve deleting something -- errors in text
NORSPEC-355 NORSPEC-356 replaced llerrs with asserts to avoid crashes from false alarms in release
NORSPEC-360 fix issues with mip selection and TCs in projector fake env reflection
NORSPEC-362 address video mem leak on windows on maximize
BUG-3363.  We have an array of URLs, and we need the paths of those URLs.  Explicitly get the path.

Friday, August 23, 2013

Alpha 2.3.1

A little bit late but better late than never!

2.3.1 is here to quick fix a bunch of reported problems, mainly your Voice problem.

It also fixes the Inventory sort buttons beeing unfunctional, show parcel properties/coordinates missing in topbar menu aswell as the whole mini locationbar which i was originally going to remove entirely aswell as the ability to disable the favoritesbar and removes the worn tab aswell as the misleading 2x/4x/8x/16x Antialiasing types which don't work as FXAA only knows On and Off in SL and it also removes the RLVa menu as RLVa is NOT part of this Viewer anymore, for now.

As always, be sure you delete your settings when coming from pre-2.3.0 versions.


BTW, the world is a Torus type and i found it's end.





Changelog:


2.3.1 Alpha

Added: Show Parcel Properties and Show Coordinates menu entries to the Topbar menu.
Fixed: Inventory Sort-by functions.
Fixed: Mini-location bar layout and made it correctly push and retract the FUI.
Changed: German Item Count display styles.
Removed: Inventory Worn tab, for now.
Removed: 2/4/8/16x AA and replaced it with On/Off.
Removed: RLVa Menu from "Dragon" Main Menu, for now.

Wednesday, August 21, 2013

2.3.0 Alpha

NOTE: Voice isn't working, i'm aware of that and i'm able to reproduce it. It seems to be coming from the inability of your Voice to connect and identify on the Voice server because of a missing CA file, which i took out on purpose because when i privately send the release to someone to test he/she said something about it, not sure what but i guess it plop'd up something. I guess the Voice exe needs this certificate to get permissions to connect which could be a change introduced with the latest Voice "enhancements" which i also merged in my Viewer. I will release a fixed version today which will contain this certificate, don't be surprised if it pops up a suspicious Windows dialog or something... i will ask Oz what is going on and why this CA file seems to be needed. Thanks for your feedback

It's finally there.

Lots of work and fixes have passed into this version, it was literally redone from scratch. No really, it was.

This version features full Materials compatibility, lots of fixes for it, fully functional alpha's, snapshots up to 16.384*16.384, Deferred Rendering underwater, fully functional Depth of Field underwater, optional Depth of Field while building to build with Depth of Field in mind and/or prepare the scene better for Depth of Field, Tone Mapping and Color Correction, fully functional Post Process Glow (again), the Animation Time Factor feature, the original Deferred shiny and lots more! For a more complete list of changes look at the changelog or the feature highlight list.

RLVa was removed in this process to ensure maximum compatibility until RLVa updates.

Nirans Viewer:


Dead. It's dead, leave it alone, it was planned to die as of yesterday, sadly it didn't. It works fine with SSA, i still consider it as dead as it doesn't support Materials and all the SSA fixes, it only supports about 1/8 of SSA. If you insist on using it, do so but i will prevent it from logging in soon.

And stop telling me but Nirans looks so much better graphics-wise. No it doesn't. I know it because i made that Viewer and i made Black Dragon, i know what both can do. You just don't know how to utilize it. Fact is even if i give you easy access to all the super finetuning options most of you run around in circles, crying because you don't know what to do, you then end up asking me how i do my snapshots. It's really not that hard to slap some nice graphics on a picture in SL with any Viewer.

Anyway.

R.I.P


Features:


Animation Time Factor
Enhanced Shadows
Enhanced SSAO
Fullbright toggle
Machinima Sidebar
Materials + enhanced Materials tools
Url tags
Underwater Deferred
Underwater Depth of Field




Snapshots:













Changelog:

2.3 Alpha (not complete)

Added: Small Icon button mode to Toolbars. Finally.
Added: Text Only button mode to Toolbars.
Added: MapChatRingColor Color to Colors.xml for our Chat Range Rings.
Added: Slow Motion Time Factor feature.
Added: Machinima Sidebar and toggle.
Added: All new LSL functions and keywords.
Added: Long missing background texture for the login.
Added: Anisotropic Filtering to DoF. Need a direct 1:1 comparison to tell the exact differences tho.
Added: Shadow calculation "optimizations", make them appear sharper to counter our high shadow blur debug, this way we keep shadows sharp but SSAO super smooth.
Added: Avatar counter to SIM name on World Map.
Added: Feature to prevent the Viewer from receiving any Fullbright information. (Fullbright toggle)
Added: Feature to load/save camera positions.
Added: Third Person Mouse Steering mode, toggable via "V" key.
Added: Missing Down Arrow icon.
Added: Missing start at: SIM-selection dropdown.
Added: Updated and added the new Nvidia GTX 700 series.
Added: URL types for RGB, bold, italic and underlined text.
Added/Changed: Autohide chat and hide on return, some little behavior finetunings, don't remove screenchat when we open chat and only autohide when history is closed.
Changed: Default FoV from 1.047 to 1.10.
Changed: Default Toolbar layout to my every day layout.
Changed: Chat Range Rings behavior, we now show shout and whisper range of our own Avatar and chat range of everyone.
Changed: Default Depth of Field settings to a Real Life camera inspired set.
Changed: Layout of CHUI a bit, realigned everything, removed lots of spaces and made it look less like a total clusterfuck.
Changed: Default Bandwidth to 10.000.
Changed: Force the Chat editors into single line mode.
Changed: Experimental Login background to my newest video.
Changed: LSL function color to match the dark script editor skin.
Changed: Moved the IM tabs to the right side and made some small finetuning changes. Might need some code adjustments for better resizing.
Changed: SSAO Render Algorythm, using Tofu's again.
Changed: SSAO and Shadow Debug defaults.
Changed: Shadow calculation changes for way more detail and way less pixelation, comes at its limits on super low sun position just like any other shadow calculation.
Changed: Viewer Icons, this time mostly correct, Viewer application needs to be renamed to anything else than the original to make everything apply correct.
Changed: Tone Mapping default offsets to prevent extreme darkness with the new Materials fixes.
Changed: Preview Texture layout, made it smaller and realigned everything.
Changed: Play sound previews as SFX sound instead of UI sound.
Changed: Reorganized the whole Face/Texture tab in build tools to show all 3 texture pickers at the same time, alot changes were needed and some bugs needed to be fixed which were happening because it was never intended to be able to see and use all 3 pickers at the same time. Needs some heavy cleanup and some optimizations maybe.
Changed: Debug names for Underwater rendering features.
Changed: Field of View max value to 200.
Changed: Allow wnderwater Depth of Field rendering.
Changed: Progressscreen progressbar style and layout.
Changed: Several layout and style tweaks for Outfits panel. WIP
Changed: Click to Walk off by default.
Changed: Terrain Texture Quality doubled by default.
Changed: Media autoplay disabled by default.
Changed: Wrong Debug descriptions.
Changed: AFK Timout to 0 (never) by default.
Changed: Channel to Black Dragon.
Changed: RenderGlowResolutionPow to 10 by default, make Viewer NOT change that ever.
Changed: Allow Snapshots up to 16.384 * 16384.
Changed: Zoom out/in steps are alot smaller now.
Changed: Default color of our own chat to white.
Fixed: Glow always breaking on first start, stabbing with a knife works. Always.
Fixed: If-logic problems causing DoF to not work right.
Fixed: Camera Field of View not returning to user set value after leaving water.
Fixed: Field of View option in Machinima Sidebar not working.
Fixed: All attachments going to the "Chin" attachment slot beeing broken and shown broken to everyone like they do for me for an unknown reason.
Fixed: Topbar background image for 1.0+ UI sizes and 1920x1080 or lower resolution combinations. UI size below 1.0 with 1920x1080 still bugs out, but wont fix until someone reports it as bug, i dont see the necessarity in adding another image for everyone of which 1% will ever see it if at all.
Fixed: Several overlapping widgets in german UI and aligned the whole build tools a bit, also cleaned up a bit. More cleanup will follow someday.
Fixed: Statusbar and/or its contents not hiding completely when in mouselook.
Fixed: Parcel Selection not uptading correctly when the same or another parcel was previously selected.
Fixed: Home Teleports via Home button showing the progress screen when we are already at home.
Fixed: Camera Spin via Alt + E/C not working correctly when sitting on an object.
Fixed: Open/Close double arrows appearing as grey untextured block.
Fixed: Diffuse color picker not beeing selectable.
Fixed: Texture Console layout.
Fixed: World Map layout, For Sale icon and People checkbox.
Fixed: Send IM menu callback with Compact History mode doesnt work.
Fixed: 180° Field of View for Depth of Field is our maximum at it totally blurs the whole screen. Also fixed a wrong initial value.
Removed: SH-1912 environment shiny completly until there is some way to seperate "shiny" and environment reflection.
Removed: "Press ESC to return to World view" label at the bottom when in Mouselook.

Monday, August 12, 2013

12. August Update

Today i worked some more on the Viewer burst wise, got some things fixed, no release planned however.

I added the new URL tags again allowing us to write in red, green, blue, bold, italic and underline again.


I added the save/load camera position feature again.

I changed the the Texture Preview floater layout, fixed it up and made it use less screen space =D


I changed sound previews to SFX sounds, muting the UI will now still play sounds when you play them locally.

I fixed the color picker for Diffuse textures.

I changed the layout of the Texture Console so it doesnt look all weird and overlapping anymore.

I finally came around to add the double arrow texture for the World Map/Snapshot floater and also fixed the World Map layout aswell as the "For Sale" icon.

I removed the "Press ESC to return to world view" label in Mouselook which is extremly annoying and totally destroys immersion...like a watermark...

That's it for today! Going to play some more Guild Wars 2.
Niran

Friday, August 9, 2013

8. August Update

What is Niran doing when he's not playing games?
He's beeing lazy ofcourse!

*shakes head*

Compared to yesterday's yesterday (7. August) this was a super productive day. For some strange reason i felt very good and wanted to implement lots of stuff... so i opened up my Nirans Viewer repository and went through everything, commit by commit to see what i havnt yet implemented... and implemented them on first sight... until.... SPELUNKY HD CAME OUT ON STEAM! Which i obviously had to play with my brother then. Sorry.

So what did i do?

First things first, i made the Topbar hide correctly and completely when we enter mouselook.

I fixed a parcel selection bug, whenever you tried to select another parcel while having one already selected there was a very high chance that the selection wouldn't update, which is annoying as hell as you have to close all About Land floaters and make sure nothing is selected before you select another parcel.

I fixed a little logic oversight that caused the progress screen to appear whenever you teleport home via "Quick Home Button" in the Topbar, basically our Home TP is a TP via landmark, TP's via landmark always cause a progress screen. Which means i have to fix landmark TP's in general too, maybe today.

I fixed a long standing bug that someone from Fluffy noticed long ago and told me about, rising or lowering your camera with E or C when sitting on an object caused strange movements or didnt work at all. Not anymore!

Then... i re-implemented this:


Avatar counter on the World Map just like in Nirans Viewer :P

Last but not least, Fullbrights. I re-implemented the Fullbright toggle, allowing you to prevent your Viewer from receiving any fullbright information resulting in no Fullbrights in your scene.. woooo!


Well, i guess that's it for the 8th of August.
Niran.

Thursday, August 8, 2013

7. August Update

Unproductive day.
very...
very...
very...
unproductive day.

The only change i did on 7. was basically swapping out the icons oft he LL Viewer for my own, took me some time to get it halfway right... and still it bugs. Everything is fine except when you start the Viewer it uses the default Windows "application" icon. Anyway... it's not important, time to do some more changes in other parts of the Viewer.

Niran.

Wednesday, August 7, 2013

6. August Update

I kept myself busy today with finetuning.
Not much, the outcome doesnt really make me happy.

I'll start some theoretical tech talk why i'm very limited here.


                                                    Warning: alot assumptions here!                                                   
As far as i've seen there are several ways to make shadows work, ofcourse one more performance eating than the other, most games seem to use a fixed, often very high resolution shadow map, how can they manage to have such nice shadows without totally overkilling your performance? Well... Second Life has no boundaries, our camera is free, the world is free, we can move and look whereever we want as close as we want, other games often don't allow such a huge amount of freedom for a reason... what if we were able to look very close at our shadows? at our textures? at everything? we would find out all the tricks and hacks developers use to make our games look good without killing your performance, one of these tricks is the shadow map, shadows can be a performance eater, especially if rendered in realtime... did you ever notice that Second Life renders all these in realtime? projected lights, realtime...sun shadows, realtime... games often use "baked" shadows or very very low resolution shadows for let's say interior scenes, shadows from the sun are baked into the textures or map and never change or move or do anything at all, only "projected" lights from light sources use realtime calculation because it saves alot performance. Second Life does everything other games possibly do as a pre-baked texture, in realtime resulting in a huge performance drop which is probably one of the many reasons Second Life doesnt currently allow more than 2 shadows from projected lights.

What else do games do different with shadows? well, the biggest shadow which in this case is the always, everywhere-existing sunshadow is often a pre-baked texture leaving alot memory und processing power for the other shadows, allowing them to be rendered at a way higher resolution.

Can't we just turn up the shadow resolution? we could, we have to, to counter pixelation caused by our high draw distance but that again will decrease performance drastically... but why do we have to turn up the resolution with higher draw distances? why does the draw distance decrease our shadow resolution at all? It doesn't!

Again, this is alot of assuming now, i don't know how it exactly works but i don't like the theoretical code stuff anyway, i go for what i really see and what i see is:

We have a shadow map. This shadow map has a given resolution, let's say the same resolution as our rendering resolution. 1920x1080. Imagine a prim with a 1920x1080 picture on it.


This 1920x1080 picture is our shadow map, we put it on a 1.920m x 1.080m prim, perfect size for this resolution, it's not too big and not too small, you can see all details and the picture is super sharp. This prim is our draw distance of 64m. What happens if we resize this prim to 2x size? right! the texture will (if we ticked the option for it) resize with it, our texture will become stretch over the new size of the prim, let's say 3.840m x 2.160m, double the size than before, but our picture is still only 1920x1080 resulting in it becoming "stretched" or pixelated on closer (or same zoom level) investigation. Same for our draw distance, if we pull our draw distance up to 128m our shadow map will still stay at 1920x1080 resolution but has to be layered on a surface that is twice as big as before, resulting in shadows becoming more pixelated. We could resize our prim (draw distance) to four, five, ten or twenty times its original size, our picture (shadow map) will always stay the same resolution but has to be layered on a surface becoming bigger and even bigger. Ever stood in front of a huge 64m flat surface that has a 1024x1024 texture on it? its SUPER blurry (pixelated) if you look at it from a normal angle and zoom level, to make it look good again you would need to zoom far out. Exactly the same is happening with out shadows.


Basically we would need to double the resolution of our shadows for each time we double our draw distance, that means 64m = 1.0x , 128m = 2.0x , 256m = 4.0x , where 2 times is often already the moment at which most GPU's will say fuck you and bail out or only produce single digit framerates even on low draw distances.

So what can we do? nothing. Absolutely nothing. I remember the shadows in Viewer 1 working the other way, where the shadow map resolution scaled (probably) exponential with your draw distance, resulting in them hardly changing their quality but decreasing framerate drastically with an alarming speed. Heres a picture to show you how that would basically look like, note that those textures are web-media faces and are snapshots i took, thats why they dont scale that good, you might not see it but the texture repeats vertically too.


I hope you understood at least a little bit of what i was trying to explain...
anyway, lemme know if i should implement a feature that automatically scales your shadow resolution with your draw distance in the future.

That's it for today!
Niran.

Tuesday, August 6, 2013

5. August Update

Time for calibrations.

I spend my day optimizing shadow calculation a bit for more optical fancyness, the results are pretty good, they fail on high draw distance and low sun position however, like any other shadow calculation i've seen so far.

Those changes include both smoothed sun shadows aswell as projected shadows from lights.




The original (left) obviously lacks some sharpness, additionally to its low resolution its also super blurry and this is a pretty small and tight (low FoV) light.

High resolution snapshots, low to mid draw distance and high shadow resolution snapshots will benefit the most from my changes, as you can see below.


First, this is the default shadow look with an already very low sun position but 64m draw distance and normal shadow and snapshot resolution.


Second, this is a snapshot with the shadow resolution set to 2.5x the changes are obvious, small detail shadows become more visible and ofcourse the shadow resolution increases by 2.5 times resulting in smoother shadows.


Third, this is a snapshot with the previous 2.5 shadow resolution and 4k snapshot resolution, the shadow quality speaks for itself i guess, super crisp shadows even on my mouth, this is what i consider high quality shadows. Most games have a way lower resolution for shadows than SL has, they just cant look at them from all angles, positions and zoom levels.


This is pretty much the finishing touch, i consider this overkill mode, shadows set to 4.0 times, and 4k resolution snapshot theoretically resulting in a ~16.000x10.000 resolution shadow map, thats just insane and it shows, even those small and thin hair prims clearly visible shadows and the shadow quality and smoothness is absolutely unmatched. Crysis & co would be proud of this level of detail.

One last note is that even tho my hat is positioned so close to my head and the sun is in a very low position, shadows of my hat don't cut off on my head like it is with LL shadows, sometimes even on default day preset.

If i ever get around to implement my promised "Overkill" mode, it will set everything to a similar if not higher level of the last snapshot. I swear to god this will make all GPU's burn in a hellfire, say goodbye to your 2 digit framerate.

Apart from that i removed SH-1912, again. I hate those extraordinary ugly environment reflections in dark places where no light can possibly fall logically creating such a reflection... it looks ugly and unnatural... much like fullbright does.

Depth of Field was also "enhanced" a bit, just a tiny bit. Probably not visible in these snapshots but DoF is generally less pixelated when using very very slight Depth of Field (when Depth of Field starts appearing as example).

Thats it!
Niran.

Monday, August 5, 2013

4. August Update

Yesterday i have been slowly working on finally enhancing the horrible default graphics again.

First of all i had to port Tofu's (Tofu Buzzard) better SSAO again which looked extremly overhelming at first because i was totally stressed and annoyed by a guy... after looking a few times it turned out to be an easy task, luckily i made a clean commit back when i started Black Dragon, that made everything alot easier. After porting his better SSAO i was finally able to use my own SSAO settings from Nirans Viewer again without making everything look like a black mist-y mess. I'm not quite happy with it, it could be a little bit smoother still but that could be just my imagination or me not beeing used to a way stronger SSAO.

I also fixed all my "chin" attachments going crazily off and beeing centered on my skull, literally breaking all my chin attachments like jaws of nearly all my avatars... not sure what caused it but everyone was able to see my jaw beeing attached in the center of my skull which isn't actually one of the funniest things i've seen in SL so far.

That's it.
Niran.

Sunday, August 4, 2013

3. August Update

Yesterday.

Not very much happened, nothing much of interest for you users but alot for me basically.

On wednesday i opened OPEN-196/STORM-1960, in hope i could bring in some large scale visual optimizing of LL's current XUI/XML files. Sort, align and generally clean them up, make use of all the new fancies of the V2 User Interface everywhere where possible and therefor take a huge load fuckups and just throw them into the trashbin so we can finally forget about them and get a well organized User Interface, at least internal in XML. Nothing you would probably ever see but a clean XML file also means it's easier to read, faster to edit and most important, it's easier to understand for new people, which would have been a chance for many new modders to take a look into these files and start modding, creating new User Interfaces or Skins.

That was the plan... until...
Oz Linden wrote a comment - 02/Aug/13 5:56 AM 
Ok... slow way down. I said this in email to Niran, but it didn't take, so I'll say it again here:
We are absolutely not going to do large scale reformatting of XUI now. Period.
Well. Guess that's it for the big part of this project. Again the one guy who slung me into the jira creating process, is the chosen one who decides to pretty much kill this whole project. Thanks Oz. I think i just havn't explained my project enough beforehand otherwise you wouldn't have told me to open a Jira ticket for it just to "kill it" shortly after.

Oz named a few issues why this isn't going to happen anytime soon but his issues are issues that will exist forever, basically saying that this part of the project (which is the biggest part and basically the part that made me start all this) is never going to happen. I think those issues are just trivial, they are issues we only have to fix once but again my project was probably just planned way too large, sorry but i can't get happy with things like "oh change this X to Y for religious reasons..." things. I want to enhance Second Life where i can, where my few available skills become really usefull, where i am in my nearly unbeatable element.... but let's not get into that again.

So what did i actually change? Only 2 things, one because so many people wanted it and it was so easy to implement (even a total noob could do it in basically every Viewer).


It doesnt need words, doesnt it?

Other than that i implemented (during my livestream) the Animation Time Factor feature which i introduced over a year ago in Nirans Viewer.



It allows you to customize the playback speed of an animation, even negative values are possible making your animations play backwards! I used that feature here for example:


That's it for today :/ havn't done anything else.

Niran.