Tuesday, June 30, 2015

Fallen Angels

Paradise was promised to us, until the day he confessed to his weakness and how much help he needed. They turned their heads towards me in wrath and blamed me for having allowed that he was weak. Their affection turned immediately in hate and so they stabbed me until I could no longer stand up, then kicked me out.

He came after me, despite of their begging and their let her die, and as he was crossing the doors to reunite with me in Hell, they stabbed him too. Their own son.

We were left alone with wounds that wouldn't let us move and live, hoping for a quick death.

But not even Death wanted us, and we had to survive in a world where we were the only ones we could trust. We were so hurt that started attacking each other. We were full of anger with nothing else to take it on but the other one. The blame, the blame. Who was to be blamed?

IMAGE: Fallen Angels, in Flickr

We are the Fallen Angels. We paid the price for defying the sacred societal rules. We are still angry. And now we begin to heal and stand up.

This story is also published in The Night Corner

PHOTO CREDITS - She

Mesh body: Lara, from Maitreya
Mesh hands: Lara's hands, from Maitreya
Mesh feet: Lara's feet, from Maitreya
Mesh head: Stella, from Lelutka
Eyes: Phantom Eyes, Snow, from Dead Apples

Skin: Karin Applier, Opal (Fantasy Line), from Glam Affair
Lipstick: Alexa Lips, Black, from JUMO
Hair: City Princess, Russet (Reds pack), from Exile

Tiara: Leaf headpiece, Silver, from Zenith
Wings: Eternity Wings, Carnal, from Remarkable Oblivion

Top, Skirt, Wrist and Arm bands: Arcane Dancer Silks, from Deviance (This is an old set, made out of sculpts and flexi prims)

Pose: Fallen Angels, coming tomorrow for Oneword, Black Tulip (mine)

PHOTO CREDITS - He

Mesh body, hands and feet: TMP, the free demo; Skin tone, 11
Skin: Lucis, Tone 07 B, from Tableau Vivant
Wings: Eternity Wings, Carnal, from Remarkable Oblivion

Pose: Fallen Angels, coming tomorrow for Oneword, Black Tulip (mine)

PHOTO CREDITS - Landscape

Several sets from Studio Skye
Cemetery De Morte, from Pandemonium

Windlight: Phototools- Dream Book Light 02

Sunday, June 21, 2015

When misinformation is spread (Or a little gripe about ill recommendations for our LOD value)

In this article, I explain what LOD means, what LOD levels are and their relevance, how bad mesh is created (in relation to this aspect), and why you should not raise the value of your rendervolumeLODfactor debug setting for a normal use just because a creator, even if your favorite one, has done a bad work with their meshes. (This value is easily accessible in the Firestorm viewer.)

Some people carry themselves in this world as if they knew everything (despite of what they say). That is not my case. I'm well aware that I know nothing, Jon Snow, and whenever I see misinformation spreading, I feel conflicted. On one side, I want misinformation to stop. Why, it's a long story. On the other side, I feel like and who do you think you are to correct others?, and so, maybe too often, I let this misinformation to continue its way. Why, again, it's a long story.

Well, this time I'll bite the bullet and make some people angry.

When sculpts were the most used content creation tool in SL, there were some sculpt prims that used to break really badly (like those that were generated by tools making sculpts out of prims, Sculptcrafter for example). Instead of learning how to make things better, we handed out notecards to our customers, recommending them to raise a certain debug setting to 4.

I admit to being one of those people that were doing things wrong. At first, I didn't know that I was doing things wrong. Then I had a friend explain to me how by increasing that debug setting, we were adding more stress to our graphics cards (waves to Graham). Then I felt quite guilty, because I had no time to learn to do things right, and instead I slowed down my awfully created sculpts production. Also, I stopped recommending people to raise that value. If my sculpts were seen broken, so be it, but I was not going to knowingly suggest something that is detrimental to my customer's computers' performance.

First of all, what does LOD mean? It means Level Of Detail.

Let's think of the situation with an example: Suppose you have a (mesh) cabinet. When your camera is focusing on it, close to it, all the geometry is visible. Why would you hide geometry anyway? you may wonder, and it is a valid question.

Now, as your camera zooms away from the cabinet, and this becomes smaller on your screen: Does it make sense that your graphics card works hard in drawing all the geometry? When your camera zooms so far away that your cabinet is merely a small cube on the screen, does it make sense that your graphics card draws all the geometry no matter what?

It seems that it doesn't make sense drawing geometry that isn't going to be noticed anyway, does it?

