Sunday, December 18, 2022

Fediverse/Mastadon

 A while back I created a Fediverse account. What's that? You might know it as Mastodon, the less musky alternative to Twitter.

 Seeing as how the musky boy is now banning links to other social sites, I'm just going to link my Fediverse page right here.

https://snowdin.town/PennyPatton

Tuesday, March 9, 2021

Applying EEP to Your Parcel

Here's a quick tutorial on applying EEP settings to your land parcel in Second Life.

First, open up your inventory and scroll down to the "Settings" folder, if you've created your own settings, or received settings from another SL resident.

If you want to use one of LL's default settings, scroll down to the Library and open the "Environments" folder.

Next, open your Land information panel (World > Land Options > About Land) and go to the "Environments" tab at the very end.


Now, let's say you want to have the default mainland day cycle at ground level, always midday at 1000m up, and a custom sky setting at 2000m up.

To set the default day cycle at ground level do the following:

In your inventory window scroll down to the Environments folder inside the Library folder. Go to Days and look for "Default".

Click and drag the "Default" day setting to where it says (region environment) next to Ground. This will change every sky setting for the entire parcel to use the Default day cycle. Always remember that whenever you apply a setting to one of the parcel heights, it will affect the heights above it.

Next we'll apply our default midday setting to 1000m and up. Still in the Library's "Environments" folder, close the "Days" folder and open the "Skies" folder. Scroll down until you find "A-12PM", this is the noon setting for the default Linden day cycle. Click and drag this to where it now says (Default) next to Sky 2 1000m. Now this midday setting will be applied to 1000m and above, but Ground will still have the full default day cycle.

 Again, the newly applied setting will affect both the sky level you apply it to, and all sky levels above. So when applying a new setting to a parcel height, you will have to re-apply your settings to the heights above that. This is why we started with the ground level and work our way up.

 Finally, let's apply a custom sky we created to 2000m and up. Close the Library folder and in your Inventory folder look for "Settings", there you will find all of the environment settings you've either created yourself or received from other residents. (If you've purchased settings off the Marketplace, or received a box or folder of settings from another resident, you will need to find the folder containing those settings.)

In this example we're going to apply the setting "Anime Moon". Click and drag your custom setting over to where it now says (A-12PM) next to Sky 3 2000m. This will apply your custom sky setting to everything 2000m and up. Again, the settings you've applied below that will remain unaffected.

 And that is how you apply custom settings to the different environment heights on a parcel.

Friday, August 16, 2019

Pixel Factory Debut!

After a long, long hiatus I am relaunching my Second Life store as Pixel Factory. I've retired all of my pre-mesh content except for my free shape set and camera HUD.

 The first brand new items are these four hair styles, designed for anime type Second Life avatars!




Each hair style is only L$150, comes in rigged and unrigged versions, including a colour HUD as well as full perm textures and UV guide for modders! You can purchase them from the Pixel Factory marketplace store now!

Wednesday, July 31, 2019

Blender for Beginners

Do you want to create content for Second Life but have never touched a CG modelling program in your life? Are you an SL pro, but have absolutely no experience beyond making content for SL? In either case I highly recommend the Blender Guru channel on YouTube. He does fantastic tutorials. He doesn't waste your time, but neither does he go so fast that you feel rushed. He doesn't skip steps and he's good about repeating tips to get you used to them rather than assuming you remember everything perfectly the first time you hear it. And he breaks everything up into bite sized lessons that never drag on too long.

Give the tutorials a try for yourself:

The beginner tutorial start here:



The intermediate tutorial start here:

Even if you've been making content for SL and consider yourself a pro, I do recommend you check out at least the intermediate tutorial. Making content for SL there are some important aspects to CG modelling that you're not likely to be exposed to, such as proper UV unwrapping.

If you believe you know all there is to modelling, at the very least I'd encourage SL users to check out this part of the tutorial, dealing with UV unwrapping:



I hope all of this helps and happy SLing!

Monday, July 29, 2019

The Best Building Tip Nobody Knows!

Use skyboxes for building interiors! 



Turn doors and other entrances into teleporters so people can enter and exit. This frees you up from the constraints of the environment and also makes sims less laggy by moving a lot of content out of rendering distance!

For example, if you have a house at ground level, make the door into a teleporter that takes people to a skybox 400-500m up! You'll see a huge FPS increase doing this because your computer will be rendering far less at once. And since you can build up to about 4000m up, you can space out your interior skyboxes. So if you have an enormous interior area you can split it into sections, spaced out to keep framerates high.

 And if you use an Experience key on your land, you can make it so people can just walk into the doors and be instantly teleported to the skybox, for a relatively seamless experience.

 If you have limited prim space you can also use this trick with a holodeck style rezzer system so building interiors are only rezzed when you're using them! This way you have virtually infinite prim space.

Textures and Lag



A lot of people never consider the correlation between textures and lag. Fact of the matter is, most of SL's performance issues are due to texture bloat. Videogames rarely use textures larger than 512x512, games like Crysis and Skyrim are often using 128x256 textures on surfaces SL users leap straight to 1024x1024 to texture!

Gamers know those 4K HD texture mods come at a big performance hit if your machine doesn't have enough memory to handle it, and even games running those mods are typically rendering a fraction of the amount of textures Second Life throws at your videocard.

 Many attachments, such as hair, even have 512x512 or 1024x1024 store logos plastered on a hidden root prim you never see, that texture is still eating up VRAM and SL only uses 512MB of VRAM for textures before your framerates start to crawl.

 A good rule of thumb is that unless a surface is 10x10m or larger, you should use a texture smaller than 512x512 and avatar attachments almost never need textures larger than 256x256 unless they're full body mesh.

 There's never a reason to texture hidden surfaces and you should always try to combine textures and use the entire texture map where possible.

Texture responsibly and happy SLing!

Tips for a Larger, More Detailed and Less Expensive Second Life!

Sadly the sim is gone, but this entire city fit into 1/4th of a sim. Including the trees and hills in the distance. All of the buildings are 1=1 scale instead of 2-3 times larger like most people in SL build. When you build smaller, the amount of space you have to work with is larger!

  • Larger mesh objects use both more space and more Land Impact. If you pay $300/mo for a sim but you scale everything up way too big (which most people do) you're essentially throwing away $225 every month because if you scaled everything down closer to 1=1 you'd be able to fit 4x more content in your sim.
  • Size is relative. If you make your avatar larger, everything around you appears to shrink. Make your avatar smaller and everything around you appears larger.
  • Animations can work with small size differences, but not large size differences. Take a dozen average adults and you'll get less than a foot difference in height compared to SL where the average adult human avatar is anywhere from 5' to 8' tall. This is why your animations & furniture rarely work well.
A bunch of furniture at typical SL sizes. My 5'7"(6' in those shoes) avatar for scale.
The same furniture reduced to 1=1 scale. The prim floor is to show how much space is saved.

