Jump to content

Tweaking my skybox prior to renting for the first time :)


You are about to reply to a thread that has been inactive for 2287 days.

Please take a moment to consider if this thread is worth bumping.

Recommended Posts

I'm working on reducing the LI of my favourite skybox (C and M permissions) and have some questions. I've already reduced the LI from 68 down to 36 by linking *everything* and changing the physics shape type to convex hull. And I can still get in and out through the door!

However, before I repeat this on a new copy....many of the large walls and ceilings are made up of three or more sections, for no reason I can guess at (although it's been handy for trying 'feature wall' ideas while texturing the interior). Is there any practical reason why I shouldn't delete two out of three sections of a wall and simply adjust the size and shape of the remaining one to fill the gap?

Next: the skybox originally came with a script for changing the texture of the 3 large windows via a menu which pops up every time I click anywhere in the skybox (which gets pretty annoying!). I can remove the script, but it means sticking with just one window texture choice. Is there a way to keep the script but not have it somehow linked to every other part of the skybox? Would it be possible to have the menu only pop up when I specifically click a window? Maybe with the 3 windows linked as one object and the rest of the skybox linked as another?

I have the texture menu script from the skybox content in a folder in my inventory, if that helps.

And back to convex hull conversion:

Is it better to:
- unlink everything, convert each prim to convex hull, and then relink?
- unlink, select everything in one go, and convert to convex hull?
- select the whole linkset as is and convert?

Thanks in anticipation of any advice :)

Link to comment
Share on other sites

I'll leave it to one of the builders to address the various questions about convex hull vs prim.  As far as the scripting is concerned, though, be very careful. The fact that the menu pops up whenever you click anywhere tells me that the script is in the root prim.  If you wanted it to operate only on a single child prim, you'd either have to put it in that prim or write it to react only to clicks on that prim.  Unless you have mod perms on the script, it's impossible to tell how it will behave if you move it. In  fact, even relinking things might mess up the script, unless it knows to adapt to the new link numbers. The bottom line is that unless you can modify that script, you are probably better off replacing it with a new script that does what you want, rather than playing with that one.

  • Like 1
Link to comment
Share on other sites

2 hours ago, Rolig Loon said:

As far as the scripting is concerned, though, be very careful.

Noted.

I'll double-check next time I'm inworld, but I'm fairly certain even the script and textures are copy+mod, just like the skybox itself. It might take a but of trial and error, but at least I can rez a copy of a recent edit of the box to try a few permutations.

I'm not sure which would be more annoying: not being able to get it to work, or getting it to work without knowing why... O.o

Link to comment
Share on other sites

4 hours ago, LexxiXhan said:

I'm working on reducing the LI of my favourite skybox (C and M permissions) and have some questions. I've already reduced the LI from 68 down to 36 by linking *everything* and changing the physics shape type to convex hull. And I can still get in and out through the door!

There's nothing strange about that. Changing the physics shape to convex hull will close any holes there may be in a single prim but each prim is treated separately. That means, if the wall with the doorway, made from a single hollowed out prim like this:

5a5581f5e2b38_Skjermbilde(883).png.b085cd535da055a0dbfce6af6a079c65.png

changing to convex hull will close the gap.

But if it's made from three separate prims, like this:

5a55822379086_Skjermbilde(884).png.af9cbb8ca18a9a7a23571864f13372fb.png

each prim will have its own hull and none of them will extend into the door opening.

 

4 hours ago, LexxiXhan said:

many of the large walls and ceilings are made up of three or more sections, for no reason I can guess at (although it's been handy for trying 'feature wall' ideas while texturing the interior).

It's an old build then. The maximum size for a prim used to be 10 m so if you wanted to make something bigger than that, you had to use several of them. Really skilled builders with good attention to detail, often used this limitation to their advantage adding subtle nuances in the texturing between the prims (the floors of Crazy Mole's Nautlius houses are prime examples of this) but most didn't bother of course and usually you won't losoe anything by replacing with bigger modern prims. However, as Rolig said, any changes you make to the linking order and number of prims in the linkset may affect the window script. You better watch out for that.

 

4 hours ago, LexxiXhan said:

