Forums

Help login failed by Plash on Thursday, 26.April 2012 18:22
Second Life connection impossible by Doggy on Thursday, 26.April 2012 17:25
Breedable pets et animals Second Life by aden on Saturday, 31.March 2012 19:13
Shapes Mesh by born Resident on Monday, 20.February 2012 11:20
Tuto Puppeteer by Josiane on Wednesday, 01.February 2012 13:34
Transparence de la tenue by hani amaterasu on Friday, 27.January 2012 22:50
Ajouter des faces, où des arêtes by brucie on Thursday, 26.January 2012 16:02

Qui est online

We have 532 guests and 1 member online

Publicité SL

Second Life avatars 3d>>

Social



Afficheur 5 faces à plat
User Rating: / 4
PoorBest 
Librairie Scripts
Written by Garmin K   
Ce script transforme une prim boîte standard en un panneau plat à 5 faces ; il utilise la fonction llSetPrimitiveParams avec des paramètres spécifiques.

 

//From an original idea of Johanna Hyacinth (see profile in world and her web site : http://johannahyacinth.blogspot.com but modelized with a script by Garmin Kawaguichi.

//Données globales
//La largeur et la hauteur vont permettre de calculer les proportions des faces
//La largeur des images affichées sur une face (en pixels par exemple)
integer imgWidth = 640;

//La hauteur des images affichées sur une face (en pixels par exemple)
integer imgHeight = 480;

//La hauteur de l'afficheur
float fscreenHeight = 1.0;
default
{
    state_entry()
    {
        llSetPrimitiveParams([PRIM_TYPE, PRIM_TYPE_PRISM, 0, <0.2, 0.8, 0.0>, 0.65, <0.0, 0.0, 0.0>, <1.0, 1.0, 0.0>, <0.0, 0.0, 0.0>, PRIM_SIZE, <0.01, (((float)imgWidth / (float)imgHeight) * 6.0 * fscreenHeight), fscreenHeight>]);
//1.- PRIM_TYPE, PRIM_TYPE_PRISM, 0, <0.2, 0.8, 0.0>, 0.65, <0.0, 0.0, 0.0>, <1.0, 1.0, 0.0>, <0.0, 0.0, 0.0> : un prisme avec Path Cut B = 0.2 et E = 0.8 ; Hollow à 65 ; Taper X et Y = 0 ; Size X et Y = 1.0

//2. - PRIM_SIZE, <0.01, ((float)imgWidth / (float)imgHeight) * 6.0, 1.0> : la taille de la prim est forcée à X = 0.01, Y = Z * 6 * (largeur de l'image / hauteur de l'image), Z = hauteur de la ligne d'écrans ; mais tenez compte que Y et/ou Z sont limité à 10 mmètres, si le rapport entre largeur et hauteur est de 1.333333 (cas d'une image en 640x480), la valeur maximum pour Z est de 1.25

        llSetPrimitiveParams([PRIM_TEXTURE, 3, "5748decc-f629-461c-9a36-a35a221fe21f", <2.5, 1.0, 0.0>, <-0.25, 0.0, 0.0>, 0.0, PRIM_TEXTURE, 7, "5748decc-f629-461c-9a36-a35a221fe21f", <1.0, 1.0, 0.0>, <0.0, 0.0, 0.0>, 0.0, PRIM_TEXTURE, 4, "5748decc-f629-461c-9a36-a35a221fe21f", <-15.4, 1.0, 0.0>, <-0.2, 0.0, 0.0>, 0.0, PRIM_TEXTURE, 6, "5748decc-f629-461c-9a36-a35a221fe21f", <1.0, 1.0, 0.0>, <0.0, 0.0, 0.0>, 0.0, PRIM_TEXTURE, 1, "5748decc-f629-461c-9a36-a35a221fe21f", <2.5, 1.0, 0.0>, <0.25, 0.0, 0.0>, 0.0]);
//3. -  De gauche à droite les numéros de face sont : 3, 7, 4, 6, et 1 ; mais les paramètres de textures pour les faces 3, 4, et 1 doivent être ajustés : (la texture dont l'UUID est 5748decc-f629-461c-9a36-a35a221fe21f est la texture standard blanche)
//Face 3 - PRIM_TEXTURE, 3, "5748decc-f629-461c-9a36-a35a221fe21f", <2.5, 1.0, 0.0>, <-0.25, 0.0, 0.0>, 0.0 => Hor repeat = 2.5 ; vert repeat = 1.0 ; hor offset = -0.250
//Face 4 - PRIM_TEXTURE, 4, "5748decc-f629-461c-9a36-a35a221fe21f", <-15.4, 1.0, 0.0>, <-0.2, 0.0, 0.0>, 0.0 => Hor repeat = 15.4 flipped ; vert repeat = 1.0 ; hor offset = -0.200
//Face 1 - PRIM_TEXTURE, 1, "5748decc-f629-461c-9a36-a35a221fe21f1", <2.5, 1.0, 0.0>, <0.25, 0.0, 0.0>, 0.0 => Hor repeat = 2.5 ; vert repeat = 1.0 ; hor offset = 0.250

        llSetPrimitiveParams([PRIM_COLOR, 0, <0.0, 0.0, 0.0>, 1.0, PRIM_COLOR, 1, <0.0, 0.0, 1.0>, 1.0, PRIM_COLOR, 2, <0.0, 1.0, 0.0>, 1.0, PRIM_COLOR, 3, <0.0, 1.0, 1.0>, 1.0, PRIM_COLOR, 4, <1.0, 0.0, 0.0>, 1.0, PRIM_COLOR, 5, <1.0, 0.0, 1.0>, 1.0, PRIM_COLOR, 6, <1.0, 1.0, 0.0>, 1.0, PRIM_COLOR, 7, <1.0, 1.0, 1.0>, 1.0]);
// Coloriage des faces; à remettre en blanc lors de l'utilisation normale
//PRIM_COLOR, 5, <1.0, 0.0, 1.0>, 1.0 => les couleurs RGB sont choisies en fonction du muméro de face (5 = 101, 7 = 111 etc)
    }
}

 


Poser un cube, le « Modifier » (Edit), choisir l’onglet Contenu (Content), y glisser le script, attendre 1 second et le travail se fait tout seul. Les couleurs sont faites exprès pour que l’on puisse distinguer les faces.
La lecture du script donne tous les détails sur la technique employée ; au passage admirer la redoutable complexité de l’instruction llSetPrimitiveParams et de l’usage que l’on peut en faire.
Il peut arriver, si vous modifier le script, que les proportions des faces ne correspondent pas à celles attendues ; n’oubliez pas que la largeur maximum d’une prim est de 10 mètres. Si le rapport largeur/hauteur déclaré pour une image que multiplient la hauteur de la prim que multiplie 6 est supérieur à 10 mètres alors le résultat ne sera pas conforme.
Exemple : pour des images de 1.3333 de rapport (ex : 640 x 480) et une hauteur de 1.25, la largeur de la prim sera pile poil 10 mètres alors que pour une hauteur de 1.2, la largeur sera de 9m60. Mais pour une hauteur de 1.5, la largeur de la prim sera toujours de 10 mètres, donc un mauvais rendu des images.
Il est possible de placer des images différentes sur chacune des 5 faces ;cela peut aussi être fait par script en remplaçant l'UUID de texture blanche par l'UUID d'une image de la bonne proportion.

 

 

Add comment

Si vous ne voyez pas vos messages c est que vous n êtes pas enregistré sur Avatars-3d en tant que membre. Ils seront examinés par un administrateur avant d être publié! Si vous désirez publier rapidement vos messages enregistrez vous ici

Security code
Refresh