Here's a more detailed article about scale in SL if you want to read more.
https://tinyurl.com/yan4thme

Happy SLing!

Sunday, July 28, 2019

Tips for a Better SL Avatar!

Here are some tips to help you avoid common proportion mistakes and create a more attractive avatar!
One of the older starter avatars. The original is on the left. On the right is my altered version. The only things I changed were the shape and the skin, but what a difference that makes!

  • Most avatars are HUGE but due to the slider limits it's easier to make an attractive human shape if you stick between 5' to 6'4".
  • Measure your head w/ a prim then see how many "heads" tall you are! Should be 7.5 to 8 heads. More means your head is too small!
  • Groin should be at half your body hight. 
  • Hips are roughly as wide as chest. 
  • Arm "wingspan" is about equal body height.


Here are free shapes to use as a better starting point:
http://tinyurl.com/pbyqktg
Here's a detailed look at proportions, shape making and the appearance editor:
http://tinyurl.com/3rq5uxq

On the left is the default shape that comes with the Aesthetic avatar. On the right is a shape made using the proportions guide linked above. You can see that it looks less goofy and a lot more human!

 If you're using a giant beast avatar (minotaurs, werewolves, trolls) reduce the size to about 7 to 8' to make it compatible with most furniture and animations even with human sized partners.

 It's generally a good idea to keep your draw weight as low as possible. "Draw weight" or "ARC" isn't a perfect means of knowing what avatars are difficult to render, since it doesn't account for everything that results in a laggy avatar, so basically a low ARC doesn't always mean your avatar isn't laggy, but if your ARC is high then that is definitely bad.

Tips for a Better SL Experience

Here are just a few tips that can help make SL more enjoyable!


Better Camera Settings!

Tired of the SL camera sitting several metres above your head? Feel like you're actually right there in the world with these alternate camera settings!

https://tinyurl.com/h7qhoft

Minimize Your Lag and Framerate Problems!

Try to keep your draw distance under 128m! Higher draw distance lowers framerates and increases lag!

Keep your Object Detail at or below 3. Some people who sell content will tell you to go into your debug settings and set Object Detail far higher than it's supposed to be able to go. They do this because they're trying to sell you broken content without proper LOD models.

Try to keep your avatar texture use under 100MB (100,000KB). You can check how much VRAM your avatar is using through the object inspect panel in the Firestorm viewer.  Select all of your attachments then open the inspect panel. The VRAM use will be listed in KB. Even 100MB is a lot, but SL content creators tend to use lots of large textures, even when they shouldn't. So 100MB is a more realistic goal.

Don't be shy! Be social!

Talk to people! Don't be discouraged if they don't reply! They're likely busy or AFK, not ignoring you.

If you're IMing a stranger to say hi, try saying a bit more. Introduce yourself and let them know why you're messaging them. You'll get more responses that way.

