Bannière

Derniers messages des forums

  • Je suis ravi de decouvrir ce site , C est impeccab... Lire plus...
  • Bjr Je recherche jeune artiste sur sl qui souhaite... Lire plus...
  • Bonjour, commencer déja par apprendre à utiliser g... Lire plus...
  • Bonjour, depuis quelques temps, je pense à devenir... Lire plus...
  • Nathan J'ai reussi en me connectant sur Svarga! Es... Lire plus...

Qui est online

Nous avons 170 invités et 1 membre en ligne


Afficheur 5 faces à plat
Note des utilisateurs: / 4
MauvaisTrès bien 
Librairie Scripts
Écrit par 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.

 

 

Messages 

 
#1 Barbidule 2009-04-28 16:59 hoo qu'il est bien ce prim a 5 faces ^^
(hé Surfaqua, fallait pas me dire que vous attendiez qu'on écrive dans vos forums :)

pour ceux qui auraient peur du script, ne vous préoccupez pas du script (sauf pour apprendre bien sur), mais utilisez le prim obtenu, il est tout bien paramétré pour y mettre ses textures à la main. Et gardez en précieusement une copie dans votre inventaire si vous avez besoin d'économiser des prims.
Ce prim devrait être obligatoire dans tout bon paquet de freebie :)
Citer
 

Ajouter un Message

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

Code de sécurité
Rafraîchir