It doesn't make sense, that's right.

For this reason, a standard practice is setting in place several "levels of detail" that will contain different definitions of the geometry, showing each one of them at a certain camera distance, depending on the size of the object. Let's explain this mouthful with an example.

Consider the following mesh models, which are the four LOD levels defined for one inworld object, a street light:


To the left, the high LOD is showing: this is the model with all the geometry. It shows when your camera is close to it. Then, the next object we see is the medium LOD: This model shows when the camera is "a bit far" from the object. As we can see, the medium LOD model is like the high LOD model, but with less geometry.

Notice this: We've zoomed away "a little bit" in Blender, and we can't see already many differences between the high and medium LOD models. But there are.

Let's zoom closer only to these two models:


Okay, differences show. Look at the top parts of the lights, for example. The model to the right on the previous picture, the medium LOD, has them simplified. The model to the left, the high LOD, shows them with all the detail. We observe this in several parts of the medium LOD. Details have been removed, some curves are less smooth. But it doesn't matter: we'll see the medium LOD from a certain distance, so that loss of detail is helping taking stress off of our graphics card, while the object shows with detail enough. The detail that was removed is detail that wouldn't be seen anyway from that distance.

Let's also take a look at the base of the objects:


The high LOD has 16 vertices in the tube section, while the medium LOD has 8 vertices. Unnoticeable from a distance, and by doing that, we've removed HALF the geometry on the lamp base. We start seeing that these "LOD models" are helping in taking stress off of our graphics cards because objects that are in the distance don't have as much geometry to draw. Well. They shouldn't.

Let's go back to our four mesh models and identify the other two LOD levels:


First model to the left is the high LOD, the model to its right is the medium LOD. If we continue going to the right, the next object we see is the low LOD: This shows when the camera is "still further" from the object. It's like the high LOD model, but basically "bare bones", a very simplified version with little geometry.

There's a fourth LOD model, the one corresponding to the lowest LOD. Usually, I make this one be just a triangle (in the SL uploader) because each triangle in this level contributes a lot to the LI (Land Impact), and normally you aren't going to see objects from that far. For example, with furniture, this LOD could show when you're outside the room or the house. You have to evaluate each case, of course (you have to be more careful with avatar attachments, and builds), but often, this LOD model will be just a triangle (per material).

These four models have to be uploaded by the creator when uploading one mesh object. Often, the creator will just use the default configurations that SL generates for the medium, low and lowest LOD. I always create the high, medium and low LOD models in Blender. Then depending on the object, I may also create the lowest LOD, or let SL make it a triangle (per material).

My recommendation is creating the LODs instead of letting SL decide. If you're the one creating them, you have absolute control about which detail is removed and how. Yes, it slows down your production time, but I think we have to take this extra time and do things right. There will be few cases where the SL uploader produces a decent enough LOD model. My full recommendation is, check what the SL uploader would do, and if you think ew, ugly or what the heck is that, then do the LOD models yourself.

Now, this happens: Some creators make amazingly detailed items. They want them having the lowest LI (Land Impact) possible. But if the object is so intricate that it has thousands of polygons (a big nope, but that would be for another day), the (lazy) solution they've found is making their LOD models like this:


Yes, that's it: there's detail (all the detail) only for the high LOD. From the medium LOD to the lowest, all you have is one triangle (per material). This causes that as soon as the medium LOD is shown, their objects collapse immediately. The medium LOD shows in a relatively short distance (smaller, as the object is smaller), so this makes for pretty objects that are kind of useless, since they're collapsed into triangles unless your camera is right next to them.

What do these creators do?

They tell you to raise the value of the rendervolumeLODfactor from the default value (1.125 in the official viewer, 2 in Firestorm), to 4.

What does this cause?

This causes for the LOD models showing at farther distances. If you set this value to 4, the medium LOD will show when the camera is farther than the distance that would make it show, if the value is set to 2. That way, their objects don't collapse that close. Sounds nice, does it?

Well, it isn't.

In other words: By raising that value, you're forcing your graphics cards to draw more detail than needed, of those objects that are far. You may need this, on occasion (like if you're taking a photo of a whole sim, to avoid collapsed windows and doors in the builds), but for daily use you do not need this at all. If you increase this value, you're adding unneeded stress to your graphics card. If you don't have a top-of-the-top computer, you are going to notice that the FPS (Frames Per Second) lower, and at times, that's the difference from your ability to type in the local chat/IM windows, from seeing how the letters drag until they form the words you were typing. Even if you have a top-of-the-top computer, why should it be doing more work than needed? Why using power process that could be used in other tasks, or simply, saved?