Join Groups and say hi in group chat to meet new people that way! This is a way more effective way of meeting new people than sending an instant message to a stranger.

I hope these tips help! Happy SLing!

~ Penny Patton

Sunday, July 7, 2019

Unoptimized Content is a Huge Problem, But How Can LL Fix it Now?

Like clockwork, whenever the problem of unoptimized content in Second Life is brought up, there will be people saying "There's nothing to be done for it now! Changing the rules will break too much existing content!" If you've never heard any potential solutions it's easy to see why someone would come to this conclusion, but is it an accurate assessment of the situation? Not entirely, and I'll explain why.

 If Linden Lab haphazardly released "new rules" for content tomorrow, such as a hard cap on avatar complexity or a complete change in the way Land Impact is calculated, there would be chaos. Almost all existing SL content would be returned and people would find they could not wear most of their favourite avatar accessories. This is the "Content Apocalypse" most people conclude will happen if LL makes any attempt to reign in unoptimized content so late in the game, but this assumes LL rushes in blinded and with a heavy hand. The fact is, LL could take a more nuanced and long term approach to the problem.

 Up until mesh importing was introduced to Second Life, object complexity for environments was kept in check with "prim limits". Every object was made of prims. Each prim counted towards land's "prim limit" Make a chair out of 10 prims, it counts as 10 prims towards that land's "prim limit". But there were three problems. First, not all prims were created equally. A torus uses far more polygons than a cube, for example. The second problem was that textures were not taken into consideration. Textures play a huge part in rendering performance and prim limits ignored this entirely. The third problem came with the introduction of mesh, because mesh could not be calculated this way. You could create a highly detailed, high poly mesh object and it would only be one object. It wouldn't do to have it count as only one "prim".

 So Linden Lab introduced "new rules", "Land Impact". Now the complexity and size of an object would determine it's land cost. Existing prim content was unaffected. If you build a 10 prim chair today, it will still only cost 10 prims. It is only when you link prim objects to mesh that the "new rules" will be applied to the whole link set. This is why linking prim objects to mesh can result in an increase or decrease in the "Land Impact" cost of said prims.

 To further push the change from "prims" to "land impact" all new features released after mesh would use the "new rules." Keyframe animations were introduced around the same time as mesh, shortly after I believe. You could use this to create much more believable elevators and moving platforms in SL. But, if you built an elevator out of prims and applied a script using keyframe animation features, the prim elevator would use the "new rules", land impact instead of prims. The same was true with materials and pathfinding and any other new feature. If you wanted to enjoy the newest features SL had to offer, you would have to use the "new rules". And over time more and more new features and new content using those features appeared, after only a few years almost the entire grid had adapted to using Land Impact instead of prim limits.

 You probably see where I am going with this. LL could introduce "new rules" to content creation yet again, using the same approach. Let's use animesh as our example starting point. Animesh already calculates LI differently than existing mesh content, and if you link a static mesh object to an animesh object it will change how it's LI is calculated.

Animesh can also be worn, it would not be a stretch to make it so if you want to wear animesh you have to adapt to a hard cap on avatar rendering impact. It could work much like land impact already does. In order to be effective avatar rendering impact would have to take texture use and polygon use into better consideration than ARC currently does. Avatar rendering impact would also need to be universal, not different viewer to viewer like ARC currently is.

Legacy content would be preserved in that to revert back to the "old rules" you would simply need to detach any content using new features like animesh. People could continue using their old, laggy content as much as they liked, but over time the draw to adapt to the "new rules" would get stronger as more and more features were released. In fact, I'd argue that retroactively applying this change to animesh now would still be feasible. Animesh is new enough and rare enough that most content would remain unaffected. There'd be grumbling, sure, but it would be a drop in the bucket and quickly pass.

"But that would just mean people would refuse to adopt new features!" This is the argument some make. It's rubbish. You only need to glance around SL to see how many people have refused to adopt mesh, materials, etc to see the folly of this argument. People like new features. As long as those features add to the SL experience, people are willing to make the compromise. And the more such features add up, the stronger the case for adapting becomes. The fewer the holdouts remain.

To be clear, this approach would not solve SL's performance woes overnight. This approach takes the long view. Preserving legacy content and allowing the userbase to adapt to the "new rules" at their own pace. It would likely be 3-5 years before we finally saw widespread improvement, and that's perfectly fine.

 LL can afford to take the long view. SL isn't going anywhere.

Sunday, June 23, 2019

Just How Much Does Unoptimized Content Affect You?

I often talk about the need to optimize content in Second Life, and frequently I find people underestimate just how much that would improve SL for everyone. People seem to think that because SL is so old it must just have a badly aged engine and optimizing content would only improve things a little.

 They are mistaken.

Here is the reality:

