Pagina 1 di 1

5 nuove funzioni LSL in Preview Grid

MessaggioInviato: mer mar 03, 2010 3:56 pm
di Opensource Obscure
se non riuscite a entrare nella Preview Grid
1) settate Morris come regione di ingresso e riprovate
2) segnalate il problema con una notecard sul profilo di Oskar Linden

documentazione:
https://wiki.secondlife.com/wiki/PRIM_TEXT (questa e' una costante, non una funzione)
https://wiki.secondlife.com/wiki/LlGetL ... tiveParams
https://wiki.secondlife.com/wiki/LlSetL ... ParamsFast
https://wiki.secondlife.com/wiki/LlSetLinkTextureAnim
https://wiki.secondlife.com/wiki/LlLinkParticleSystem

Babbage Linden ne ha parlato stamane nella sua Office Hour settimanale...a seguire, alcuni estratti interessanti
http://wiki.secondlife.com/wiki/User:Ba ... 2010_03_03

ho solo una mezza idea di cosa significhi la parte in grassetto specificamente riferita a Second Life, se qualche programmatore vero vuole dire la sua...

[03:09] Babbage Linden: 1.38 also includes partial fixes for SVC-3895
[03:09] Babbage Linden: you should now only see stalls the first time a Mono assembly is rezzed

[03:10] Babbage Linden: So common scripts will tend to be cached in simulators
[03:10] Babbage Linden: which means they won't need to be loaded
[03:11] Babbage Linden: which means you should see far fewer stalls in practice
[03:11] Babbage Linden: There are some Mono fixes for these stalls coming down the pipe
[03:11] Babbage Linden: So a full fix should happen when we deploy Mono 2.6.X at the latest
[03:12] Babbage Linden: So, there's even more reason so share bytecode now
[03:12] Babbage Linden: The fewer distinct assemblies there are, the more likely they'll be cached
[03:13] Babbage Linden: for example, if you use the whizzy new LSL twitter library
[03:13] Babbage Linden: https://wiki.secondlife.com/wiki/Twitter_OAuth_Library
[03:13] Babbage Linden: please don't recompile it :-D

Re: 5 nuove funzioni LSL in Preview Grid

MessaggioInviato: lun mar 08, 2010 6:30 pm
di rubin_mayo
Caspita... con queste funzioni si possono risparimare alcuni script sparsi per le child prims e quindi ridurre la lag!!!

Fantastico.

Mister Rubin

Re: 5 nuove funzioni LSL in Preview Grid

MessaggioInviato: gio mar 11, 2010 11:53 am
di Keith Reinard
lo script di becky non mi funziona..

il pezzettino dove ridimensiona il linkset E BASTA sì (ma è inutile perchè ogni prim si riduce al suo baricentro, i prim non si spostano e tutto si smonta)

lo script completo dove prende anche la posizione dei prim e poi li sposta se non sono root non funziona, mi si riduce solo il root, e penso che sia per questo motivo

// We've determined that we can safely change all the sizes, so
// let's do so now. This example assumes that llGetLinkPrimitiveParams()
// with PRIM_POSITION will return the relative offset from the root prim
,
// but those details have not yet been published.

ho fatto una prova e llGetLinkPrimitiveParams() ritorna la posizione del prim NELLA SIM in coordinate globali, e non locali, in pratica è un llGetPos() invece del llGetLocalPos() che ci sarebbe servito

quindi devo trovare il modo, nel ciclo, che rilevi la posizione del root, e per ogni posizione rilevata del link prim, convertirla in coordinate relative..

dovrebbe funzionare, provo...

Re: 5 nuove funzioni LSL in Preview Grid

MessaggioInviato: gio mar 11, 2010 12:15 pm
di Keith Reinard
adesso mi funziona, ho preso lo script di becky, ho aggiunto la conversione da llGetPos a llGetLocalPos, ho aggiunto un flag alla funzione per lanciare con una riga di codice sia resize con il controllo sulla fattibilità o per ridimensionare sbattendosene di tutto