If a creator tells you that you should raise rendervolumeLODfactor to 4, in order to enjoy their creations... The answer is, no. You learn to do your job. You don't demand more resources from my computer, resources that shouldn't be taken if you did things right.

If you think I'm alone in these thoughts, then read this post, from Ed Merryman. Yes, one of the most visible heads of the Firestorm Viewer project. According to his opinion, I can't say he's exactly happy either about those ill recommendations. He also explains why.

If you find this post useful, please share the link with your friends and fellow creators.

Have a great day!

Friday, June 12, 2015

Scripting Saturday Night - Gone wild

Sorry! Maybe that script went a little out of hand, Sir. Yes, Sir, I know, it crashed the sim, but we could restore it! Please don't revoke my scripter license? Please?


Not all the times I have to be serious :-)

Thanks Caitlin! You're right, this is the perfect one for me.

Tuesday, June 9, 2015

Defend yourself from manipulators

The title of this post is quite pretentious, I'm aware of that. I've been thinking of other possible titles that could convey my message and attract your attention, but at the moment of writing this, I couldn't think of any other.

I've been thinking for a while in something I wanted to talk about here. We begin with entitlement and end up with some 101 techniques that manipulators will use against you, to gain control over your emotions. Once that happens, you'll be playing their game, their rules, no matter what you tell yourself, no matter how you justify that someone else now controls you.

If you're reading this, I assume you don't want to be anybody's puppet but your own owner, so please bear with me while I reach to my point.

Let's begin with entitlement.

Different people feel entitled to different things. The more freely you give things (your time, your knowledge, your help...), the more entitled to those things you freely give, others will feel about. It is nice to have someone else solve your problems, do your work... for free. So if you're the kind of person that lives under the world owes me motto, when you find someone kind, you'll abuse from this kindness. If you're the kind one, sooner or later, you'll find people that feel they own you: your time, your knowledge, your help. And if you stand up against this, the little dictator inside them, in the form of manipulator, will attempt to belittle and make you feel awful about yourself.

Story time.

Way time ago, I had a website where I offered free programming tutorials (in Spanish), and in my naivety (I was... 23 year old?), I offered an e-mail to contact me.

Usually, when you publish tutorials on the Internet, you have to expect people who will appreciate your work, thank you for it and give constructive criticism, people that demand things and are rude, and then a lot more that just never say a word, so you can only feel their presence if you check the stats (Back in my days, you had to code the stats yourself. You kids nowadays have no idea of the struggle - and you'll say the same to kids when you're my age.)

From those that give constructive criticism, I met some really nice people, but they were too few compared to the incredible amount of e-mails I received from complete strangers demanding all kinds of things from me: from doing their homework, to their college papers. It's interesting to note that I barely received e-mails asking for clarifications on the material, or pointing at mistakes. The majority were from people demanding that I do their job. For free. And quick, bitch, my final is tomorrow, you don't want me having to repeat course, do you? (True story.)

An historic note is in place here: You may wonder why I didn't just include a form to leave requests, instead of my e-mail address. Well, this happened at a point where PHP was being born and wasn't available in so many servers, so if you wanted to offer a form for comments, instead of your e-mail address, you had to code it yourself - in C language. Also, not many servers allowed you to install this kind of little program. By the time I was able to make this, it was too late: my e-mail was known all around.

I can't say that those demands came in a good moment of my life. So in a bad moment of my life, I did two things. One that I regret, another one that I don't regret at all.

The one that I regret was taking down the whole website, so the entitled bunch wouldn't take any more advantage from me. I regret having done so for this reason: I couldn't see at the moment that by taking down the website, I punished a lot of innocent people because of a few lot of little monsters. By the time I started to recover from something else that was going on in my real life, it was too late to try to bring the site back online. The IT world changes fast, and at the time, I wasn't able to bring back a whole website so it was current in content, in my free time.

The one that I don't regret was using a new e-mail address, so all these people demanding that I did their job, for free, couldn't find me in the new address.

So this is the first point I wanted to reach to: when you do something for free, you owe absolutely nothing to the world. The gift of your knowledge, your help... when you want to, should be enough to everybody else. And if they want more from you? You owe nothing to them. NOTHING.

Nobody but you owns your time. Nobody has the right to make you feel forced to do things you do not want to do, if you haven't signed a contract/committed to it, and particularly in your free time. NO-BO-DY. Repeat that to yourself as many times as you need. Really, start repeating that to yourself: Right now.