If your computer was made in the last 10 years and includes a videocard, you should be able to run SL at around the max settings, never experience texture thrashing (when textures in SL are constantly going blurry), never experience stuttering (when SL freezes up for a moment), and if you have a reasonably decent net connection then everything in Second Life should load lightning fast.

 Second Life should look this good for you at all times:



And I'm not just talking you, by yourself, in a sim that looks as good as these screenshots, I'm saying you should be able to hang out in a sim with that level of detail, surrounded by about a dozen friends, and still keep your framerate around 30 FPS, if not better.

 That's with deferred rendering, depth of field, shadows, and all the shiny features turned on.



If you have a computer made within the last 10 years that includes a videocard, what would today be a low to mid range videocard it doesn't matter, and that is not what Second Life is like for you, it is 100% the fault of unoptimized content.

 Here are the specs for the computer all of the above screenshots were taken on:


  • Operating System: Windows 7 Ultimate 64-bit
  • Processor: Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz (8 CPUs), ~3.4GHz
  • System Memory: 12GB RAM
  • Card name: NVIDIA GeForce GTX 960
  • Video Memory: 4GB RAM

In sims I made myself, or the handful of other locations in SL created by people who put in the same amount of effort to optimize their work, that is my SL experience. In terms of graphics, SL runs like a dream on my 10 year old computer.

If you have a computer with equal or better specs than this, and Second Life does not look like this for you ALL THE TIME, with no "visual lag" whatsoever, no long rez times at all, no blurry textures or any other graphical issues, all with 30-60FPS or better, then compare what you do experience to this because that is how much you, personally, are being affected by unoptimized content.

What about people running on much less powerful computers?

What about people running SL on laptops or other computers with no dedicated graphics card?

For some reason, a lot of people seem to draw the crazy conclusion that optimizing content won't help people running SL on a toaster. I shouldn't have to point this out, it really should be obvious to anyone, that the less powerful your computer, the more you are affected by unoptimized content.

So, I tested each of those sims on a Microsoft Surface Book from 2015. The version without the optional graphics card, so it's running Intel onboard graphics.

At low graphics settings I got a comfortable 30-40fps in all of the pictured sims. No texture thrashing. The only stuttering I noticed was when scenes were still loading, which did not take long even on a wireless connection.

I was able to turn on everything short of deferred rendering (Advanced Lighting Model) and my fps still remained in the 20's. Turning on deferred caused my FPS to tank down to 8fps.But I was still able to run SL with shiny, glow, bump mapping, local lighting, everything short of deferred rendering at a comfortable 20fps. No texture thrashing. No stuttering except during the (very brief) times it took each sim to load.

 I had a Toshiba Portege from 2007 that I used before the Surface Book. I actually kept SL installed on that laptop because it actually ran SL better than the Surface. If I can find the power cord and spare batteries, maybe next I'll dust that off and give SL a go, but I think I've made my point.

 If SL content creators put in the minimal effort to optimize their work, everyone would be enjoying the substantial benefits. That is a hard fact.

Aren't you expecting too much from hobbyist creators?


No. Full stop. If you're asking that question I can only assume you are not a content creator. Optimizing content is easy. Extremely easy. Anyone who has the skills necessary to create content in the first place already knows enough that optimizing their content would be simple for them. It adds a couple extra steps, and may cause a project to take a little bit longer to finish, but it won't be difficult for them at all.

Here's my guide for creating your own LOD models so you can have fantastic looking content with a low Land Impact cost, without telling people to murder their framerates by forcing everything to full LOD by cranking object detail way up.

Here's my guide featuring a few simple optimization tricks anyone can do, regardless of your skill level.

If you're a content creator who already has a basic grasp of Blender, here are a couple of guide series I highly recommend you check out. They will teach you all you need to know to create better, more optimized models.

For Beginnings: The Donut Tutorial!

For Intermediate Blender Users: The Anvil Tutorial!

The Donut Tutorial gives a brief introduction to UV unwrapping, but the Anvil Tutorial goes in-depth on how you can create models with no wasted texture memory. You want to fit all the details you can onto as few texture maps as possible. Always.

Both tutorials are super easy to follow, Blender Guru doesn't skip or gloss over important steps, but he also doesn't drag things out, so the tutorials move along at a quick, but not too quick, pace. I highly recommend them to anyone creating mesh content for Second Life.

Optimization Benefits Everyone

In short, everyone would benefit if content creators optimized their work. You would. I would. All of the content creators would. There is literally no downside. We'd all get higher framerates. Most of us would be able to run SL at higher graphics settings and still get higher framerates than we do now. Stuttering and texture thrashing would be a thing of the past.

 Linden Lab would benefit probably the most, because it would be a lot easier for them to draw many new Second Life users into the fold. And that would mean healthy growth, and LL would be able to afford to put even more resources into making SL even better for everyone.

Monday, June 17, 2019

Why Anticipated Second Life Features Go Unused Once Released

Linden Lab as a usability problem.