Codice: Seleziona tutto
resize(float factor, integer test)
{
    integer linkNum;

    if(test){
        for (linkNum = llGetNumberOfPrims(); linkNum >= 1; --linkNum) {
            list params = llGetLinkPrimitiveParams(linkNum, [PRIM_SIZE]);
            vector sz = factor * (vector)llList2String(params, 0);
            if (sz.x < minPrimSize || sz.x > maxPrimSize ||
                sz.y < minPrimSize || sz.y > maxPrimSize ||
                sz.z < minPrimSize || sz.z > maxPrimSize) {
                llOwnerSay("Sorry, cannot resize further.");
            }
        }
    }

    for (linkNum = llGetNumberOfPrims(); linkNum >= 1; --linkNum) {
        list oldParams = llGetLinkPrimitiveParams(linkNum, [PRIM_SIZE, PRIM_POSITION]);

        list newParams = [ PRIM_SIZE, factor * (vector)llList2String(oldParams, 0) ];
        if (linkNum > 1) {
            vector linkPos = (vector)llList2String(oldParams, 1);
            vector localPos = (linkPos - llGetRootPosition()) / llGetRootRotation();
            newParams += [ PRIM_POSITION, factor * localPos ];
        }

        llSetLinkPrimitiveParamsFast(linkNum, newParams);
    }

}



il pezzo incriminato è questo (non funziona perchè ritorna le coordinate globali del prim)

Codice: Seleziona tutto
if (linkNum > 1) {
     newParams += [ PRIM_POSITION, factor * llList2Vector(oldParams, 1) ];
}



sostituito da questo (prende le coordinate globali, sottrae le coordinate del root trasformandole in locali e divide per la rotazione del root in modo da ridimensionare e spostare bene anche ad oggetto ruotato)

Codice: Seleziona tutto
if (linkNum > 1) {
    vector linkPos = (vector)llList2String(oldParams, 1);
    vector localPos = (linkPos - llGetRootPosition()) / llGetRootRotation();
    newParams += [ PRIM_POSITION, factor * localPos ];
}


per ridimensionare, una volta deciso il fattore di scala (numero decimale, 0.50 riduce della metà, 2.00 ingrandisce il doppio, ecc ecc) basta lanciare la funzione

resize(0.40, TRUE); per ridurre del 60% col controllo sulla dimensiona minima o
resize(0.90, FALSE); per ridurre del 10% sbattendosene dei controlli


a me funziona tutto, sono apprezzati vostri test e relativi feedback.

(ricordate di andare in beta grid su una sim su cui giri la versione 1.38.x del server!!) Help -> About SecondLife

io sono andato in Sandbox Wanderton
(Second Life Beta Server 1.38.0.202539)


*EDIT*

ho beccato al volo becky online e gli ho passato le modifiche.. a me andava tutto bene, se anche a lei funziona tutto a modo dovrebbe aggiornare il wiki.
http://wiki.secondlife.com/wiki/User:Be ... _Functions

Re: 5 nuove funzioni LSL in Preview Grid

MessaggioInviato: gio mar 11, 2010 3:34 pm
di Opensource Obscure
mi sfugge ancora chi sia questa becky e dove si trovi questo suo script. link?

cosa ha detto delle tue modifiche?

Re: 5 nuove funzioni LSL in Preview Grid

MessaggioInviato: gio mar 11, 2010 3:44 pm
di Keith Reinard
linkasti tu stesso alle pagine wiki di Becky Pippen mesi fa qui
viewtopic.php?p=240685#p240685
pensavo sapessi già a chi e a che cosa mi riferivo... :)
(dal penultimo Q&A si arriva alla pagina con le nuove funzioni)

e avevi linkato anche questa da qualche parte
http://wiki.secondlife.com/wiki/User:Be ... _Functions
(o ci sono arrivato io in altri modi, non ricordo)

il link l'avevo già messo in fondo al post precedente.

Le ho detto che a me funzionava, e che poteva testarlo anche lei prima di metterlo nel wiki, cosa che farà a giorni.

Re: 5 nuove funzioni LSL in Preview Grid

MessaggioInviato: gio mar 11, 2010 4:06 pm
di Opensource Obscure

Re: 5 nuove funzioni LSL in Preview Grid

MessaggioInviato: mer apr 21, 2010 7:09 pm
di Keith Reinard
hanno lanciato il nuovo rolling restart con i nuovi server e mi son perso l'eventone?
avevo letto in un post nel blog (che ovviamente non trovo) che il restante 80% sarebbe stato lanciato il 21 aprile.

infatti adesso anche la mia sandbox preferita e la land del forum girano sulla versione 1.38 \o/ (su cui non giravano quando erano stati avviati i server nelle pilot regions)

tutte le funzioni qui riportate sono operative, chi si vuol divertire si diverta pure :p