Sl Italian Mentors-scripting Textures

  • October 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Sl Italian Mentors-scripting Textures as PDF for free.

More details

  • Words: 1,031
  • Pages: 15
SL Italian Mentors Lezioni di Scripting base Scriptare le Textures Maggio 2008

0. Cosa sono le Texture

Le texture sono delle immagini o fotografie, che vengono usate pesantemente in SL per dare vitalità e realtà alle costruzioni, agli oggetti e agli avatar. Le trovate nel vostro inventory nella cartella Textures e hanno come simbolo una griglia di colori oppure la cornice. Non c'è differenza fra le due tipologie, la Linden ha voluto distinguere le foto direttamente uploadate dalla funzione "snapshot" e le altre immagini utenti. Non confondete la "Texture" che contiene una immagine complessa con il colore o tinta che potete aggiungere ad una texture "Color". Su un prim potete aggiungere SIA una texture che un colore. Le texture vengono costruite nei seguenti modi: Esternamente dal proprio PC:

• scaricando immagini da internet (browser save as .jpg) • facendo snapshot sul vostro computer (programmi che scattano foto) • dalla vostra macchina fotografica • producendole con programmi di gestione di immagini (GIMP o PHOTOSHOP) Internamente da SL: • Facendo snapshot con il menù del client • Usando una texture che avete nel vostro inventory datavi da altri Tutte le volte che uploadate una immagine vi costa 10L$,

1. Dimensioni e tipo delle texture Le texture hanno dimensioni che sono normalmente multipli di 128 pixel. Un pixel è un punto che può essere Rosso, Verde o Blu Le dimensioni più diffuse sono: QUADRATE: •





256 x 256 (bassa risoluzione) occupa circa 200Kbyte 512 x 512 (media risoluzione) occupa circa 800 Kbyte 1024 x 1024 (alta risoluzione) occupar circa 3.5 Mbyte