They cater Second Life towards a general audience of hobbyists, but then make the tools more difficult to figure out than similar tools found in programs aimed at professionals. For a good example of this, let's compare creating an NPC in Bethesda's creation engine compared to creating an Animesh NPC in Second Life.

 To create an NPC in Skyrim or Fallout 4, you open up the creation kit and you're met with an interface like this:



From this interface you can easily and quickly set up the NPC's skin, bodytype and other physical features. You can assign them to a specific cell in the game, choose the actions they can use, the equipment they're carrying, create dialog trees, their voice type and much more. Once all that is set up, all through the simple interface pictured above, adding the NPC to the world is as simple as click and drag. You've finished setting up an NPC that will wander around, interact with furniture, has all their animations, audio clips, everything.

 This is a tool used by professionals, and serious hobbyists, and yet to do the same thing in Second Life takes substantially more work. To keep things simple, let's focus on just one aspect, creating your NPC's appearance. Now, as of this writing, you are unable to change the appearance of an animesh NPC. Shape support is coming, and apparently soon, but to apply a shape to an NPC you will need to write a script. That's right, no sliders, no preview, just you and a text editor. You need to apply the script. Height, bodyfat, head size, arm length, hand size, each of these is a line of code in the script you'll have to write.

 Imagine for a moment you were making a character for a videogame, the character you're playing, one that gives you a lot of freedom with regards to your character's appearance. You'd get something like one of these interfaces:


Imagine if in any of these games, instead of the appearance editor you were met with this:



No appearance editor. No sliders. No preview so you could see your changes in real time. Just a text window in which you would have to use C++ or some other script language to write a program to determine your character's appearance. How far do you think you'd get?

THAT is what Second Life expects of you, when you want to create an NPC. According to the lead developer on this project, there are no plans to ever provide an interface. They expect it to all be done via script, and they think that's good enough.

 I don't mean to single them out, it's not a decision they should be in a position to make. The problem is that Linden Lab has plenty of programmers, but no designers. At least not when it comes to developing SL and its tool set. That is why it's not just this one feature. Everything in Second Life is this overly complicated. Want to apply an animated texture to the face of an object? You write a script to do that. Want to have a boat sail around in a circle? Get ready to write some code! Want to make a chair people can sit on? You need to write a program that will play the animation, and position the sitting avatar with the correct position and rotation.

 It is because of this complete lack of end user accessibility that many of Second Life's features go entirely ignored. Years ago we got the ability to create paths for objects to move around, as well as behaviour patterns and interactions, but you'll probably never see anyone in SL using these features. If you tried, you'd likely find it easier to boot up Unity and make your own videogame.

 This is Second Life's usability gap, and it has consistently been one of SL's biggest obstacles to success.

 Look, Linden Lab. Ebbe. If on the off chance this blog ever catches your eye, you need to hire some design people. I'm not talking programmers, you have plenty of those and I'm not disparaging their talents, but what you need to compliment those programmers are people who understand what the end users need to actually make use of Second Life's features and tools. People who can communicate those needs to the programmers. People who can write a design doc, then work with the programmers to make it a reality.

 Maybe you already have people like that but don't put them in a position where their expertise makes a difference. Maybe you don't and you need to look elsewhere to bring that kind of experience and talent to the table. Whatever the case, until you recognize your company's blind spots and hire the right people to shine light on SL's real problems, you won't be able to substantially turn around SL's decline, and you won't be able to create a next generation platform that people will actually embrace. You'll just keep tripping over the same problems Linden Lab has been blindly stumbling over for decades.

Thursday, September 20, 2018

Feature: Visual Size Display in Appearance Editor

One of my very first posts was about avatar size. It's an issue that's been around since the beginning of Second Life.

 After a discussion with Vir Linden at today's Content Creation group meeting, I've submitted a Jira requesting a new feature for the SL appearance editor.

(Everything below just recaps everything already in the Jira.)

 I submitted a Jira in 2011 pointing out that the height currently displayed in LL's viewer is incorrect. Like, not even close to your avatar's actual height. Unfortunately, there are some problems to consider here:

  • Deformers and attachments can alter an avatar's size in ways the viewer and server cannot account for.
  • SL's own broken existing system for checking an avatar's size is tied to too many other features to be fixed this late in the game.


So rather than fixing the inaccurate height currently display, why don't we just get rid of it entirely and use a visual scale. An inworld overlay just like the object editor uses.

Put height information right there, next to the avatar.
This completely circumvents the issues that make fixing AgentSize impossible, and it works for all avatars, even those who use attachments and deformers to alter their avatar's size.

But why even worry about this?


It's a visual design issue. 

When creating any content in Second Life, from a house to your own avatar, it helps to have this information in front of you otherwise you end up with visual inconsistencies that negatively impact how good Second Life looks and how you interact with your environment.

