Jump to content

Advanced Materials : There is a real need for LSL functions !

Gael Streeter

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

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

Recommended Posts

Hi everybody,

I am very happy to see that more and more viewers are now supporting the new Advanced Materials.
This a really great new feature for creators with many possibilities !
But... but... as there is still no LSL functions to manage the Specular and Normal textures and parameters I do not see how this feature can be really and widely used ! :matte-motes-crying:

Indeed, let's take an example :
You are creator and you have designed a marvelous dress in rigged meshes with different parts and textures (metal, fabric...).
To enable the customer to easily customize the dress, you have also designed a powerfull HUD allowing to change the color/texture of each part (gold, silver... red, blue silk...)
Now that there are the so fantastic new possibilities of the Advanced Materials, you would like to add them to your creation !
But... Arghhhh ! :matte-motes-sour: There is no LSL function to configure the Advanced Materials features !
You even can not  change the specular color of the different parts of your dress by HUD to set them in accordance with the diffuse texture chosen by the customer : for example white specularity for silver, yellow one for gold... redish one for red silk, blueish one for blue silk...
As creator, which choice do you have ?
- Put the same white specularity regardless the materials ? The graphic rendering would be far less beautiful and in some case absolutely inadequate ("plastic" effect) !
- Drop down the HUD solution ? Your customers will no more be able to choose and match easily each part of the dress !
- Drop down the Advanced Materials features ? ... No comment...

For my part, I have some creations I do not release... waiting for LSL functions I even do not know whether they will exist one day !
How frustating is it !!! :matte-motes-crying:
How can Advanced Materials be widely adopted and used with such limitations ?

If you agree with me, I really encourage you to vote for the only JIRA I know related to this problem:

Let's make the things move on this subject !!!


Link to comment
Share on other sites

To make things move forward we should discuss how the API for Materials could look like. The developers who would implement the LSL functions, have no idea how Materials are actually used in practice. So it's unlikely that anyone of them will pick up this topic on their own.

However, if they see how a function could look like, they can decide more easily if and when this could be implemented.


Link to comment
Share on other sites

I can think of some additional functionality that's not blindingly obvious, but for starters, everything Materials-related in the Build tool needs to exist in LSL as parameters to llSetLinkPrimitiveParamsFast() and its ilk.

Why not?

Otherwise, what exactly do users need to provide? Names for the parameter constants?

One possibly less obvious functionality is the ability to animate normal- and specularmaps independently of diffusemaps. I suspect, however, that this may not yet be supported in viewers, so that would need to happen too.

Link to comment
Share on other sites

Right. However, they may not even use the build floater for materials themselves ever. And they might prefer a new function, rather than including it into llSLPPF. Would be easier to implement, and some delay could be build in as well. How reasonable such a delay would be, may be questionable.

Anyway, to get this going somehow, a function could look like this perhaps:

llSetLinkMaterialsMap(integer link, list params);  

Which would look like this for a specular map:

