Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0008282opensim[REGION] Script Functionspublic2018-01-22 00:532020-01-21 13:18
Assigned To 
PlatformOSOS Version
Product Version0.9.0 
Target VersionFixed in Version 
Summary0008282: Settings PRIM_NORMAL, PRIM_SPECULAR, PRIM_ALPHA_MODE, not implemented
DescriptionThe PRIM_NORMAL, PRIM_SPECULAR and PRIM_ALPHA_MODE rules have getters for llGetLinkPrimitiveParams() (and related functions), but they don't have their counterpart for setting via llSetLinkPrimitiveParams(), although it's possible to set those properties via the viewer in Edit Window.
Steps To ReproduceCreate a script with the content:

default {
  state_entry() {
    llSetPrimitiveParams([PRIM_NORMAL, 0, "", <1.0, 1.0, 1.0>, ZERO_VECTOR, 0.0]);
Additional InformationIn parallel, PRIM_ALPHA_MODE_* constants are not recognized by the script engine. A script calling llGetPrimitiveParams() to query the alpha mode of a face does not compile.

Missing values:
TagsNo tags attached.
Git Revision or version number
Run ModeStandalone (1 Region) , Standalone (Multiple Regions) , Grid (1 Region per Sim) , Grid (Multiple Regions per Sim)
Physics EngineBulletSim
Script Engine
EnvironmentMono / Linux64
Mono VersionOther
ViewerFirestorm x64
Attached Files

- Relationships
related to 0008156new PRIM_NORMAL & PRIM_SPECULAR 
related to 0008084closedUbitUmarov [SCRIPT ENGINE] All material constants no implemented 

-  Notes
UbitUmarov (administrator)
2018-01-22 12:15

Yes, Set is a bit more complex to add that Get on our materials code.

so still on TODO :(
aiaustin (developer)
2018-02-05 06:37
edited on: 2018-02-05 06:40

Some work on the Ruth 2.0 mesh body and nail attachment specularity is related to this.... [^]

I wonder if the OpenSim side could support the functions and constants and, for now, have no effect... in order that scripts compile without error and without needing special OpenSim variants.

UbitUmarov (administrator)
2018-02-05 07:14

Think is all there, but Set will report error parsing those parameters
i could make it silence ignore them, but that could make things very confusing for any other scripter not following this discussions.
aiaustin (developer)
2018-02-05 07:57
edited on: 2018-03-13 02:35

Point taken @Ubit ... I was just trying to get things so that as Ruth 2.0 parts appear in OpenSim the scripts are ready to go if or when the SET functions are made to work, rather than such parts needing to have their embedded scripts changed.

aiaustin (developer)
2018-03-13 02:35
edited on: 2018-03-19 06:58

I note some scripts for Ruth 2.0 have to have temporary workarounds to avoid this error... its a pity to start to get lots of new content out there that will need fixing later...

// Currently, llSetLinkPrimitiveParams(0,[ PRIM_SPECULAR...] has a bug. It will trigger
// an error in the script if it tries to execute the function.

UbitUmarov (administrator)
2018-03-31 18:54
edited on: 2018-04-05 04:07

I did make some changes to materials and add support for PRIM_NORMAL, PRIM_SPECULAR, PRIM_ALPHA_MODE on Set functions.

Note this was done on branch httptests, not master, and this needs .net4.6 (or mono 5x)

This code needs more changes, and may still have issues.

Avoid changing materials in diferent llSet* commands. Viewers may get informed of changes on each line, and may ask for materials that where meanwhile removed by the next command’s changes, but should work, just wasted bandwith and a possible warning on log about unknown material.

Note also that a change waits some 2 minutes before sending new materials to grid assets DBs. If region crashes or has a problem meanwhile, they are lost. But well, a region crash is already a problem :)

Also, as before, material IDs are not really unique, there is a small but not null chance of different materials getting same ID, and so assumed to be equal, this is a issue to try to fix later.

TyphaineArtez (reporter)
2020-01-19 13:05

I get back on this ticket :)

If I understood well, each time a script modifies material properties, a new rendered material asset is created on the server? If yes, I understand the reticense on applying them.

I have notice that in SL, when changing material properties, the render is not *always* immediate, and not related to sim load. So that gave me an idea for an implementation:

When the viewer sends the new settings, it's put in a worklist of data (without render computation) associated to each asset it's applied on.

When the first request is sent to the simulator, a timer is set (something like 1 or 2 seconds, configurable in .ini). No stored asset creation is made in the database, only sent back to the viewer. When the timer gets over, the last loaded settings are used to create the asset.

Could this work?

If I get more info on what you have done (I am not sure to understand how you did it and what it implies), I will make a test if the current httptests branch contains your modifications.
BillBlight (developer)
2020-01-19 15:16
edited on: 2020-01-19 15:17

If you see Ubit's post above yours, this was implemented(over nine months ago) ... and is in the latest release

TyphaineArtez (reporter)
2020-01-21 12:54

I tried with the released opensim-, the script does not bring any error when using llSetPrimitiveParams(), but nothing happens. As my test applied on object touch, I could try several calls.

So I am not sure it's fully implemented or it's on the released branch.
UbitUmarov (administrator)
2020-01-21 13:18

it is on release

- Issue History
Date Modified Username Field Change
2018-01-22 00:53 TyphaineArtez New Issue
2018-01-22 11:57 Sheera Khan Relationship added related to 0008156
2018-01-22 11:59 Sheera Khan Relationship added related to 0008084
2018-01-22 12:15 UbitUmarov Note Added: 0032513
2018-02-05 06:37 aiaustin Note Added: 0032534
2018-02-05 06:38 aiaustin Note Edited: 0032534 View Revisions
2018-02-05 06:40 aiaustin Note Edited: 0032534 View Revisions
2018-02-05 07:14 UbitUmarov Note Added: 0032535
2018-02-05 07:57 aiaustin Note Added: 0032536
2018-03-13 02:35 aiaustin Note Added: 0032592
2018-03-13 02:35 aiaustin Note Edited: 0032536 View Revisions
2018-03-19 06:58 aiaustin Note Edited: 0032592 View Revisions
2018-03-31 18:54 UbitUmarov Note Added: 0032626
2018-04-05 04:07 aiaustin Note Edited: 0032626 View Revisions
2020-01-19 13:05 TyphaineArtez Note Added: 0036113
2020-01-19 15:16 BillBlight Note Added: 0036114
2020-01-19 15:16 BillBlight Note Edited: 0036114 View Revisions
2020-01-19 15:17 BillBlight Note Edited: 0036114 View Revisions
2020-01-21 12:54 TyphaineArtez Note Added: 0036132
2020-01-21 13:18 UbitUmarov Note Added: 0036133

Copyright © 2000 - 2012 MantisBT Group
Powered by Mantis Bugtracker