It is also a content creation issue.

 Nearly all content creators use their own avatar as their sole point of reference for scale when creating content. This is true whether you're talking animations or houses. This can result in houses where the windows are way above the average avatar's heads, or staircases where each step comes up to their knees. Or animations created for specific avatar sizes but incorrectly labeled when sold due to the existing confusion.

We see problems like the above every day in Second Life. Fixing this now would lead to generally better consistency for new content going forward.

Monday, September 17, 2018

Optimization Tutorial: Creating Your Own LOD Models!

Creating Your Own SL LOD Models

_____________________________

Before we begin, this is not a "how to learn Blender" tutorial. You should already have a basic grasp of Blender to get the most out of this tutorial. If you're looking to learn how to use Blender, there are many of those tutorials online which already cover that topic better than I ever could! If you're a Blender Beginner, or someone who has never even touched Blender before, then I recommend "Blender for Beginners" by Blender Guru. It's a super friendly, super easy to follow tutorial that will have you creating your own mesh content in no time!
_____________________________

A lot of SL users are worried that if Linden Lab ever attempted to reign in unoptimized content, it might push content creators away. So beginning today I want to start showing  you just how easy optimization is. The first thing we're going to look at is creating your own LOD models using this milk can model I created.


What is LOD?


 "LOD" stands for "Level Of Detail", it's a trick game engines use to reduce the rendering load by swapping out your close up, high detail models, with increasingly lower poly models the further away the object is.

Bonus Tip: Smaller items transition to their lower LOD states over shorter distances than larger items, which is why mesh uses less Land Impact when you shrink it! Smaller objects are easier to render!

 Of course, in Second Life LL provides the option to let the mesh uploader automatically generate LOD models Unfortunately it's not very good at this, leading people to try and use their highest detail model for High, Medium and sometimes even Low detail settings, while sacrificing Low and Lowest to offset the LI increase. The results are not pretty, worse yet content creators often tell customers to increase their object detail to compensate for the poor LOD of their creations.

At Medium detail, the uploader generated model is already falling apart!

No Second Life user should ever need to set their Object Detail up higher than 2.5-2.75. When you tell others to increase their object detail to see your work properly, you've done something wrong and you're basically telling them to sacrifice their FPS to cover for it.

 But this does not mean you're stuck with awful pre-generated LOD models, or forced to increase the Land Impact cost of your content! SL also gives you the option to upload your own LOD models!

Nearly half the triangles and it still looks great!
 Done well, no one will even notice the transition between detail levels! Here's my milk can at every Level of Detail!


It more or less holds it's shape until the lowest LOD when it becomes a box. And that's fine because at Low and Lowest levels the milk can will be far enough away that you shouldn't notice that it's beginning to lose it's shape.

 And if you're wondering, the Land Impact cost of the milk can is 0.5, meaning you can link two together and it will still only be 1 LI.

Creating Your Own LOD Models


How much extra work is it to create your own LOD models over letting the mesh uploader generate them for you? Not nearly as much as you might think. Let's hop over to Blender to see how it's done!

1. I started here, with my full detail model.


2. In Edit mode I make sure no vertices are selected to start. Then, holding down the Alt Button I begin selecting vertices down a line, until Blender selects the full line of vertices I want. Blender can be finnicky, and it might take several tries before the row you want is selected. Just keep holding Alt and clicking on vertices along the row you want.


I decided to start vertically, the blue line shows the vertical row of vertices I've selected. This row of vertices is called an "Edge Loop".

3. Now I press the X Key to bring up this menu shown below.


See at the bottom where it says Edge Loop? That's what we want. (Dissolve Edges can also work, but sometimes leaves stray vertices behind.)

4. Selecting Edge Loop removes the entire row of vertices but leaves the model itself intact. (As opposed to deleting triangles or vertices, which would have left an enormous hole down the side of our model.)


5. I did this all the way around the model until I'd deleted half of the edge loops. Then I did the same to the two small side handles. This effectively cut the triangle count of the model in half while retaining the overall shape.


 That gave me my Medium LOD model. As a rule of thumb, you generally want each LOD level to be about half of the one before it. That's not a hard rule, of course. Use your judgement.

 You can do horizontal Edge Loops, too! Which is how I reduced the can further for my Low LOD model.

Hold Alt, select vertices until the row you want is selected, then hit X to bring up the delete menu.
Delete the edge loop to simplify the model.
Again, use your judgement! This is what separates you from the automated LOD generator. Where can you remove details that won't be noticeable at that distance? Again, keep in mind that larger objects will retain their higher LOD levels over greater distances. It may even take a little trial and error before you get the hang of it, but once you do then creating your own LOD models won't take long at all! It only took me minutes to create the LOD models for this milk can.

Physics Bonus!


As an extra benefit to handling LOD this way, when setting up the physics for your mesh object you can use one of your LOD models as the physics box, which can result in a yet lower Land Impact cost than using Mesh Uploader model generator.

 And there you go. That is all there is to creating your own LOD models for Second Life. Now get out there and start creating content that doesn't fall apart the moment someone moves a few feet away from it!