Now I'll try to establish the connection that, in my mind, relates entitlement with manipulation.

When you start being serious about not allowing others to make you feel forced to do things you don't want to and have not committed to, some of them aren't going to take this well, particularly if they're used to the contrary from you. They may try to make you feel bad, they may be insulting, abusive...

Do not listen to what they say. No matter what this is. They may say things like "I didn't expect this from you", "You've changed, you're not the nice person I met", "I'll find someone who cares, unlike you"... Do. Not. Listen to that.

You don't owe them your time. They simply have no right to make you feel bad about how you want to use your time, nor they should make you feel that you have to help them. You don't have to.

Little bit of advice, related to this: Do not reply to anything that sounds like the examples I've written. Someone tells you "You've changed, you're not the nice person I met"? Don't reply. It's pretty obvious that they're trying to provoke an emotional response from you, and if you reply, you're playing their game. You don't have to justify yourself if you don't allow others owning your time. You really don't have to.

It also doesn't matter what you tell them, because what they want is that you go back to the place where you do with your time what they want you to do. So, someone tells you "you're not the nice person I met"? That's their problem, not yours.

Realize that they were trying to manipulate you through your feelings, your concern about the image that others have about you, and don't give them the emotional response they're hoping for.

Realize too that if you're being manipulated, you'll not be willing to admit this. But you have to. If you're being manipulated, if you feel that someone is being abusive or attempting to control you through your emotions... Don't close your eyes to it. Admit it to yourself. There's no shame in admitting that someone is manipulating us, or trying to. It happens to everybody (even to manipulators!) The louder you can tell that to yourself, the easier will be for you to escape their control, since you're now aware of the situation.

I haven't even scratched the surface of how to defend yourself from manipulators in this post. But I hope that what I've written here helps you think, and realize, when others are trying to manipulate you through your feelings. There are many other ways (sadly, I've observed too much of this in my life), too often if not always, trying to provoke emotional responses from you that makes you be under their control; being able to recognize even just one way, is a start.

Keep in mind that if someone wants to provoke an emotional response from you, and you respond, they know that they can continue pushing to provoke more emotional responses. Do not play that game, because it's a game you will never win.

"It's a strange game. The only winning move is not to play." (Almost literal quote.)


Recently, I've found few people bringing their sense of entitlement to "upper levels". Because it's related, I want to address the situation here, where it belongs.

If you're reading this post, I don't have to tell you that I write this blog. I write and then publish posts, so other people will read me.

What do I owe to my readers? Weekly posts? More detailed tutorials? Tutorials about this/this other topic? My inworld time, so they can discuss my posts in my IM window?

I'm not afraid to say... That I do not owe my readers any of this. I only owe what I commit to.

Sure, I write in a public place. And there's a form for comments: Use it, if you want to add/comment/call me names. Comments aren't moderated. If I can reply the comments/makes sense that I reply, then I will. Else, I won't. If I want to take on a suggestion, I will. Else, I won't. If you feel shy about publicly leaving comments and prefer to tell me something in IM, if I'm not busy the moment you do, I will reply. But what you're not entitled to, by any means, is to my time. (Generic) You really have nerve if you tell me in my SL IM window that because I write publicly, you have the right of coming to my IM so I should discuss something with you, because you want to, and/or take on your suggestions. (True stories. I kid you not.)

One real world equivalence would be telling me that because I'm an actress, you can call me to my private phone number to talk with me about my part, insisting that you have that right and that I should discuss your feedback and take on your suggestions. In the real world, you may end up with a restraining order. In the virtual world... well, you can figure that out on your own.

I'm not going to make the mistake I did years ago, when I took that website down. I will continue writing publicly, about what I want, when I want, and discussing in comments or in public gatherings. Because I do it in my free time, and I owe you not.

Have a great day! :-)

PHOTO CREDITS


Mesh body: Lara, from Maitreya
Mesh hands: Lara's hands, from Maitreya
Mesh feet: Lara's feet, from Maitreya

Skin: Lulu 02 C, Jamaica, from Glam Affair
Hair: LUSH, Essentials pack, from Clawtooth

Skirt: Layla Wrapped Skirt, Sunrise, from Tee*fy

Pose: Beauty #15 - Mirror, Black Tulip (mine)

Landscaping:
  • Sim surrounding environment, from Landscapes Unlimited
  • Studio Skye, several (beach) kits
  • Lovers Island and Romantic Island from PRIME
  • Floating Lounger, blue pattern, from {what next}
  • Enakai Wavebreaker (larger), from Trompe Loeil