llSetLinkMaterialsMap(integer link, [PRIM_SPECULAR, integer side,    SPECULAR_ID, key uuid,    SPECULAR_SCALE, vector repeats,    SPECULAR_OFFSETS, vector offsets,    SPECULAR_ROTATION, float rotation_in_radians,    SPECULAR_GLOSSINESS, float gloss, // Glossines 0 - 255 (modulated by the normals maps alpha channel if present.)    SPECULAR_ENV, float environment, // Environment 0 - 255 (modulated by the specular maps alpha channel if present.)    SPECULAR_COLOR, vector color]);

 For a normals map:

llSetLinkMaterialsMap(integer link, [PRIM_NORMALS, integer side,    NORMALS_ID, key uuid,    NORMALS_SCALE, vector repeats,    NORMALS_OFFSETS, vector offsets,    NORMALS_ROTATION, float rotation_in_radians]);

 Whith this we could set only the parameters we would like perhaps. For example, to change just the specular color.

llSetLinkMaterialsMap(integer link, [PRIM_SPECULAR, integer side, SPECULAR_COLOR, vector color]);

And a llGet function could look like this:

list llGetLinkMaterialsMap(integer link, list params);

 Which would return the parameters specified, like:

list llGetLinkMaterialsMap(LINK_THIS, [PRIM_SPECULAR, 0, SPECULAR_GLOSSINESS, SPECULAR_COLOR]);return [float glossines, vector color]

Adding new functionality like animating the maps each on it's own, might be asking for too much probably. Although this would be a great feature, of course.


Link to comment
Share on other sites

I agree with Qie Niangao and I think that the future Materials features should be implemented into the llSetLinkPrimitiveParamsFast() to keep the consistency of the LSL API.

(BTW, I do not see any big difficulty for the developers here and I really hope that they do know the purpose of what they are developing !  How could it be different ? If not, they have the possibility to ask the Linden Lab people how develop the Advanced Materials in the server and the viewer... LOL)

What is surprising me the most is that it seems that not so many creators are requesting these LSL functions !
Is it because they do not care of the Advanced Materials ?
Is it still too new and they do not see the interest of having these functions ?
I do not know...

To make the things move forward, please vote, vote, vote !



Link to comment
Share on other sites

Well, actually, the developers asked for it, how an API could look like. Certainly, one would think, "hey, they just have to ask around the in the Lab", what would be needed. Though it doesn't look like someone is willing to do so.

If we want things to move forward, we, the residents, have to push it somehow. Voting on the jira won't do much really.

So giving them some ideas can't be wrong. Just saying "implement it in llSLPPF" won't help at all, I suspect.

Link to comment
Share on other sites

  • 3 weeks later...

Yeah, well, it appears that this isn't going to be happening any time soon, no matter what we as users do. See "LSL Materials Functions" at the end of Inara Pey's recent post.

You can judge for yourself how much those developers were really asking us for an API spec, as opposed to just casting about for excuses to not do anything.

Link to comment
Share on other sites

  • 3 weeks later...

steph Arnott wrote:

I Google Myspace, but I did not get any more insight it to what you mean. Tho I do feel some of the forums seem to more of a, "lets see who is the punch bag today mentality".

The MySpace reference is how Facebook pretty much replaced it some time ago because it was more suited in its social interaction. Though MySpace still exists, it gets very little usage anymore because Facebook meets the need so much better and more powerfully..


So, when I said "SL often feels like MySpace did at one point..." I was stating that SL oftentimes seems dated and, because of carrying so much legacy code (which becomes more and more difficult to change/update), opens up the real possibility of being replaced in the future by a "better" virtual world system.


Unfortuantely, for such a system to be "better", it would have to address not only the issues SL has (a complex user interface being the worse of it) but also would face a decade of problems and detractions (copybotting, porn, fraud,  griefing etc) that have arisen and now are associated with virtual worlds in general.

Link to comment
Share on other sites

About three weeks ago, Inara Pey quoted Nyx and Oz Linden:

While the capability has not been officially ruled out, it is not at all clear when it might appear – if indeed it will. Commenting on the subject at the Content Creation User Group meeting on Monday December 15th, Nyx Linden said, “Scripted materials would be more difficult than you would think.” To which Oz Linden added, “There are some non-obvious complexities with scripted materials properties. We don’t have that in a plan yet, but we know that people would like it.

So it looks as if we'll have to wait a while yet.

Link to comment
Share on other sites

  • 5 months later...

I dug up this thread after hunting for info on script control of Specular values. I'd looked in the LSL wiki and found the following page:


and related details included on the llSetPrimitiveParams entry.

I tried using this in a script but found that PRIM_SPECULAR is unrecognised as a constant. Replacing it with its supposed value of 36 brings up an 'unknown rule' error.

So it looks like Spec & Normal scripting might be just around the corner, but the wiki entry has jumped the gun on the details?

Link to comment
Share on other sites

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

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Create New...