And note- Known New Issue:
* Sky Mesh Detail can show stripes in the sky (play with Sky Detail to fix)
Howdy all. As promised, I’d like to cover the second of three important points with this posting- AESTHETICS (aka textures are too bright, avatars look smelly, etc.) – First let’s get that pesky bugs fixed list out of the way…
* Get the WindLight lighting calculations to NOT wash everything out!
* Make pop-up more data driven and change to style of alert used in 1.18.6
* WindLight: Fails to load shaders under NVIDIA beta 169.xx
* Snapshots in windowed mode are fuzzy
* On Linux without Atmospheric Shaders, horizon at night is still bright
* Hide Particles options fails to function.
So, on to the main event. You’ll notice that the first bug fixed above is Get the WindLight lighting calculations to NOT wash everything out! This has been a big one since the beginning and I’d always promised we’d be fixing it. But the way we fixed it and our general approaches are very important to understanding aesthetics, lighting, and rendering in Second Life- now and into the future.
Gamma was the core problem behind many of the midday presets/problems before. By default, I had set many of the presets to around 1.6 Gamma. They should have been 1.0. When we first developed WindLight (pre-Linden) we had set up most of the scenes at around 2.0. It worked for certain desert and empty terrain scenes, but we ourselves had experienced some washout once we started integrating more game engine-type assets into the system. We never went back to gamma because we had bigger visual fish to fry, but at the core we were overbrightening our textures. Hmph.
So, for starters, I went back and re-did most of the presets at 1.0, which is where I’d advise most of you play with your presets. But, this exposed another glaring problem- our ambient range was wayyy too low. Once we looked at the code, we realized that the 0-1.0 scale for Sun/moon light was always getting 3X applied to it before hitting the shaders, whereas the ambient was not. Translation? 1.0 for Ambient was actually only 33% of 1.0 for Sun/moon light. Once we fixed this, we found the ranges were much more natural, and we can now do fullbright scenes with ease (for example, try setting Sun/moon color to zero, and Ambient to 1.0. It looks fullbright. Before, it would have still looked very dark.)
So I bumped down the gamma, and raised the ambient to get the same relative luminosity (read: brightness) values back, but without so much contrasting/loss in the textures. (see Gamma if you want to know more.) Together with this, though, I felt we needed more range in Blue Horizon and Blue Density, so BigPapi Linden bumped those ranges up 2X as well (so Blue Horizon of 0.6 is now 0.3, etc.) So all you preset makers, take note- Ambient values are now 3X as strong, use 1.0 Gamma to preserve textures, and Blue Horizon and Density values are now 2X as strong.
Presets, Textures, and Avatars
So, what does all this technical mumbo jumbo mean for what matters (Textures and Avatars)? The saga continues…
As we ripped apart the old rendering code, we discovered something heinous, something conspiratorially wicked- avatars are bright! Like, super bright! In the old rendering code, avatars were given an artificial brightness boost compared to their surroundings. This was great for the relatively flat world that was the Second Life of old. But as we were implementing real, directional, and atmospheric lighting, this was giving us all sorts of problems. Because avatar brightness had always been artificially much higher than the surroundings, avatar textures and skins were at their base much darker than their surroundings. So when we started implementing a real light model without special treatment for anything (like avatars) in the scene, the lighting balances were always whacked. As one example, I did some tests with the standard caucasian male model avatar. Do you know his skin has the same luminosity by default as the dark green grass textures? Once I boosted his skin brightness, the shadows looked much more natural for that skin tone. Try this experiment on your own avatars!
That said, after doing all the Gamma adjustments listed above, I went back and tweaked the midday/default settings to be much friendlier on textures and avatar shadows. You’ll find the lighting is much more balanced and close to the values you liked in the old viewer. Shadows are much less harsh, etc. BUT…
Two things- 1) it is impossible to get the exact same brightness balance between avies and their surroundings as the old viewer for the reason just mentioned. Super bright avies would mean a stark white world. If you’re not satisfied, just boost some of the brightness in your avies and you’ll get it just where you want it. 2) Textures. Okay, this is a big one. I did a lot of flat-face-against-the-sun testing. Meaning, I’d set up a cube, set the time to noon, and load textures onto its upper surface. I think it now behaves much closer to acceptable levels, but still brightens just the right amount to “feel” sunny. Most textures get boosted about 20% in brightness at the sun’s apex (noon), which is much less than before. We could have made it such that at their brightest, textures were only as bright as their native RGB values. But welcome back to flat 1997 lighting 🙂 Yes, this means near-white textures like very bright cement will become white at noon.. But COME ON! It’s what’s supposed to happen to bright materials in direct sunlight. We have to start moving away from the flat shaded look. Now, if you really disagree and want to do some tests, just load up “Default” or “A-12PM” (they’re the same setting) and lower Sun/Moon Color to 0.2 or thereabouts. You’ll probably agree it starts to look like an overcast day. All in all I think the current settings now respect old content but have some of the flair that this new lighting model lends.
Sunrise….. Sunset…. and Nighttime
Is this the little pixel I rendered?…..Is this the vertex I transformed?… (sorry, had to 🙂 ). So, as there were some complaints about these times of day, I took a look at them as well, and here’s what I found-
Nighttime– I did A/B testing with the old viewer and all our brightness values seemed the same. But as there was some concern, I lowered the overall brightness for most of the nighttime settings and hopefully it’ll be good now.
Sunrise/Sunset– So here’s what I think. I really like our current sunset (A-6:00pm). It’s dark. It’s fiery. It’s dramatic. IT’S FREAKIN SUNSET! I don’t know why you’d want more bright ambient when the sun is setting- I mean, it has to cross over to nighttime at some point (?) Meaning nearly all the ambient illumination of the day is going to go away, and I don’t know where else it should really happen, especially since there is a good bit of ambient illumination well past dusk. BUT, as I am one and you are many, if it’s really an issue I’ll boost the ambient here for the next release. But realize- it’s postponing the inevitable- the sun and the daytime have to go away- either at 6:00pm or 7:00pm or 8:00pm. This ain’t Greenland people! (Well, once we make WL tradeable assets, you can make it so!) Re: sunrise, I capitulated and gave it more ambient- it now looks nicer and happier as it ushers in the new day 🙂 . But if you want more, I would ask you this- when should the light emerge? It can’t be 12pm at 4am in the morning! Sunsets and sunrises are darker times, people. Darker times! 😉
All joke aside, we’re obviously looking forward to keeping this the blog to comment on for these issues. It’s been a long time coming, you now know what we’re considering internally, and we look forward to hearing your thoughts on the new presets and all of these aesthetic issues!
Light away! (and oh yeah, links)…..
- See the full list of open WindLight bugs.
- See the big list of fixed WindLight bugs!
- Issue tracking/reporting
Come to WindLight office hours! These are at:
- Brampton Linden Stage: 106/166/25
- Tuesdays 8:00am – 9:00am PDT (ongoing)
- Thursdays 1:00pm- 2:00pm PDT (ongoing)
If you miss a session, transcripts are posted here.
Below you’ll find links to important info related to WindLight:
Pastrami Linden and the WindLight Team