Thursday, August 23, 2018

Simple Performance Tricks Anyone Can Do When Building

Two Three Simple Tips to Increase FPS and Reduce Lag in a Sim.


A lot of the tips I give on building and optimization can get a bit technical but I wanted to share two simple tricks anyone with even the most basic modding skills can do to make a sim where people can enjoy higher framerates and less lag.

1. Turn all alpha textures from "blended" to "masked".


Use ctrl+alt+t to reveal all objects in a scene with alpha textures. As long as you have Advanced Lighting Model (Aka: ALM or Deferred Rendering) enabled, "blended" alpha textures show up red, "masked" alpha textures show up blue. If you have ALM off, all alpha textures just show up red, which makes it harder to tell masked from blended at a glance, but you can still use this trick. (It's just a little more work!)


As you can see in this example, even a lot of the solid building walls with no windows or anything have an unused alpha channel and it was left in blended mode. Blended is a big strain on rendering, simply getting rid of all of the blended alpha, save a few water and light effects, will result in a noticeable FPS increase on most computers. Plus, most of the texture glitches people experience in SL, from weird lighting behaviour to the infamous "alpha sorting bug" are all due to blended alpha. Get rid of the blended alpha and you get rid of the bugs.

How do you do this? Simply edit the object, selecting the appropriate faces if necessary, and in the Texture tab change "Alpha Blending" to "Alpha Masking".


This will turn your texture completely solid, but don't panic, all you need to do is change the "Mask Cutoff" from 0 to 100, then increase or decrease the cutoff value until the texture looks how you like it. For most textures like those in the example, you can usually just leave it at 100, it's only those with feathered edges where you may need to mess with the cutoff value to get the best result.


2. Put building interiors into skyboxes.

Often, most of the detail in a sim is in the building interiors. Whether you're talking castles, office buildings, or people's homes.


Do you really need to see all of that from the sidewalk? Move it to a skybox placed well out of draw distance and you've greatly reduced the amount of content your visitors need to render all at once.

How do people get inside the building?

 Simply put a teleporter inside the door. If you have a premium account you can create a sim experience so that people can open a door and walk right in to instantly, almost seamlessly, transition to the building interior. Don't have access to an experience? The "Anywhere Door" from Curio Obscura is a popular alternative predating experiences.

You can find lots of building facades on the marketplace, too. From fantasy to urban to sci-fi. They're often very light on Land Impact. Otherwise you can use the buildings you have now, simply set the windows from blended to "no alpha" and instead make them shiny and reflective. Using skyboxes for building interiors also makes building a sim a lot easier, as you're no longer constrained by the ground level landscape, or even the exterior size and shape of your building. This allows you to be a lot more creative.

And, of course, there's room for exceptions. The rare foyer or small building that is open to the outside world can remain and you've still managed to move most of the sim's content out of draw distance, making your sim load and render much faster.

Does putting interiors into skyboxes mean I need to rez two copies of every building?

Not necessarily. Here are two ways I approach it:


  • Use a faux exterior building (a building with no insides), these are usually very light on LI. Then I build the skybox independent of the exterior. Either from scratch or using skyboxes I find on the marketplace. Sometimes I use multiple skyboxes and link them via door teleporters.
  • Use a building constructed so that you can basically take it apart. Some buildings will let you remove a significant amount of exterior/interior, allowing you to rez a ground version and a skybox version of the same building at a reduced LI cost.
The first option is easier, I think, so I'd suggest that to most people. But the latter option allows you to utilize buildings you may already have.


Some of us want to be able to see our neighbors, landscape, roads, etc when we look outside our windows!

Fair enough. The reality is nothing is free, you pay not only with your framerates, but the framerates of everyone around you. So keep that in mind. However, this does not mean you can never enjoy a good landscape view from inside your home!

You can have a foyer or even a room with an exterior deck that are at ground level, with the rest of the building interior in skyboxes. And certain types of buildings you may want entirely on ground level (like a small gas station or coffee shop with indoor and outdoor seating). The idea is that the majority of the sim's building interiors are separated to their own skyboxes so that the sim as a whole is easier to load and render.

For those skybox interiors I sometimes just turn the interior windows solid and apply a glow to suggest lighting coming in from outside. (Projected lights from one direction of windows can add a lot of ambience to a room!) Other times I create a tiny window diorama, which can be as simple as a screenshot applied to a curved face (like the inside of half a hollow cylinder) that extends past the window enough that you can't see the edges from inside, or as detailed as a surrounding landscape object around the skybox and set it up to look similar to the actual surroundings, just simplified and often using forced perspective tricks.

 Penny! Bad builder cow! You forgot a super easy tip!

I did, I'm sorry! Here's one more!

3. Set Physics to "None" on objects that don't need physics!


 Ok, so a good build needs physics, otherwise your visitors will fall through the floor! But not everything in a build needs physics!


Here's a great example! A shelf full of decorative beverage bottles in a club/bar scene. The shelf itself is physical, so you can't walk through it, but the bottles on the shelves have physics set to "None" to save sim resources. This means the sim has to do fewer physics calculations. Where it's most helpful is items on the floor/ground. Tiny stones, small plants, a stray pizza box or pile of clothing, set objects like these to have no physics and you'll see less lag in your sim.*

 *If you're sharing a sim with others your mileage may vary. I have a mainland spot, too, and I know how bad things can get if your neighbors aren't aware of how their resource use is affecting everyone else in the sim! But this kind of lag reduction has to start somewhere! Do it with your own builds and share the tips from this article with others!

 Keep in mind, these suggestions aren't hard rules you must follow at all times, just guidelines to help make a sim better for yourself and everyone else who lives in, or visits the sim.

The important thing, as always, is to have fun. Happy building, everyone!





Tuesday, January 30, 2018

Smaller Doors Anyone Can Fit Through

Or How to Enjoy the Benefits of Building to Scale Without Making it Impossible for Others to Explore Your Creation!


A lot of people tell me that they want to scale their builds down, but feel that if they do larger avatars will not be able to fit through doors in their sims. This is a very valid concern, but one with several very simple solutions.

 Before we get into the solutions, first remember that you can only resize a building that is either modifiable or includes a resize script (most no-mod houses do not, at the time of this writing, include a resize script). So your safest bet is to avoid buying no-mod.

If you build mesh houses/buildings yourself I'll say right away that the best solution is to leave the wall over the door phantom. Bam! Done! You've made a building that is more accessible to all sorts of SL users and a bit easier to rescale to better suite for your customers purposes.

 For those of you who have purchased your buildings and need solutions to the small door problem, read on!

The Physics Solution

Here is a mesh house I've shrunk down to about 1=1 scale. For reference, my avatar is 6'1" and the door frame is about a foot and a half or two feet taller.


So how is an 8-9' tall avatar going to fit inside that? EASILY!

 First you need to find out how the physics for your structure are done. Many mesh buildings use a shell of some sort, separate from the mesh model. Not all structures do this.

 If your building has no separate physics box, a quick solution is to see if the wall over the door is a separate mesh item you can simply set phantom. Even if it's connected to the wall on either side of the door you can set it all to phantom and put two invisible prims in its place.

 If the building is a single structure that can't be separated you may have to set the whole thing phantom and build the physics with prims, I'll explain that a bit more later.

In the meantime, let's reveal the physics prims for this house!


The prim physics boxes are blue! Notice how there's no prim covering the wall above the door! That wall is completely phantom so avatars of any size can fit. All of the interior doors for the house are the same! Leave that space blank and you have doors anyone can squeeze through.

 So what if your structure doesn't use prims for the physics? Set the building phantom and build a physics shell out of prims like I did for this house! If you also set the house itself to "no-physics" you can often reduce it's land impact considerably! The root object of a linkset must have physics so you may have to link the house to a prim first, set the whole structure to "no-physics" then set the prim itself to "convex hull" for minimum land impact.

 Remember to set the physics prims to "convex hull" to reduce their own land impact. After you've done all this you can often link the no-physics house to the convex hull prim shell for even more of a land impact reduction. The entire house in this example is 21 land impact.

Teleporter Solution 1

 Another solution to the small doors problem is to place a teleporter above the door! Just rez a prim above the door frame, where the physics for the wall over the door begins, like so.


 And one for the opposite side of the door as well.


Then you simply make the prims invisible and put a teleporter script inside each.

 If you want this to be completely seamless you'll need an Experience Key. This way when an avatar collides with the prim they will automatically be teleported to the other side of the door frame. They may not even notice the teleport.

 If you do not have access to an Experience, you can put a script inside the prim which informs the avatar colliding that they need to click above the door to "duck". Setting the prim to "sit when touched" and an old fashioned sit teleporter script will then be enough to achieve the effect.

 Success! A door anyone can pass through!

Teleporter Solution 2

 There is an alternate way to use teleporters to create doors anyone can pass through. That is to make the entire doorway itself a teleporter!

 I like to put building interiors into skyboxes (reduces lag, increases framerates, and gives me more freedom in building) and the entrances/exits for these skyboxes are teleporters disguised as doors.



 You can script your own or use a an existing door teleporter like Curio Obscura's "Anywhere Door".

 The "Anywhere Door" is a sit teleporter. You click the door to open, then click the open doorway to be teleported to the door's destination.

 My own sims now use an Experience based teleporter for a more seamless experience. You click on the door to open it and then simply walk into the open doorway to be teleported.

 And there you have it! Three solutions to the problem of doors being too small for giant sized avatars! I hope these examples help you out in your own sim building adventures, if you have any questions, leave them in the comments below!