Is it better to:

- unlink everything, convert each prim to convex hull, and then relink?
- unlink, select everything in one go, and convert to convex hull?
- select the whole linkset as is and convert?

The result will be exactly the same so unlinking is just an unecessary bother.

Edited by ChinRey
Link to comment
Share on other sites

18 hours ago, ChinRey said:

It's an old build then. The maximum size for a prim used to be 10 m

Aha! Yes, from 2009 or so, apparently. As packaged it's linked as one object with a LI of 65. Just editing the roof (7 prims) down to 2 prims (roof plus skylight) reduces the LI to 50, and there are still plenty of multi-prim walls and internal floor levels and dividers to tinker with yet..

In the meantime I got it down to 25 LI with convex hulling so I'm pretty optimistic I can still make it a lot more efficient...

18 hours ago, ChinRey said:

But if it's made from three separate prims, like this:

5a55822379086_Skjermbilde(884).png.af9cbb8ca18a9a7a23571864f13372fb.png

each prim will have its own hull and none of them will extend into the door opening.

Thank you for explaining that (and the pics!) =)

And yes, the doorway consists of separate prims on four sides, which will still be pretty logical and efficient once I've finished with prim-reduction.

18 hours ago, ChinRey said:

Really skilled builders with good attention to detail, often used this limitation to their advantage adding subtle nuances in the texturing between the prims (the floors of Crazy Mole's Nautlius houses are prime examples of this)

By coincidence, I was experimenting with the Nautilus houses and convex hulling a couple of days ago and got to experience not being able to enter through the door in the process :D Now that I know about the 10m limitation I might have another play with them sometime to see what is or isn't possible in reducing LI - those houses are huge..!

 

19 hours ago, ChinRey said:

The result will be exactly the same so unlinking is just an unecessary bother.

Oh, that's a relief. Interestingly, unlinking and relinking had a curious effect on the scripted door: by design it slides open sideways as if retracting into the adjacent wall prim, but after relinking it started sliding open outwards, like this:

5a569531ba960_SlideyWrongdoor_001.thumb.png.7c57c76e63ee205dcb3b3a4d0a99acd7.png

Unlinking it from the rest of the linkset returns it to normal operation. Oddly though, I have textured versions of this skybox where I've also unlinked/relinked and this has never happened before...O.o

Link to comment
Share on other sites

19 hours ago, ChinRey said:

However, as Rolig said, any changes you make to the linking order and number of prims in the linkset may affect the window script. You better watch out for that.

Yup, having experimented with this earlier today, I can confirm it's a complete pain in the [insert preferred bento bone position].

I could possibly spend time figuring out and editing the script (I know enough to write 'if' statements etc in Java, but that's about it..), but it looks like it'll be quicker, and less painful, to start from scratch with the Texture Change Menu scripts I have in my inventory :S

Link to comment
Share on other sites

3 minutes ago, Rolig Loon said:

That's a pretty common thing to have happen, and usually quite easy to fix. It's just a matter of changing one rotation (but of course knowing which one and how to change it).

It's not just me then :D

In the meantime, that (original) roof-prim with the skylight is taking up all my attention...(will comment when I know what I want to say O.o)

Link to comment
Share on other sites

On 09/01/2018 at 11:42 PM, Rolig Loon said:

The bottom line is that unless you can modify that script, you are probably better off replacing it with a new script that does what you want, rather than playing with that one.

That was just on the tip of my brain-tongue..

Link to comment
Share on other sites

So, this prim:

5a56aa0f80987_thatprim_001.thumb.png.6d73377ca716fe2ed4bec0800efc7020.png

  • is where the window Texture Change Menu Script turned out to be!
  • is the one I'd like to use for the whole roof after deleting the others. I'm happy to reposition the hollow based on percentages.
  • has a hollow in it for the skylight, which I'd like to reinstate after resizing of both the prim and the hollow..
  • has a hollow in it in which I'd like to insert the skylight prim, despite the align tool not being accomodating to a perfect fit...
  • has a hollow with a need to be filled with a skylight prim that I may have to 'align' manually and makes me wish there was a 'make new prim from hollow' button, or somesuch...
Link to comment
Share on other sites

5 hours ago, LexxiXhan said:

In the meantime I got it down to 25 LI with convex hulling so I'm pretty optimistic I can still make it a lot more efficient...

The maximum LI reduction you can achieve with the convex hull trick is 50% but you don't always get that much and sometimes you may even end up increasing the LI.

Maybe a short explanation of what happens is in place:

Convex hulling a linkset does not necessarily change anything about how the build behaves or looks. Most of the basic prims (the torus is the only exception) and many of the common twisted prim shapes are already convex hulls to start with so there isn't anything to change.

What convex hulling mainly does, is change the way the land impact is calculated. When LL introduced mesh, they finally realized that the old prim count system where each part of a linkset counts as one LI no matter how simple or complex it is, simply wouldn't work anymore. In the new system, each part has a minimum weight of only 0.5 but there may be weight added if a part has a particularly complex visual and/or physics shape and also a little bit if it is scripted. They couldn't apply that new system to old linksets though since it would break a lot of old content (some twisted prims may have land impacts in the thousands according to the new system). Their solution was to have double accounting: a "heritage" linkset that could have been made before the new LI system, is calculated according to the old formula, a linkset that includes features introduced with the new system or later, is calculated according to the new formula. Any "modern" feature that didn't exist before the change, will trigger the switch. Not just convex hulls but also the other new physcs shape (physics shape none), alpha masking, alpha emissive masking, normal maps, specular maps, some script functions... the list goes on and on. You don't actually have to change the whole linkset to convex hull btw, one prim is enough.

If you want to optimize the build not only for nominal land impact but also for the best possible performance, what you can do, is:

  • Make sure the root of the linkset is a prim that can't be phantom and doesn't have a very complex shape
  • Change the entire linkset to convex hull
  • Change the entire linkset again - this time to physics shape none
  • Select each prim that actually needs a physics shape one by one and change them back to convex hull or - if necessary - all the way back to prim.

That is a relatively straight forward way to reduce the actual physics weight of a linkset down to the absolute minimum.

If you want to take it even further some things you can do are:

  • Replace several smaller prims with single bigger ones (that will usually reduce the land impact too, of course)
  • Add a tiny bit of taper to untwisted cubes wherever possible (0.01 is enough and it doesn't matter if it's x or y taper)
  • Change the textures of all hidden prim faces to the default transparent and then change the alpha mode to masking and set cutoff to whatever you like as long as it's not 0.
  • Change alpha mode to masking wherever possible
  • Change faces with rouge alphas to alpha mode none (or even better, replace those faulty textures with corrected ones)
  • Get rid of all superfluous textures
  • Replace high resolution textures with lower resolution alternatives
  • Replace any sculpt maps with the wrong resolution with corrected ones
  • Strengthen the LoD of sculpt maps wherever necessary and possible
  • Remove superfluous scripts
  • Replace old inefficient scripts with modern optimized ones
  • Replace dodgy meshes with well made optimized ones
  • Replace sculpt maps containing lots of "wasted" vertices with low vertice ones.
  • If you know how to do make optimized mesh (99.9% of SL's mesh makers don't), convert prims and sculpts to mesh. If you don't know how to optimize mesh, you're better off leaving them as prims and/or sculpts.

Some of these steps are only for fairly advanced builders/scripters of course - there may be less than a hundred people in SL who are qualitifed to do that final step properly (and even fewer who have even heard of the next to last step). But anybody with even mdoerate content creation skills should be able to achieve significant performance boosts by doing the things they can do.

 

5 hours ago, LexxiXhan said:

By coincidence, I was experimenting with the Nautilus houses and convex hulling a couple of days ago and got to experience not being able to enter through the door in the process :D Now that I know about the 10m limitation I might have another play with them sometime to see what is or isn't possible in reducing LI - those houses are huge..!

Oh yes, they are lovely but high prim. The Moles have always been a bit careless about the prim count (sorry, Rolig) ;)

I've had a go at those myself. I got no. 2 down from 228 to 106 and the render weight down from 19,864 to 15,062. It's possible to take it a little bit further, at least if you are willing to accept a few barely noticeable changes to the looks, but I don't think I'm going to spend more time on it. The other houses I've only convex hulled. i may give them a proper cleanup to some day but probably not.

 

5 hours ago, LexxiXhan said:

Unlinking it from the rest of the linkset returns it to normal operation. Oddly though, I have textured versions of this skybox where I've also unlinked/relinked and this has never happened before...

Scripts - especially old ones - that work on entire linksets tend to identify the parts by numbers. If the linking order is changed, anything can happen. As for the door moving in the wrong direction, old linkable door scripts depend on the rotation of the root prim and if that changes, you get some rather ... unconvetional ... results. There is a function to set the rotation/movement direction of a child prim independetly of the root now but it's a fairly recent addition to lsl.

 

4 hours ago, LexxiXhan said:

 

  • has a hollow with a need to be filled with a skylight prim that I may have to 'align' manually and makes me wish there was a 'make new prim from hollow' button, or somesuch...

 

It's not that difficult! The position and rotation of the "frame" and "filler" prims should be the same (unless you actually want a slight offset) and you probably want the filler to be a fraction bigger than the hole anyway so no need for 100% precise measurements.

The easy way to do it:

  • Copy.drag the frame prim
  • Type Ctrl+Z to snap it back into place
  • Close the hole, resize and retexture

If you want a precise fit, use the build window's math function. If for example the hole is 80%, add *0.8 at the end of values of the x and y dimensions of the filler prim.

Edited by ChinRey
  • Like 1
  • Thanks 1
Link to comment
Share on other sites

18 hours ago, Rolig Loon said:

If you want to replace that sliding door script, try this one from the LSL Scripting Library >>>

I would write it slightly differently today than I did in 2011, but that version still works fine.

Oh, thank you! i haven't even dared look at the scripting forums before...

Link to comment
Share on other sites

15 hours ago, ChinRey said:

Maybe a short explanation of what happens is in place:

Convex hulling a linkset does not necessarily change anything about how the build behaves or looks. Most of the basic prims (the torus is the only exception) and many of the common twisted prim shapes are already convex hulls to start with so there isn't anything to change.

What convex hulling mainly does, is change the way the land impact is calculated. When LL introduced mesh, they finally realized that the old prim count system where each part of a linkset counts as one LI no matter how simple or complex it is, simply wouldn't work anymore. In the new system, each part has a minimum weight of only 0.5 but there may be weight added if a part has a particularly complex visual and/or physics shape and also a little bit if it is scripted. They couldn't apply that new system to old linksets though since it would break a lot of old content (some twisted prims may have land impacts in the thousands according to the new system). Their solution was to have double accounting: a "heritage" linkset that could have been made before the new LI system, is calculated according to the old formula, a linkset that includes features introduced with the new system or later, is calculated according to the new formula. Any "modern" feature that didn't exist before the change, will trigger the switch. Not just convex hulls but also the other new physcs shape (physics shape none), alpha masking, alpha emissive masking, normal maps, specular maps, some script functions... the list goes on and on. You don't actually have to change the whole linkset to convex hull btw, one prim is enough.

Thanks for the explanation!

And this, below, makes a brilliant homework list for me to get stuck into :D

15 hours ago, ChinRey said:

If you want to optimize the build not only for nominal land impact but also for the best possible performance, what you can do, is:

  • Make sure the root of the linkset is a prim that can't be phantom and doesn't have a very complex shape
  • Change the entire linkset to convex hull
  • Change the entire linkset again - this time to physics shape none
  • Select each prim that actually needs a physics shape one by one and change them back to convex hull or - if necessary - all the way back to prim.

That is a relatively straight forward way to reduce the actual physics weight of a linkset down to the absolute minimum.

If you want to take it even further some things you can do are:

  • Replace several smaller prims with single bigger ones (that will usually reduce the land impact too, of course)
  • Add a tiny bit of taper to untwisted cubes wherever possible (0.01 is enough and it doesn't matter if it's x or y taper)
  • Change the textures of all hidden prim faces to the default transparent and then change the alpha mode to masking and set cutoff to whatever you like as long as it's not 0.
  • Change alpha mode to masking wherever possible
  • Change faces with rouge alphas to alpha mode none (or even better, replace those faulty textures with corrected ones)
  • Get rid of all superfluous textures
  • Replace high resolution textures with lower resolution alternatives
  • Replace any sculpt maps with the wrong resolution with corrected ones
  • Strengthen the LoD of sculpt maps wherever necessary and possible
  • Remove superfluous scripts
  • Replace old inefficient scripts with modern optimized ones
  • Replace dodgy meshes with well made optimized ones
  • Replace sculpt maps containing lots of "wasted" vertices with low vertice ones.
  • If you know how to do make optimized mesh (99.9% of SL's mesh makers don't), convert prims and sculpts to mesh. If you don't know how to optimize mesh, you're better off leaving them as prims and/or sculpts.

I reckon I'd score between 7 and 13 out of 18 if this was a test!

I'll start with the things I know how to do, figure out some I haven't tried yet, and maybe start new threads on a couple of others if I feel the need..!

Link to comment
Share on other sites

15 hours ago, ChinRey said:
19 hours ago, LexxiXhan said:
  • has a hollow with a need to be filled with a skylight prim that I may have to 'align' manually and makes me wish there was a 'make new prim from hollow' button, or somesuch...

 

It's not that difficult! The position and rotation of the "frame" and "filler" prims should be the same (unless you actually want a slight offset) and you probably want the filler to be a fraction bigger than the hole anyway so no need for 100% precise measurements.

The easy way to do it:

  • Copy.drag the frame prim
  • Type Ctrl+Z to snap it back into place
  • Close the hole, resize and retexture

If you want a precise fit, use the build window's math function. If for example the hole is 80%, add *0.8 at the end of values of the x and y dimensions of the filler prim.

And this what I'll be tackling next time I have a tweaking session. I already tested replacing the roof with just the frame prim. I used stretch though, which seemed to work fine, and resized the hollow to a different percentage. But I'll look into using copy.drag/snapping back into place..

Link to comment
Share on other sites

Just an update:

So far, I've:

  • Reduced unnecessary prims from 65 to 43.
  • Added taper to everything I can.
  • Set hidden prim faces to transparent.
  • Rotated the root prim so the door opens the right way.

There's still plenty ChinRey's optimising list I can explore, and I'll be replacing the window script, retexturing the whole thing from scratch...

...but for now, the Land Impact (originally 65) is down to 22, probably as low as it's going to get. Not quite as low as the LI of 3 in the skybox I made from scratch, but that doesn't have multiple levels/floors, a balcony, windows, stairs, a door etc. =)

  • Like 1