RETTANGOLARI: - 256x512 - 512x1024 Come vedete una texture 1024x1024 è decisamente "grande". Una scena con 300 texture di questo tipo comporta lo scarico di quasi 1 GigaByte!!! Ecco perchè secondlife a volta sembra lento :( Le texture vengono anche usate per contenere i dati dei "sculpted prims", ma questo non è oggetto di questo corso. Se aprite una texture usata per uno sculpted vedrete una immagine con una sequenza casuale di punti rossi verdi blu. Le tipologie attualmente accettate come texture dall'image upload sono: Image (propriamente dette) quelle di questa lezione

Hair/Head/Upper-LowerBody - servono per le skin e gli abiti & Sculpted Prims. 2. Alpha channel e come mettere le textures su un prim. Vi sono un tipo particolare di texture trasparenti o semi trasparenti. Queste texture si dice che sono "alpha channel". La trasparenza consente di creare effetti molto potenti (finestre, abiti trasparenti, porte, effetto vetro). Sebbene non sia parte di questo corso la trasparenza (si manda ad apposito corso) è importante conoscere il significato della dicitura "alpha". Nello scripting l'alpha è un numero che va da 0 a 1

0 = trasparente 0.5 = semi-trasparente 1 = opaco Un prim ha un certo insieme di facce tipicamente da 1 a 8. Si possono mettere texture differenti per ogni faccia del prim. Un cubo con HOLE e CUT ha tipicamente 8 facce. Una sfera ha una sola faccia. Un cubo semplice ha 6 facce. ALL_SIDES La texture può essere messa su una faccia su un insieme di facce o su TUTTE le facce del prim. OFFSET

L'offset di una texture è una coppia (x,y) che indica di quanto la texture viene spostata lungo l'asse x o l'asse y. 0= non spostata, 0.5 = spostata a metà .75=spostata di 3/4 ROTAZIONE La rotazione di una texture è un float (es. PI/2 per 90 gradi) che indica la rotazione della texture. LA SCALA La scala di una texture è una coppia (x,y) che specifica quanto viene ristretta (>1) o amplificata (<1) lungo l'asse x o y. Es. (0.5,0.5) vuol dire amplifica mostrando ¼ della texture. (2,2) vuol dire mostrare una griglia di 2 x 2 = 4 textures uguali sul prim.

3. Istruzioni di scripting che agiscono sulle texture L'accesso alle texture da uno script in un prim o in un linkset consente di gestire le texture usando il nome della texture nell'inventory dell'oggetto oppure usando un numero UUID. L'accesso per UUID è possibile solo se la texture è full permissions (copy-modify-transfer). •





string llGetTexture(side) ○vede quale texture c'è sul lato ALL_SIDES se c'è un'unica texture su tutte le facce vector llGetTextureOffset(side) ○(x,y) indicano lo spostamento della texture float llGetTextureRot(side)



• •





○torna l'angolo di rotazione vector llGetTextureScale(side) ○ torna la “scala” llSetTexture(texture,side) llOffsetTexture(x,y,side) ○imposta l'offset della texture llRotateTexture(angle, side) ○imposta la rotazione llScaleTexture(x,y,side) ○imposta la scala della texture

analoghe operazioni possono essere fatte su un altro prim dello stesso linkset. Non consideriamo in questa lezione le istruzioni che agiscono sulle animazioni di una texture (llSetTextureAnim).

4. Esempio concreto di programma che manipola le texture Il programma indicato permette di "giocare" con un cubo cambiando da script: – la texture – l'offset – la rotazione – la scale Questo viene ottenuto facendo uno script che ogni volta che viene toccato, cambia i parametri della texture sul cubo.

Ecco lo script: integer stato=0; // (1) per passare di stato in stato default { state_entry() { stato=0; // (2) uso la UUID di una texture neutra llSetTexture("8b5fec65-8d8d-9dc5-cda8-8fdf2716e361",ALL_SIDES); llRotateTexture(0,ALL_SIDES); // (3) resetto i parametri llOffsetTexture(0,0,ALL_SIDES); llScaleTexture(1,1,ALL_SIDES); llSetText("Spiegazione textures",<1,0,0>,1); } touch_start(integer total_number)

{

stato=stato+1; if(stato==1){ // (4) llSetText("Imposto la texture1...",<1,1,1>,1); llSetTexture("Texture1",ALL_SIDES); }

if(stato==2) { //(5) llSetText("Imposto la texture2...",<1,1,1>,1); llSetTexture("Texture2",ALL_SIDES); } if(stato==3){ //(6) llSetText("Ruoto di 45 gradi la texture...",<1,1,1>,1); llRotateTexture(PI/4,ALL_SIDES); } if(stato==4) { //(7) llSetText("Rimetto la rotazione a 0 e sposto la x di 1/3",<1,1,1>,1); llRotateTexture(0,ALL_SIDES); llOffsetTexture(0.333,0,ALL_SIDES); } if(stato==5) { //(8) llSetText("Metto offset a 0.25, 0.25 e metto scale a 0.5 0.5",<1,1,1>,1); llOffsetTexture(0.25,0.25,ALL_SIDES); llScaleTexture(0.5,0.5,ALL_SIDES);

stato=0; } if(stato==6) { //(9) llSetText("Restarting from start",<1,1,1>,1); llResetScript(); } } }

Commento: come vedete si possono fare un po' di giochi con le texture, e uno dei principali è quello di riuscire a visualizzare un frammento di texture (base per avere tante immagini e uploadarne una sola). 5. Cosa fare successivamente.

* Usando llSetTimerEvent() si possono fare dei complicati giochi di movimento delle texture. * Usando coppie di texture Finestra aperta (trasparente) Finestra chiusa e comandi linkmessage o llSay si possono fare script che aprono/chiudono finestre. * In combinazione con il movimento dei prim si possono avere effetti scenografici spettacolari * analogo con le funzioni che impostano il colore, la trasparenza, le caratteristiche del prim ecc..

Related Documents

Sl
May 2020 12
Sl
April 2020 22
Sl
April 2020 22
Italian
November 2019 52
Textures Collection
May 2020 10