WL Water: Pond
WL Sky: Phototools- Build 005 Light

Sunday, June 7, 2015

When a rezzer system doesn't remove the hover text

I'm currently working in a full makeover of our SL home, and one of the things I've added is a house that came in a rezzer box. It's one of these systems that puts hover text on all the parts involved, and when you're done, in theory, the hover text is removed. But at times, for any reason (delays in communication, a network hiccups... you name it), the hover text isn't removed from all the objects.

Oh noez. Do I have to remove all objects and start again?

If the objects are modify, you don't have to remove all and start again :-)

Hover text is a primitive property that can be removed by using a self-deleting script. Since objects may consists of more than one linked prim, it's advisable that you use a script that removes the hover text from all prims on a linkset. For example, this one:

// Delete Hover Text (complete linkset)

default
{
    state_entry()
    {
        llSetLinkPrimitiveParamsFast(LINK_SET, [PRIM_TEXT, "", <1.0, 1.0, 1.0>, 1.0]);

        // All done, let's clean-up ourselves for not forgetting the script inside
        llRemoveInventory(llGetScriptName());
    }
}

If you don't feel sure about doing this, because oh my god no, scripts, don't worry: you can grab this set of little (but useful) scripts that I have for free on Marketplace, knowing that the script to use is Delete Hover Text (complete linkset). And if you want to learn more about primitive properties and little scripts that set/remove them, then click here for the full text of my "Low lag scripts for builders" class.

That's it. Short and sweet today. I'm working hard, you see! :o)


Have a great day :-)

Monday, June 1, 2015

Mesh cooking experiences for the Multicultural Menu event

I've always liked sculpt food, then mesh food. It adds interest to tables, and it's something colorful that I like to have rezzed out. I feel that some spots are more inviting when there is food out. And until this event, is something I never did before, mesh-wise.

I think it was January when I heard about the Multicultural Menu. The idea behind the event, like the name suggests, is bringing food from all places in the world, in one spot. I thought it would be an interesting challenge to me, and so I applied.

Yes, when I applied, I knew that this event was going to push my boundaries and bring me out of my comfort zone. I've cammed close all the mesh food I have around, and I already knew that while creating the mesh itself could be simple, the task that would require the most time, and skills, is texturing. And if there's something I suck at, that is... Yes, texturing.

Again, I haven't had the time to create everything I wanted, and I confess that after seeing what the guys of bauwerk did, I nearly fainted (Their bakery is awesome. Waves to Paco and Manu). I don't have all the experience they have, I know this, but I felt like a newbie when comparing my work to theirs.

Why would I want to compare my work to what others do? Because if I think that my current set of skills is the best I can do, I will never improve them. I always look at what others do better than me, to set new goals. Whether what I do is good in itself, or not, the important to me is that I can always do better. And so I want to do better.

I've been slow, painfully slow, when creating my items. I have this bad habit of wanting to create everything as if I were to explain to someone else how to make it. It slows me down (and I end up not writing how I've done it anyway). On the good side, I've learned a bit about texturing food in Blender (and texture painting - lots of texture painting), and I've figured out some tricks to speed up the process of creating the medium and low LOD models of all the food. Like real cooking, creating mesh food takes time... and baking time! (Now that's a bad joke that you only get if you know that we bake textures in the 3D program, Blender in my case. My apologies. Maybe.)


One thing I've liked from this event, as a personal experience, is that I've felt a bit of pride, for once, of being Spanish. But just a bit: Enough as to want to bring some typical food from Spain, to SL. Keeping with the spirit of this event being multicultural, I haven't translated the food names. Also, I've cooked/prepared the food you will see in my mesh items. Yes, textures in the food come from actual food I eventually ate :-)

I know that many will not agree with me in this: Where we're born is an accident, we don't choose this. That's why normally I see no point in feeling proud because of the accident of having born at one place. It would be like feeling proud of your skin color or your hair color: It's something that is given to you at birth.

I'm also not particularly proud of this country, but the reasons are not for here (at least, not now.)

But if there's something we're good at... That is cooking! (At least until we're completely assimilated by fast food franchises). I love the food in my country, and I like cooking it. And although the event is now open and I've finished what I have for it, I've decided that I will continue bringing more Spanish flavour to SL. That's actually something that I know very well how it is, first hand :-)


I'm leaving it here. Check out what I've cooked (this time literally), grab the taxi to the event... And have a great day!

PHOTO CREDITS

Furniture, food, drinks: Black Tulip, out now at the Multicultural Menu event.
WL: Phototools- Got It Light