Link to comment
Share on other sites

Another update:

I've spent today on:

  • adjusting dimensions and tapers, aligning everything prim by prim, tweaking, stretching, checking, double checking, getting rid of gaps and glitches between faces/prims (especially outer corners!), checking again, doing sums, keeping a changelog notecard..
  • nailing the roof and skylight (size and align roof, copy dimensions to skylight, align skylight with roof, set roof hollow to 44%, add '*0.44' to skylight dimensions, lower skylight into position, final checks)!

The current version is tighter than a gnat's chuff! :D

Link to comment
Share on other sites

next steps:

  • - slightly widen root prim and add a tiny stretch upwards to encase wall glitches.
  • - replace window script inc. adding own textures (match resolution).
  • - *Retexture back edges of balcony walls now that I've created a slight overhang.
  • - start re-texturing exterior and interior.
  • - add furniture/layout ideas

Consider future re-design ideas: a ground floor door? etc...

Link to comment
Share on other sites

11 hours ago, LexxiXhan said:

next steps:

  • - slightly widen root prim and add a tiny stretch upwards to encase wall glitches.
  • - replace window script inc. adding own textures (match resolution).
  • - *Retexture back edges of balcony walls now that I've created a slight overhang.
  • - start re-texturing exterior and interior.
  • - add furniture/layout ideas

Consider future re-design ideas: a ground floor door? etc...

You're really giving that skybox a thorough overhaul. :)

It seems you've moved beyond sheer optimization and onto customisation now and then ti's really very much up to you how you want it to look.

  • Like 1
Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 2287 days.

Please take a moment to consider if this thread is worth bumping.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...