SLife Hacks: Smart Textures

Yesterday I posted a tutorial from Torley Linden about how to get texture info, and I had a feeling my friend Serendipidy Haven might have more to say on this subject. I was right! I checked my email later and found she’d submitted a guest article for us.

Not too long ago Seren redid the entire club of a place we go with friends each week. She reduced the prim count to hardly anything, and optimized all of the textures for less lag. She did a great job, and I started to pay more attention to the size of textures after that. Today, Seren has some texture tips for us or “hacks” as she calls them. If you want to start building, here’s some good things to know!

 

SLife Hacks: Smart Textures
by Serendipidy Haven

texturehacksserenShauna recently posted a Torley Linden video tutorial giving you the lowdown on how to grab texture information using the viewer’s built-in functions. It’s a great tip for getting to the bottom of why some textures take an age to load, and although it won’t speed them up, it can stop you from falling into the trap of trying to refresh a texture that’s taking an age to show up; forcing the viewer to reload it is just going to make it take even longer!

However, virtual beauty is not just in the eye of the beholder… when it comes to your own creations – that scale model of the Taj Mahal you’re constructing, or your latest range of furry thigh-high wellies – you’re going to want to ensure that those textures are going to rez quickly and not leave everyone thinking you have a weird fixation with battleship grey! Nobody wants to be a resource hog, right? So here’s some sneaky tips for keeping on top of those troublesome textures:

  • ​Like Torley explained – bigger is not always better. Think of a 1024×1024 texture as being 4K Ultra HD – that’s way beyond what most people want or can handle – 512×512 is a good compromise, with plenty of detail for covering large areas and a reasonable load time for the vast majority of people.
  • Tailor your textures to your surfaces. If you’re texturing a strand of hair, a tiny texture is fine – ever wondered why you’re favourite hairstyle plunges you into lag hell, even after deleting the scripts? It’s probably because every single strand has been given a 512×512 texture, and your poor graphics card is trying to render masses of them in real time. If you’re making regular repeating shapes – signs, paving slabs or tiles – try 128×128, it makes a big difference.
  • Textures don’t have to be square – as long as you stick to the normal ratios (64:128:256:512), you’ll be fine. So, for example, if you’re making a rectangular neon sign, use a rectangular texture – 256 long by 128 high. It’s also easier to visualise what the end result will look like, rather than trying to squish a square texture into a rectangle.
  • And, most important of all: Make those textures work for you! You can fit four 256×256 images on a single 512×512 texture – your graphics card only has to load one texture to render all 4 images, it’ll be quicker, and you’ll save yourself L$30 uploading! Once uploaded, use ‘texture offset’ in the build floater to isolate the image you want. Why stop there? You can fit even more, smaller, images onto a single texture and there’s absolutely no reason why you shouldn’t – I’ve managed to texture a whole building, inside and out, using just a couple of textures in this way. Everyone wins!

Articles You Should Read

4 Comments

  1. If you upload a rectangular texture , you will be given the option of uploading it with lossless compression (it’s a little box you tick). If you do this , your texture will look normal again when you put it on a rectangular prim.

    1. An interesting twist on this, (well, I think it’s interesting, anyway!), is that the very mechanism which allows SL to cater for lossless textures is also a major contributor to textures loading slowly.

      SL converts uploaded textures into JPEG2000 format – a largely ignored filetype that was designed to, but never did, replace JPEG. JPEG2000 isn’t strictly lossless but it’s way better than JPEG, and it doesn’t come with the massive file sizes we associate with lossless bitmaps. The other big advantage is that it allows progressive decoding, so images can be opened before they’ve fully loaded – not possible with JPEG, and we’ve all seen what happens to a standard JPEG when some of the file data is missing… An image that becomes a mess of colour and a chunk of grey nothingness is hardly a desirable thing!

      The process is rather clever: JPEG2000 compresses images into tiny file sizes and SL then reverses the process, uncompressing those uploaded images to produce 24 or 32 bit textures inworld, this allows fast uploads and the ability to manipulate textures with little in the way of loss in quality, as you’ve mentioned. However, there is a price to pay – it’s a pretty complex process and it requires significantly more graphics processing power than a standard JPEG image, which in turn results in – you guessed it – increased rez time, up to a third slower than a similar JPEG would rez.

      Clever stuff!

      s. x

  2. Hey Seren. You got a comment on Facebook from IsisRea Diavolo. She makes really great grunge textures. I asked her if I could post her comment here and she said ok.
    —————

    IsisRea Diavolo: Great post again! I firmly believe these kind of tutorials are a must and need to be talked about this topic over an over to make SL a less laggy environment. What Seren mentioned here is absolutely right and correct, I would just ad one thing to this, from my knowledge, when you work for example with mesh with only one face or with big buildings with repetitive texture there is no problem if you have one or two 1024 sized texture to not get a blurry surface. Rather upload one big texture then plenty small, ‘cus the system will struggle to load it. Hence what Seren said about fitting four pictures in one texture and playing with offset. Thats a healthy way to save memory, ‘cus we all want to load fast the textures and be able to move around lagless.

    1. Oh, that’s cool! I’m a massive fan of Isis’ textures – there’s someone who really knows what they’re doing, so really pleased to get this sort of feedback. Thanks for letting me know 🙂

      s. x

Leave a Reply

Your email address will not be published. Required fields are marked *