Elf Dream text

english spoken link See this page in english english spoken link

(Permalien)

(Permalien) Cette page rassemble des conseils et des suggestions pour les créateurs de plantes virtuelles dans le système de mondes virtuels Halcyon, afin de mieux répondre aux besoins des utilisateurs et des paysagistes (y compris des robots planteurs). Les plantes sont souvent vues comme secondaires, mais elles sont l'un des éléments les plus importants des paysages, omniprésentes dans les mondes virtuels. Nous avons donc besoin d'une grande variété de plantes de bonne qualité, et surtout avec un faible land impact et des LOD adéquates pour rester visible dans de grands paysages.

Pour les lecteurs en diagonale, les points importants sont soulignés de cette manière.

Cette page a été créée par Yichard Muni (Richard Trigaux) afin d'aider au progrès des mondes virtuels Halcyon. Vous êtes encouragé à la sauvegarder et à la reproduire, tant que vous retenez cette attribution. Elle est dans la Wayback Machine en date du 27 Novembre 2020

Si vous avez d'autres idées à partager avec les autres jardiniers virtuels, envoyez un mot, afin que ce document puisse être amélioré.

Comme je n'ai plus les crédits de la plupart des auteurs de ces idées, toute autre suggestion sera ajoutée de manière anonyme, comme la tradition des vrais jardiniers.

Prims, sculpties ou meshs?

(Permalien) Etant donné leurs propriétés différentes, un vendeur doit toujours indiquer si un objet est de type prim, mesh ou sculptie.

Les prims resteront, comme la façon la plus appropriable de construire. Mais ils donnent un aspect carré, tout en augmentant rapidement leur land impact.

Les sculpties ont été un système de transition, qui permet d'obtenir de meilleures formes que les prims. Mais elles ont un important land impact, même si elles sont comptées comme 1 par sculptie. En outre, elles sont peu visibles de loin, car nous ne pouvons pas contrôler les LOD les plus bas. Second Life est forcé de les garder, mais Halcyon peut être l'occasion d'un nouveau départ.

Les meshs permettent des formes plus naturelles, un meilleur contrôle des LOD lointains et un land impact beaucoup plus faible. De plus, les fichiers 3D collada ne sont pas liés à un système de mondes virtuels donné. Cependant, leur création nécessite l'apprentissage d'un logiciel complexe comme Blender. Il faut espérer qu'un logiciel plus simple fera son apparition.

 

Il est donc recommandable d'utiliser des meshs pour tout nouveau projet.

 

Pour les personnes qui ne savent pas créer des meshs, il y a quelques trucs:

☻La forme simple de plante formée de trois prims à des angles de 120° est toujours utilisable, pour les petites plantes, ou pour les forêts si on ne regarde pas de trop près. Ces prims doivent avoir un léger taper pour réduire leur land impact réel, mais elles sont toujours comptées chacune comme LI = 1.

☻Le meilleur système est d'utiliser les meshs simples fournis à la fin de ce document, que tout le monde peut utiliser sans avoir à apprendre à fabriquer des meshs. Leur land impact (une fois lié) est beaucoup plus faible, 0,066 pour la plante 3 prims, et 0,047 pour l'autre.

☻Il y a aussi des prims en mesh, dont le land impact est très intéressant, que vous pouvez utiliser comme des prims, sauf que les paramètres de changement de forme ne fonctionnent pas.

centrage et placement

(Permalien) Les jardiniers et les paysagistes sont souvent embêtés par des plantes dont l'origine ou la rotation sont illogiques. Donc, dans l'idéal:

☻ Les plantes doivent avoir une rotation <0,0,0>. (A la rigueur, un robot planteur peut comprendre qu'une rotation non nulle ne doit pas être modifiée, par exemple une plante avec un côté ensoleillé)

L'origine doit être au niveau du sol, et centrée sur la tige, le tronc, le pivot, le vase, etc. Dans le cas des plantes en mesh simples, cela peut se faire avec un petit triangle supplémentaire placé en dessous, afin de centrer le mesh du tronc au niveau du sol. Pour les plantes faites à partir de prims ou de meshs multiples, il faut prévoir une prim racine correctement centrée, ou bien utiliser des prims avec un slice de 0,5 à 1.

☻Si vos plantes sont modifiables, vérifiez qu'aucune prim n'est proche de la taille minimum de 0,001m (x, y ou z) (0,01 dans SL), car cela empêche l'utilisateur de rétrécir la plante au-delà de ce point. Pensez aux dioramas, où les plantes peuvent être réduites de 10 ou plus.

☻ Avec des paysages de plus en plus grands, nous avons besoin de robots planteurs automatisés. Mais il faut que les critères ci-dessus soient strictement appliqués, sinon ils planteront des trucs cul par-dessus tête. Et après, vous direz que les robots sont bêtes.

☻ Les robots planteurs automatiques doivent connaître les dimensions globales des plantes, mais ils ne peuvent voir que les dimensions de la prim racine. Avec des meshs, vous pouvez ajouter quelques petits triangles supplémentaires à cet effet, et aussi centrer la racine au niveau du sol. Avec les prims, vous pouvez ajouter une prim plate pour l'ombre.

☻ Si votre plante est entièrement phantom, vous pouvez aussi utiliser à cette fin le LowestLI.dae fourni à la fin de cette page, un mesh avec le minimum land impact possible.

Robots planteurs

(Permalien) Un robot planteur est un objet scripté capable de scanner un terrain et de rezzer des plantes automatiquement, de manière intelligente, et donc capable de créer des paysages réalistes sans le travail fastidieux de placer manuellement des centaines de plantes. Avec des régions étendues et bon marché, ils deviendront de plus en plus indispensables.

L'idée serait de pouvoir permettre à un propriétaire de parcelle de mettre n'importe quelle plante dans l'inventaire du planteur, et de le laisser fonctionner seul automatiquement, pour créer des paysages.

Si l'on considère que les plantes ont une vie, elles peuvent être scriptées pour grandir, fleurir et mourir d'elles-mêmes. Le robot planteur doit pouvoir le savoir et les remplacer.

Un robot planteur peut détecter et rezzer des objets sans problème. Mais si on veut qu'il puisse les modifier, il faut que ces objets aient un script. Si on veut pouvoir mettre ces scripts à jour, il faut leur attribuer un numéro pin en rezzant. Voir la fonction llSetRemoteScriptAccessPin

Fantôme ou dur

(Permalien) Il est ennuyeux d'être coincé dans une scène parce qu'une plante fait obstacle. La règle ici est que, dans la plupart des cas, une plante doit être mise globalement fantôme.

Cependant, une haie, un vase ou un gros tronc doivent pouvoir constituer un obstacle solide. C'est la physical shape, et cette propriété peut être ajustée prim par prim, dans l'onglet features de la fenêtre de construction:

None: la prim (ou le mesh) est comme fantôme.

Convex hull: la prim est solide, mais simplifié en une forme entièrement convexe. Cela permet d'économiser la charge du serveur, et peut être utilisé pour des formes simples: troncs, bocaux, parterres de fleurs, rochers, etc.

Prim: Cette fois, les creux sont respectés, par exemple la forme physique d'un arbre ramifié apparaît comme telle, et non pas comme une boule. Mais cela demande davantage de travail au serveur.

D'une manière générale, plus la forme physique est simple, mieux c'est. Cela peut être réglé dans l'importateur de mesh, où vous pouvez sélectionner n'importe lequel des LODs comme physical shape, qui est ainsi simplifiée par rapport à la forme visible.

Vous pouvez aussi créer un fichier collada pour votre forme physique, et l'importer dans l'onglet Physics de la fenêtre d'importation de mesh.

Mais le mieux reste d'ajouter une prim solide mais invisible avec une forme très simple, ou un mesh invisible très simple.

Permissions

(Permalien) Les permissions sont un point important pour l'acheteur prendre sa décision. Elles doivent toujours être indiquées par le vendeur.

☻ En tant que créateur, vous décidez des permissions que vous souhaitez. Mais merci de considérer ce qui suit:

☻ Les paysagistes aiment les plantes modifiables, qu'ils peuvent redimensionner, ou en prendre des parties, ou changer les textures et les couleurs. Les textures sont généralement protégées contre la copie lors des modifications, de sorte que si vous voulez les offrir, vous devez les fournir en tant qu'inventaire de la prim racine, ou dans une boîte avec la plante.

☻ Il est également souhaitable de pouvoir modifier certaines parties des prims, comme les couleurs ou les textures des fleurs. Pour cela, elles doivent être une face distincte (dans le monde) avec une texture distincte (material dans Blender).

☻ Il y a un projet Halcyon de permission d'exportation (de votre contribution uniquement)

☻ Mundo Market permettra également à un même objet d'apparaître dans plusieurs mondes. Si vous l'avez acheté dans un seul monde, il devrait pouvoir être livré dans tous les mondes en relation. Le créateur peut contrôler dans quel monde il peut apparaître.

Avoir des textures de belles couleurs

(Permalien) C'est très important. Un problème courant avec les plantes est que les textures sont plus grises que nature, ce qui crée ce «style Second Life» sombre et gris, contrastant avec d'autres systèmes de monde virtuel, comme There.com, avec des couleurs naturelles ou gaies.

Mais surtout, le fait de fournir des textures grises enlève le choix au paysagiste. En effet, il est toujours possible de griser une couleur vive, mais on ne peut pas rendre vive une couleur grisée. De sorte que:

☻ Il faut offrir des textures avec des couleurs saturées. De cette façon, l'utilisateur final peut ajouter du gris si c'est ce qu'il souhaite vraiment.

☻ Avoir des textures végétales avec des couleurs claires permet au constructeur d'ajouter un ton général, plus foncé si nécessaire.

☻ Avoir des textures contrastées, pour garder les détails même lorsqu'elles sont mélangées à une couleur unie.

☻Utilisez le conseil décrit à propos des textures alpha, qui entoure automatiquement toutes les formes avec une couleur de votre choix, rendant les feuillages plus visibles.

Une seule texture par prim, ou plusieurs?

(Permalien) Pour un utilisateur, il est souhaitable d'avoir des textures séparées pour les feuilles, les fleurs, le tronc, les fruits, etc. au lieu d'une texture unique pour tout. Cela permet à l'utilisateur final de modifier spécifiquement la couleur ou la tonalité d'une partie, comme une fleur.

La coutume héritée des graphistes de cinéma consiste à texturer totalement un objet avec une texture commune unique. Mais ils font cela avec des outils de création 3D coûteux comme 3DSmax, capables de recalculer toute l'UV map instantanément après toute modification, tout en actualisant la texture. Cela convient bien aux décors de cinéma, qui ne sont utilisés qu'une seule fois et qui ne sont pas limités par la facilité d'utilisation, les transferts Internet ou le land impact comme dans les mondes virtuels. Mais il n'existe pas d'outil gratuit pour faire cela dans Second Life, Blender ou Halcyon, et calculer ou modifier manuellement une UV map commune est un cauchemar. Il est donc préférable d'utiliser des textures distinctes, une par face, qui sont beaucoup plus simples à utiliser, plus faciles à maintenir, et modifiables par l'utilisateur final.

Couvertures herbeuses

(Permalien) Ce sont des objets importants, généralement réalisés avec un réseau de faces de mesh verticales. La difficulté consiste à relier plusieurs d'entre elles de façon continue. Il existe deux solutions:

☻ Une bordure floue à hauteur décroissante. De cette façon, deux objets qui se chevauchent ressemblent à une couverture continue, avec une large tolérance sur la position.

☻ Une bordure franche. Dans ce cas, il est plus difficile d'obtenir une couverture continue, et cela nécessite plusieurs tailles, et des tailles plus petites pour remplir les trous.

☻ La meilleure solution semble être de mélanger les deux façons, par exemple avec un quart de cercle: les deux rayons sont des bords francs, et la périphérie varie progressivement en hauteur.

☻ Des hauteur décroissantes vers le bord compenseront également un problème courant: de nombreuses tiges ressemblent à un mur avec une hauteur stricte. Les tiges et les faces doivent avoir des hauteurs différentes. L'utilisateur peut y remédier en plaçant chaque plaque d'herbe légèrement inclinée.

☻ Les LOD plus élevés ne doivent pas disparaître avec la distance, tout en ayant un nombre décroissant de triangles. Il faut donc que la même texture soit appliquée de manière plus dense, pour compenser un chevauchement moins important. Pensez que l'on doit avoir le même nombre de tiges pour chaque LOD.

☻Le LOD le plus élevé peut être très simple, mais il doit toujours occuper entièrement le même volume, afin que la couverture herbeuse reste visible quelle que soit la distance. La meilleure solution semble être d'utiliser une pyramide tronquée, dont la texture est appliquée avec un nombre de répétition élevé, afin de conserver la sensation de transparence partielle.

Roches

(Permalien) Une texture gris clair ou beige clair permet de colorer les roches en fonction du contexte. Les textures sombres ne permettent pas cette liberté.

Il est préférable d'avoir des roches géologiquement exactes, et aussi des textures coordonnées avec les angles ou les strates dans la forme. Les photos de vraies roches donnent d'excellents résultats, si elles sont homogènes et si nécessaire orientées d'après les strates. On peut trouver des textures sans raccord de ce type, et il est relativement facile de les rendre sans raccord dans un logiciel graphique, sans nécessiter de talent artistique.

Cascades

(Permalien) Elles sont généralement réalisés avec une texture animée sur un mesh. Un taux de répétition différent en bas fera que l'eau tombera plus vite en bas qu'en haut. Une section de sphère allongée verticalement peut donner à peu près le même résultat. Mais avec un mesh, vous pouvez faire en sorte que le centre du courant coule plus vite que les côtés. Avec plusieurs de ces prims, plus quelques particules pour l'écume, vous pouvez faire des cataractes étonnantes.

Flexy prims

(Permalien) Les prims flexi ou flexy prims ou flexies sont un moyen courant de faire se balancer des plantes dans le vent. Mais elles ont un important land impact. Idéalement, nous devrions disposer de meshs plats flexibles à cette fin, et d'un système de vent plus personnalisable.

Rezzer des textures alpha, bug alpha, lag

☻ (Permalien) Le bug alpha se produit lorsque nous voyons à travers plusieurs prims avec des textures de transparence alpha: une seule de ces textures apparaît au hasard, et souvent elles clignotent, alternant de l'une à l'autre. Il existe une solution relativement simple qui fonctionne pour la plupart des plantes, à l'exception des parties intrinsèquement floues comme le coton ou les épis de blé. Dans la fenêtre de construction, onglet textures, près de la mini image de la texture, il y a une case à cocher appelée «Alpha mode». Sélectionnez «Alpha masking », ce qui ouvre un champ de valeur appelé «Mask cutoff», que en première approximation vous fixerez à 128. Le masquage alpha remplace la transparence progressive par une transparence en tout ou rien, ce qui est beaucoup plus rapide pour le navigateur, réduisant ainsi le lag. Cela élimine également le bug alpha, et donne de meilleurs résultats pour les plantes. Selon la valeur de Mask cutoff, toute la texture est visible, ou une partie de celle-ci, ou rien. Comme souvent les parties comme les feuilles ont une bordure floue, un seuil alpha élevé en mangera une partie, ou au contraire un seuil alpha faible laissera une bordure plus sombre, ce qui peut être souhaitable pour éviter que toutes les feuilles ne se fondent en une seule tache verte. Cela permet également des textures plus petites, car elles apparaissent quand même avec des bords nets, non pixellisés.

☻ Un autre problème est que, lorsqu'elle ne sont pas entièrement chargées, les textures alpha apparaissent souvent comme des carré noirs disgracieux qui bloquent le paysage. Cela s'explique par le fait que tous les pixels 100% transparents d'une texture sont considérés comme noirs par défaut. Pour éviter cela, vous pouvez ajouter à votre texture une couche 99% transparen t e d'une couleur appropriée, comme un vert plus foncé pour les feuillages.

Cette astuce est particulièrement intéressante avec le Alpha Mode comme Alpha blending, en créant automatiquement un bord tout autour des feuilles, dont vous pouvez définir la couleur. Habituellement, il est plus foncé que les feuilles, ce qui améliore leur visibilité.

Land impact et mesh

(Permalien) Les vendeurs doivent toujours indiquer le land impact de leur création. Parfois par mètre ou par mètre carré.

Dans les mondes où la surface est bon marché, les plantes peuvent se compter par milliers dans une scène. Il faut donc faire très attention à ce qu'elles aient un land impact aussi faible que possible. Ici encore, les meshs battent de loin les autres solutions, mais cette section fournit également une aide aux non-mesheurs.

Prims: chaque prim système dans un objet contribue à 1 au calcul du land impact, quelle que soit sa complexité. Cette complexité varie néanmoins beaucoup: 12 triangles pour une boîte avec taper, 108 pour la boîte commune, et 1152 pour un tore. Tous comptent de la même façon dans le calcul du land impact, mais il est très conseillé d'utiliser des boîtes avec taper pour réduire le land impact réel.

Sculpties: une sculptie basée sur une texture de 16x16 comporte 512 triangles, et avec 64x64, elle comporte 8192 triangles, soit 40 prims. Mais le land impact est toujours compté pour 1. Une forêt de grandes sculpties aurait donc un lag terrible.

Meshs: Aujourd'hui, SL et Halcyon calculent le land impact en fonction du nombre de triangles dans un objet, au lieu du nombre de prims. En outre, Halcyon utilisant de meilleurs serveurs, il permet un calcul plus favorable du land impact. Ceci est très avantageux pour les plantes, qui peuvent être très nombreuses, mais avec peu de triangles chacune.

☻Bien sûr, même un modélisateur débutant peut faire de meilleurs meshs que les vieux arbres à trois prims. Mais même les trois prims battent de loin les sculpties, surtout avec taper. C'est pourquoi:

Pour les non-mesheurs, plusieurs fichiers Collada simples sont fournis à la fin de ce document, avec les instructions pour les importer dans le monde. Le premier contient une plante à 3 meshes de 120°, le second une boîte à deux faces et deux triangles à deux faces, et le troisième peut servir de prim racine. Vous pouvez les utiliser pour créer des arbres ou des plantes, ou même des feuillages plus complexes, avec un land impact pratiquement aussi bas que des meshs complexes. C'est suffisant dans de nombreux cas, et de toute façon c'est mieux que rien. Ces meshs sont si légers qu'ils peuvent être linkés par centaines avant d'augmenter significativement le land impact. En plus, puisque vous les avez importés, vous apparaissez comme le créateur: vous pouvez les sauvegarder sur votre disque, les vendre, les mettre en OAR, avec ma licence complète pour Halcyon.

Réduire le land impact avec les champs
«☑ generate normals» et «crease angle».

(Permalien) Les normales sont des vecteurs associés à chaque facette d'un mesh, pour lui donner un aspect arrondi, au lieu de facettes.

Si le mesh que vous importez n'a pas de normales, la case à cocher «☑ generate normals» permet d'en créer. Mais l'importer a alors besoin que vous indiquiez un «crease angle» (angle de pliage), sous lequel deux facettes adjacentes auront l'air arrondies, au lieu de facettes. Exemple, pour qu'un cylindre ait l'air rond, mais toujours avec des extrémités carrées.

Quand un faible «crease angle» est sélectionné (ou la case non cochée), l'importer crée de nombreux vertexes supplémentaires, qui ne sont pas dans votre fichier. Problème, le land impact est calculé d'après le nombre de vertexes, alors qu'en réalité c'est le nombre de facettes qui compte. C'est certainement une mauvaise décision de conception, qui donne une valeur du land impact faussement élevée.

Mais il y a une solution:

Cocher «☑ generate normals» et régler le «crease angle» à 180° corrige le land impact calculé, sans toutefois modifier le land impact réel (par triangles) tel que ressenti par le viewer. L'inconvénient toutefois est que votre plante apparaîtra entièrement arrondie. C'est à vous de voir, mais pour des objets destinés à être par milliers, le land impact passe en premier, alors que l'arrondi n'est pas aussi visible qu'on pourrait le craindre.

☻Pour que cela marche, il faut que vous ayez supprimé les doubles vertexes dans Blender auparavant. L'importer ne le fait pas.

LOD

(Permalien) LOD signifie Level Of Details (niveau de détail). Il s'agit de différentes versions d'un même objet: High LOD, medium LOD, low LOD et lowest LOD, également appelés respectivement LOD1, LOD2, LOD3, LOD4. Le LOD supérieur est celui que vous téléchargez ou construisez, tandis que les autres sont simplifiés. Afin de minimiser le land impact, le navigateur affiche le LOD élevée à courte distance, et les LOD simplifiées à plus grande distance.

La substitution à des LOD inférieurs est ce qui fait que l'objet semble déformé à une certaine distance, ou qu'il puisse même disparaître avec la distance. C'est particulièrement mauvais pour les sculpties qui disparaissent souvent au-delà d'une certaine distance. Mais c'est aussi problématique pour les meshs, si vous vous fiez aveuglément aux LODs générés automatiquement lors de l'importation d'un mesh (les quatre lignes de la fenêtre d'importation)

Les solutions sont:

☻ Mettre le LOD factor à 4 fonctionne pour vous, mais pas pour les autres, surtout les débutants. De plus, cela augmente le lag de votre navigateur.

☻ Dans la fenêtre d'importation des meshs, définir une réduction de triangles appropriée pour chaque LOD. Les meilleures valeurs semblent être:

☺High LOD: c'est le nombre de triangles de votre mesh, tel que vous l'avez créé

☺medium LOD: mettre le même nombre que le High LOD

☺low LOD: moitié du medium LOD

☺lowest LOD: un tiers du low LOD.

Vérifiez que vous avez toujours au moins un contour brut de l'objet dans le lowest LOD, sinon il disparaîtra avec la distance. Tenez également compte du fait que dans les objets, des petits mais importantes meshs peuvent disparaître avant les plus grands. Vous pouvez les importer séparément.

☻Crées vos propres fichiers LOD collada, et importez-les séparément dans chaque ligne LOD, en utilisant «from file». La difficulté est que tous les matériaux (Blender) ou côtés (dans le monde) doivent être dans le même ordre et avec les mêmes noms, dans chaque fichier LOD. Mais Blender s'embrouille beaucoup avec les noms des matériaux. Dans Blender, vous pouvez définir l'ordre des matériaux avec les flèches haut et bas juste à droite de la liste des matériaux. Mais le mieux semble être d'importer chaque prim séparément, avec ses propres fichiers LOD.

☻Pour les plantes, le meilleur moyen semble de prendre des photos de la plante à une certaine distance, et de les utiliser pour un mesh simple à trois boîtes pour les LOD les plus bas. Le problème avec cette approche est que toutes les textures (matériaux dans Collada et Blender, faces dans le monde) doivent être présents dans toutes les LODs, et dans le même ordre (voir le point précédent). Cela peut être fait en ajoutant de petits triangles cachés des matériaux inutilisés dans chaque mesh de LOD.

Fichiers collada simples pour des plantes mesh

(Permalien) Vous trouverez ci-dessous trois fichiers collada contenant des éléments de mesh simples couvrant la plupart des besoins des plantes, permettant la construction de meshs dans le monde, par des personnes non expertes en la matière.

☺Selectionnez tout le texte en bleu dans les boĆ®tes ci-dessous, du premier au dernier caractère, sans rajouter de lignes blanches.

☺copiez-collez le texte dans un éditeur de texte (bloc-notes, notepad++, etc.)

☺Assurez-vous bien d'utiliser un véritable éditeur de texte, ou un format de texte authentique. Certains traitements de texte changent les traits d'union ou les apostrophes en caractères fantaisie, ce qui ne fonctionnerait pas. Pour autant que je sache, Libre Office fonctionne.

☺sauvez en format texte, avec les noms indiqués et le type de fichier collada:.dae.

☺importez ces fichiers dans le monde, comme meshs.

☺Dans la fenêtre d'importation, dans les quatre lignes LOD, il vaut mieux remplacer «generate» par «use LOD above». Sinon, votre plante disparaîtra au loin.

☺Comme le système vous considère comme le créateur, vous pouvez partager, vendre, exporter, mettre en OAR, tous vos objets réalisés avec ces fichiers.

☺ Ce contenu est sous licence de ©Yichard Muni (Richard Trigaux) et peut être utilisé librement à toutes fins dans les mondes Halcyon. Attribution demandée lorsque cela est raisonnablement possible. Ne pas modifier le nom de l'auteur. Ne pas se prétendre l'auteur. Ne pas revendre ces fichiers directement.

 

 

 

3BoxesPlant.dae contient un mesh pour plante à 3 prims à 120° et un plan de sol comme prim racine. LI=0,066 dans Halcyon

☺Une fois dans le monde, dé-lier et re-lier le prim racine (le plan de sol)

<?xml version="1.0" encoding="utf-8"?>
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
<asset>
<contributor>
<author>Copyright Yichard Muni (Richard Trigaux) free use for Halcyon worlds</author>
<authoring_tool>Blender 2.78.0 commit date:2017-02-24, commit time:14:33, hash:e92f235283</authoring_tool>
</contributor>
<created>2020-11-02T13:45:58</created>
<modified>2020-11-02T13:45:58</modified>
<unit name="meter" meter="1"/>
<up_axis>Z_UP</up_axis>
</asset>
<library_images/>
<library_effects>
<effect id="Material_001-effect">
<profile_COMMON>
<technique sid="common">
<phong>
<emission>
<color sid="emission">0 0 0 1</color>
</emission>
<ambient>
<color sid="ambient">0 0 0 1</color>
</ambient>
<diffuse>
<color sid="diffuse">0.176604 0.64 0 1</color>
</diffuse>
<specular>
<color sid="specular">0.5 0.5 0.5 1</color>
</specular>
<shininess>
<float sid="shininess">50</float>
</shininess>
<index_of_refraction>
<float sid="index_of_refraction">1</float>
</index_of_refraction>
</phong>
</technique>
</profile_COMMON>
</effect>
<effect id="Material_002-effect">
<profile_COMMON>
<technique sid="common">
<phong>
<emission>
<color sid="emission">0 0 0 1</color>
</emission>
<ambient>
<color sid="ambient">0 0 0 1</color>
</ambient>
<diffuse>
<color sid="diffuse">0 0.64 0.1014868 1</color>
</diffuse>
<specular>
<color sid="specular">0.5 0.5 0.5 1</color>
</specular>
<shininess>
<float sid="shininess">50</float>
</shininess>
<index_of_refraction>
<float sid="index_of_refraction">1</float>
</index_of_refraction>
</phong>
</technique>
</profile_COMMON>
</effect>
<effect id="Material_003-effect">
<profile_COMMON>
<technique sid="common">
<phong>
<emission>
<color sid="emission">0 0 0 1</color>
</emission>
<ambient>
<color sid="ambient">0 0 0 1</color>
</ambient>
<diffuse>
<color sid="diffuse">0.64 0 0.002021337 1</color>
</diffuse>
<specular>
<color sid="specular">0.5 0.5 0.5 1</color>
</specular>
<shininess>
<float sid="shininess">50</float>
</shininess>
<index_of_refraction>
<float sid="index_of_refraction">1</float>
</index_of_refraction>
</phong>
</technique>
</profile_COMMON>
</effect>
</library_effects>
<library_materials>
<material id="Material_001-material" name="Material_001">
<instance_effect url="#Material_001-effect"/>
</material>
<material id="Material_002-material" name="Material_002">
<instance_effect url="#Material_002-effect"/>
</material>
<material id="Material_003-material" name="Material_003">
<instance_effect url="#Material_003-effect"/>
</material>
</library_materials>
<library_geometries>
<geometry id="Cube-mesh" name="Cube">
<mesh>
<source id="Cube-mesh-positions">
<float_array id="Cube-mesh-positions-array" count="24">-0.5 0.01 -1 -0.5 0.01 0 0.5 0.01 -1 0.5 0.01 0 -0.5 -0.01 -1 -0.5 -0.01 0 0.5 -0.01 -1 0.5 -0.01 0</float_array>
<technique_common>
<accessor source="#Cube-mesh-positions-array" count="8" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube-mesh-normals">
<float_array id="Cube-mesh-normals-array" count="6">0 1 0 0 -1 0</float_array>
<technique_common>
<accessor source="#Cube-mesh-normals-array" count="2" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube-mesh-map-0">
<float_array id="Cube-mesh-map-0-array" count="16">1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0</float_array>
<technique_common>
<accessor source="#Cube-mesh-map-0-array" count="8" stride="2">
<param name="S" type="float"/>
<param name="T" type="float"/>
</accessor>
</technique_common>
</source>
<vertices id="Cube-mesh-vertices">
<input semantic="POSITION" source="#Cube-mesh-positions"/>
</vertices>
<polylist material="Material_001-material" count="1">
<input semantic="VERTEX" source="#Cube-mesh-vertices" offset="0"/>
<input semantic="NORMAL" source="#Cube-mesh-normals" offset="1"/>
<input semantic="TEXCOORD" source="#Cube-mesh-map-0" offset="2" set="0"/>
<vcount>4 </vcount>
<p>6 1 4 7 1 5 5 1 6 4 1 7</p>
</polylist>
<polylist material="Material_002-material" count="1">
<input semantic="VERTEX" source="#Cube-mesh-vertices" offset="0"/>
<input semantic="NORMAL" source="#Cube-mesh-normals" offset="1"/>
<input semantic="TEXCOORD" source="#Cube-mesh-map-0" offset="2" set="0"/>
<vcount>4 </vcount>
<p>0 0 0 1 0 1 3 0 2 2 0 3</p>
</polylist>
</mesh>
</geometry>
<geometry id="Cube_005-mesh" name="Cube.005">
<mesh>
<source id="Cube_005-mesh-positions">
<float_array id="Cube_005-mesh-positions-array" count="24">-0.5 0.01 -1 -0.5 0.01 0 0.5 0.01 -1 0.5 0.01 0 -0.5 -0.01 -1 -0.5 -0.01 0 0.5 -0.1 -1 0.5 -0.01 0</float_array>
<technique_common>
<accessor source="#Cube_005-mesh-positions-array" count="8" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube_005-mesh-normals">
<float_array id="Cube_005-mesh-normals-array" count="6">0 1 0 0 -1 0</float_array>
<technique_common>
<accessor source="#Cube_005-mesh-normals-array" count="2" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube_005-mesh-map-0">
<float_array id="Cube_005-mesh-map-0-array" count="16">1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0</float_array>
<technique_common>
<accessor source="#Cube_005-mesh-map-0-array" count="8" stride="2">
<param name="S" type="float"/>
<param name="T" type="float"/>
</accessor>
</technique_common>
</source>
<vertices id="Cube_005-mesh-vertices">
<input semantic="POSITION" source="#Cube_005-mesh-positions"/>
</vertices>
<polylist material="Material_001-material" count="1">
<input semantic="VERTEX" source="#Cube_005-mesh-vertices" offset="0"/>
<input semantic="NORMAL" source="#Cube_005-mesh-normals" offset="1"/>
<input semantic="TEXCOORD" source="#Cube_005-mesh-map-0" offset="2" set="0"/>
<vcount>4 </vcount>
<p>6 1 4 7 1 5 5 1 6 4 1 7</p>
</polylist>
<polylist material="Material_002-material" count="1">
<input semantic="VERTEX" source="#Cube_005-mesh-vertices" offset="0"/>
<input semantic="NORMAL" source="#Cube_005-mesh-normals" offset="1"/>
<input semantic="TEXCOORD" source="#Cube_005-mesh-map-0" offset="2" set="0"/>
<vcount>4 </vcount>
<p>0 0 0 1 0 1 3 0 2 2 0 3</p>
</polylist>
</mesh>
</geometry>
<geometry id="Cube_006-mesh" name="Cube.006">
<mesh>
<source id="Cube_006-mesh-positions">
<float_array id="Cube_006-mesh-positions-array" count="24">-0.5 0.01 -1 -0.5 0.01 0 0.5 0.01 -1 0.5 0.01 0 -0.5 -0.01 -1 -0.5 -0.01 0 0.5 -0.01 -1 0.5 -0.01 0</float_array>
<technique_common>
<accessor source="#Cube_006-mesh-positions-array" count="8" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube_006-mesh-normals">
<float_array id="Cube_006-mesh-normals-array" count="6">0 1 0 0 -1 0</float_array>
<technique_common>
<accessor source="#Cube_006-mesh-normals-array" count="2" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube_006-mesh-map-0">
<float_array id="Cube_006-mesh-map-0-array" count="16">1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0</float_array>
<technique_common>
<accessor source="#Cube_006-mesh-map-0-array" count="8" stride="2">
<param name="S" type="float"/>
<param name="T" type="float"/>
</accessor>
</technique_common>
</source>
<vertices id="Cube_006-mesh-vertices">
<input semantic="POSITION" source="#Cube_006-mesh-positions"/>
</vertices>
<polylist material="Material_001-material" count="1">
<input semantic="VERTEX" source="#Cube_006-mesh-vertices" offset="0"/>
<input semantic="NORMAL" source="#Cube_006-mesh-normals" offset="1"/>
<input semantic="TEXCOORD" source="#Cube_006-mesh-map-0" offset="2" set="0"/>
<vcount>4 </vcount>
<p>6 1 4 7 1 5 5 1 6 4 1 7</p>
</polylist>
<polylist material="Material_002-material" count="1">
<input semantic="VERTEX" source="#Cube_006-mesh-vertices" offset="0"/>
<input semantic="NORMAL" source="#Cube_006-mesh-normals" offset="1"/>
<input semantic="TEXCOORD" source="#Cube_006-mesh-map-0" offset="2" set="0"/>
<vcount>4 </vcount>
<p>0 0 0 1 0 1 3 0 2 2 0 3</p>
</polylist>
</mesh>
</geometry>
<geometry id="Cube_007-mesh" name="Cube.007">
<mesh>
<source id="Cube_007-mesh-positions">
<float_array id="Cube_007-mesh-positions-array" count="12">-0.5 -0.5 0 -0.5 0.5 0 0.5 -0.5 0 0.5 0.5 0</float_array>
<technique_common>
<accessor source="#Cube_007-mesh-positions-array" count="4" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube_007-mesh-normals">
<float_array id="Cube_007-mesh-normals-array" count="3">0 0 1</float_array>
<technique_common>
<accessor source="#Cube_007-mesh-normals-array" count="1" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube_007-mesh-map-0">
<float_array id="Cube_007-mesh-map-0-array" count="8">1 1 0 1 0 0 1 0</float_array>
<technique_common>
<accessor source="#Cube_007-mesh-map-0-array" count="4" stride="2">
<param name="S" type="float"/>
<param name="T" type="float"/>
</accessor>
</technique_common>
</source>
<vertices id="Cube_007-mesh-vertices">
<input semantic="POSITION" source="#Cube_007-mesh-positions"/>
</vertices>
<polylist material="Material_003-material" count="1">
<input semantic="VERTEX" source="#Cube_007-mesh-vertices" offset="0"/>
<input semantic="NORMAL" source="#Cube_007-mesh-normals" offset="1"/>
<input semantic="TEXCOORD" source="#Cube_007-mesh-map-0" offset="2" set="0"/>
<vcount>4 </vcount>
<p>3 0 0 1 0 1 0 0 2 2 0 3</p>
</polylist>
</mesh>
</geometry>
</library_geometries>
<library_controllers/>
<library_visual_scenes>
<visual_scene id="Scene" name="Scene">
<node id="__sides_1" name="__sides_1" type="NODE">
<matrix sid="transform">1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1</matrix>
<instance_geometry url="#Cube-mesh" name="__sides_1">
<bind_material>
<technique_common>
<instance_material symbol="Material_001-material" target="#Material_001-material"/>
<instance_material symbol="Material_002-material" target="#Material_002-material"/>
</technique_common>
</bind_material>
</instance_geometry>
</node>
<node id="__sides_2" name="__sides_2" type="NODE">
<matrix sid="transform">0.5 -0.8660254 0 0 0.8660254 0.5 0 0 0 0 1 1 0 0 0 1</matrix>
<instance_geometry url="#Cube_005-mesh" name="__sides_2">
<bind_material>
<technique_common>
<instance_material symbol="Material_001-material" target="#Material_001-material"/>
<instance_material symbol="Material_002-material" target="#Material_002-material"/>
</technique_common>
</bind_material>
</instance_geometry>
</node>
<node id="__sides_3" name="__sides_3" type="NODE">
<matrix sid="transform">-0.5 -0.8660254 0 0 0.8660254 -0.5 0 0 0 0 1 1 0 0 0 1</matrix>
<instance_geometry url="#Cube_006-mesh" name="__sides_3">
<bind_material>
<technique_common>
<instance_material symbol="Material_001-material" target="#Material_001-material"/>
<instance_material symbol="Material_002-material" target="#Material_002-material"/>
</technique_common>
</bind_material>
</instance_geometry>
</node>
<node id="Root" name="Root" type="NODE">
<matrix sid="transform">1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</matrix>
<instance_geometry url="#Cube_007-mesh" name="Root">
<bind_material>
<technique_common>
<instance_material symbol="Material_003-material" target="#Material_003-material"/>
</technique_common>
</bind_material>
</instance_geometry>
</node>
</visual_scene>
</library_visual_scenes>
<scene>
<instance_visual_scene url="#Scene"/>
</scene>
</COLLADA>

 

 

 

Box2sides.dae Contient 1 prim carrée et deux prims triangulaires à 2 faces seulement. LI = 0,046 dans Halcyon

☺Ces deux triangles montrent chacun une moitié différente de la même texture, ce qui permet d'apporter plus de variété.

<?xml version="1.0" encoding="utf-8"?>
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
<asset>
<contributor>
<author>Copyright Yichard Muni (Richard Trigaux) free use for Halcyon worlds</author>
<authoring_tool>Blender 2.77.0 commit date:2016-04-05, commit time:18:12, hash:abf6f08</authoring_tool>
</contributor>
<created>2019-12-31T08:48:23</created>
<modified>2019-12-31T08:48:23</modified>
<unit name="meter" meter="1"/>
<up_axis>Z_UP</up_axis>
</asset>
<library_images/>
<library_effects>
<effect id="Side_1-effect">
<profile_COMMON>
<technique sid="common">
<phong>
<emission>
<color sid="emission">0 0 0 1</color>
</emission>
<ambient>
<color sid="ambient">0 0 0 1</color>
</ambient>
<diffuse>
<color sid="diffuse">0.5037576 0.8 0 1</color>
</diffuse>
<specular>
<color sid="specular">0.0625 0.0625 0.0625 1</color>
</specular>
<shininess>
<float sid="shininess">50</float>
</shininess>
<index_of_refraction>
<float sid="index_of_refraction">1</float>
</index_of_refraction>
</phong>
</technique>
</profile_COMMON>
</effect>
<effect id="Side_2-effect">
<profile_COMMON>
<technique sid="common">
<phong>
<emission>
<color sid="emission">0 0 0 1</color>
</emission>
<ambient>
<color sid="ambient">0 0 0 1</color>
</ambient>
<diffuse>
<color sid="diffuse">0 0.8 0.2354035 1</color>
</diffuse>
<specular>
<color sid="specular">0.0625 0.0625 0.0625 1</color>
</specular>
<shininess>
<float sid="shininess">50</float>
</shininess>
<index_of_refraction>
<float sid="index_of_refraction">1</float>
</index_of_refraction>
</phong>
</technique>
</profile_COMMON>
</effect>
</library_effects>
<library_materials>
<material id="Side_1-material" name="Side_1">
<instance_effect url="#Side_1-effect"/>
</material>
<material id="Side_2-material" name="Side_2">
<instance_effect url="#Side_2-effect"/>
</material>
</library_materials>
<library_geometries>
<geometry id="Box_2_sides-mesh" name="Box 2 sides">
<mesh>
<source id="Box_2_sides-mesh-positions">
<float_array id="Box_2_sides-mesh-positions-array" count="24">-0.025 -0.5 -0.5 -0.025 -0.5 0.5 -0.025 0.5 -0.5 -0.025 0.5 0.5 0.025 -0.5 -0.5 0.025 -0.5 0.5 0.025 0.5 -0.5 0.025 0.5 0.5</float_array>
<technique_common>
<accessor source="#Box_2_sides-mesh-positions-array" count="8" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Box_2_sides-mesh-normals">
<float_array id="Box_2_sides-mesh-normals-array" count="6">1 0 0 -1 0 0</float_array>
<technique_common>
<accessor source="#Box_2_sides-mesh-normals-array" count="2" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Box_2_sides-mesh-map-0">
<float_array id="Box_2_sides-mesh-map-0-array" count="24">0 1 1 0 1 1 0 1 0 0 1 0 0 1 1 0 0 0 0 1 1 1 1 0</float_array>
<technique_common>
<accessor source="#Box_2_sides-mesh-map-0-array" count="12" stride="2">
<param name="S" type="float"/>
<param name="T" type="float"/>
</accessor>
</technique_common>
</source>
<vertices id="Box_2_sides-mesh-vertices">
<input semantic="POSITION" source="#Box_2_sides-mesh-positions"/>
</vertices>
<polylist material="Side_1-material" count="2">
<input semantic="VERTEX" source="#Box_2_sides-mesh-vertices" offset="0"/>
<input semantic="NORMAL" source="#Box_2_sides-mesh-normals" offset="1"/>
<input semantic="TEXCOORD" source="#Box_2_sides-mesh-map-0" offset="2" set="0"/>
<vcount>3 3 </vcount>
<p>5 0 0 6 0 1 7 0 2 5 0 3 4 0 4 6 0 5</p>
</polylist>
<polylist material="Side_2-material" count="2">
<input semantic="VERTEX" source="#Box_2_sides-mesh-vertices" offset="0"/>
<input semantic="NORMAL" source="#Box_2_sides-mesh-normals" offset="1"/>
<input semantic="TEXCOORD" source="#Box_2_sides-mesh-map-0" offset="2" set="0"/>
<vcount>3 3 </vcount>
<p>1 1 6 2 1 7 0 1 8 1 1 9 3 1 10 2 1 11</p>
</polylist>
</mesh>
</geometry>
<geometry id="Triangle_2_sides_a-mesh" name="Triangle 2 sides a">
<mesh>
<source id="Triangle_2_sides_a-mesh-positions">
<float_array id="Triangle_2_sides_a-mesh-positions-array" count="18">-0.025 -0.5 -0.5 -0.025 -0.5 0.5 -0.025 0.5 -0.5 0.025 -0.5 -0.5 0.025 -0.5 0.5 0.025 0.5 -0.5</float_array>
<technique_common>
<accessor source="#Triangle_2_sides_a-mesh-positions-array" count="6" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Triangle_2_sides_a-mesh-normals">
<float_array id="Triangle_2_sides_a-mesh-normals-array" count="6">1 0 0 -1 0 0</float_array>
<technique_common>
<accessor source="#Triangle_2_sides_a-mesh-normals-array" count="2" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Triangle_2_sides_a-mesh-map-0">
<float_array id="Triangle_2_sides_a-mesh-map-0-array" count="12">0 1 0 0 1 0 0 1 1 0 0 0</float_array>
<technique_common>
<accessor source="#Triangle_2_sides_a-mesh-map-0-array" count="6" stride="2">
<param name="S" type="float"/>
<param name="T" type="float"/>
</accessor>
</technique_common>
</source>
<vertices id="Triangle_2_sides_a-mesh-vertices">
<input semantic="POSITION" source="#Triangle_2_sides_a-mesh-positions"/>
</vertices>
<polylist material="Side_1-material" count="1">
<input semantic="VERTEX" source="#Triangle_2_sides_a-mesh-vertices" offset="0"/>
<input semantic="NORMAL" source="#Triangle_2_sides_a-mesh-normals" offset="1"/>
<input semantic="TEXCOORD" source="#Triangle_2_sides_a-mesh-map-0" offset="2" set="0"/>
<vcount>3 </vcount>
<p>4 0 0 3 0 1 5 0 2</p>
</polylist>
<polylist material="Side_2-material" count="1">
<input semantic="VERTEX" source="#Triangle_2_sides_a-mesh-vertices" offset="0"/>
<input semantic="NORMAL" source="#Triangle_2_sides_a-mesh-normals" offset="1"/>
<input semantic="TEXCOORD" source="#Triangle_2_sides_a-mesh-map-0" offset="2" set="0"/>
<vcount>3 </vcount>
<p>1 1 3 2 1 4 0 1 5</p>
</polylist>
</mesh>
</geometry>
<geometry id="Triangle_2_sides_b-mesh" name="Triangle 2 sides b">
<mesh>
<source id="Triangle_2_sides_b-mesh-positions">
<float_array id="Triangle_2_sides_b-mesh-positions-array" count="18">-0.025 -0.5 0.5 -0.025 0.5 -0.5 -0.025 0.5 0.5 0.025 -0.5 0.5 0.025 0.5 -0.5 0.025 0.5 0.5</float_array>
<technique_common>
<accessor source="#Triangle_2_sides_b-mesh-positions-array" count="6" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Triangle_2_sides_b-mesh-normals">
<float_array id="Triangle_2_sides_b-mesh-normals-array" count="6">1 0 0 -1 0 0</float_array>
<technique_common>
<accessor source="#Triangle_2_sides_b-mesh-normals-array" count="2" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Triangle_2_sides_b-mesh-map-0">
<float_array id="Triangle_2_sides_b-mesh-map-0-array" count="12">0 1 1 0 1 1 1 0 0 1 1 1</float_array>
<technique_common>
<accessor source="#Triangle_2_sides_b-mesh-map-0-array" count="6" stride="2">
<param name="S" type="float"/>
<param name="T" type="float"/>
</accessor>
</technique_common>
</source>
<vertices id="Triangle_2_sides_b-mesh-vertices">
<input semantic="POSITION" source="#Triangle_2_sides_b-mesh-positions"/>
</vertices>
<polylist material="Side_1-material" count="1">
<input semantic="VERTEX" source="#Triangle_2_sides_b-mesh-vertices" offset="0"/>
<input semantic="NORMAL" source="#Triangle_2_sides_b-mesh-normals" offset="1"/>
<input semantic="TEXCOORD" source="#Triangle_2_sides_b-mesh-map-0" offset="2" set="0"/>
<vcount>3 </vcount>
<p>3 0 0 4 0 1 5 0 2</p>
</polylist>
<polylist material="Side_2-material" count="1">
<input semantic="VERTEX" source="#Triangle_2_sides_b-mesh-vertices" offset="0"/>
<input semantic="NORMAL" source="#Triangle_2_sides_b-mesh-normals" offset="1"/>
<input semantic="TEXCOORD" source="#Triangle_2_sides_b-mesh-map-0" offset="2" set="0"/>
<vcount>3 </vcount>
<p>1 1 3 0 1 4 2 1 5</p>
</polylist>
</mesh>
</geometry>
</library_geometries>
<library_controllers/>
<library_visual_scenes>
<visual_scene id="Scene" name="Scene">
<node id="Box_2_Sides_001" name="Box_2_Sides_001" type="NODE">
<matrix sid="transform">1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</matrix>
<instance_geometry url="#Box_2_sides-mesh" name="Box_2_Sides_001">
<bind_material>
<technique_common>
<instance_material symbol="Side_1-material" target="#Side_1-material"/>
<instance_material symbol="Side_2-material" target="#Side_2-material"/>
</technique_common>
</bind_material>
</instance_geometry>
</node>
<node id="Triangle_2_Sides_a_001" name="Triangle_2_Sides_a_001" type="NODE">
<matrix sid="transform">1 0 0 0 0 1 0 0 0 0 1 1.2 0 0 0 1</matrix>
<instance_geometry url="#Triangle_2_sides_a-mesh" name="Triangle_2_Sides_a_001">
<bind_material>
<technique_common>
<instance_material symbol="Side_1-material" target="#Side_1-material"/>
<instance_material symbol="Side_2-material" target="#Side_2-material"/>
</technique_common>
</bind_material>
</instance_geometry>
</node>
<node id="Triangle_2_Sides_b_001" name="Triangle_2_Sides_b_001" type="NODE">
<matrix sid="transform">1 0 0 0 0 1 0 0 0 0 1 1.4 0 0 0 1</matrix>
<instance_geometry url="#Triangle_2_sides_b-mesh" name="Triangle_2_Sides_b_001">
<bind_material>
<technique_common>
<instance_material symbol="Side_1-material" target="#Side_1-material"/>
<instance_material symbol="Side_2-material" target="#Side_2-material"/>
</technique_common>
</bind_material>
</instance_geometry>
</node>
</visual_scene>
</library_visual_scenes>
<scene>
<instance_visual_scene url="#Scene"/>
</scene> </COLLADA>

 

 

 

PhantomRootTellingItsSizeToRobots.dae contient 1 prim avec seulement deux triangles, le LI le plus bas possible pour définir un volume. Il peut être utilisé pour ajouter une prim racine appropriée aux plantes (phantom) et aux objets, ou pour marquer des endroits. En lui donnant la taille de la plante entière, on donne ainsi cette information aux robots planteurs. Attention, elle n'est pas visible sous tous les angles, même avec la transparence visible. LI = 0,014 dans Halcyon.

<?xml version="1.0" encoding="utf-8"?>
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
<asset>
<contributor>
<author>Copyright Yichard Muni (Richard Trigaux) free use for Halcyon worlds</author>
<authoring_tool>Blender 2.78.0 commit date:2017-02-24, commit time:14:33, hash:e92f235283</authoring_tool>
</contributor>
<created>2020-11-13T07:41:05</created>
<modified>2020-11-13T07:41:05</modified>
<unit name="meter" meter="1"/>
<up_axis>Z_UP</up_axis>
</asset>
<library_images/>
<library_effects>
<effect id="top-effect">
<profile_COMMON>
<technique sid="common">
<phong>
<emission>
<color sid="emission">0 0 0 1</color>
</emission>
<ambient>
<color sid="ambient">0 0 0 1</color>
</ambient>
<diffuse>
<color sid="diffuse">0.001989172 0.8 0 1</color>
</diffuse>
<specular>
<color sid="specular">0.5 0.5 0.5 1</color>
</specular>
<shininess>
<float sid="shininess">50</float>
</shininess>
<index_of_refraction>
<float sid="index_of_refraction">1</float>
</index_of_refraction>
</phong>
</technique>
</profile_COMMON>
</effect>
<effect id="bottom-effect">
<profile_COMMON>
<technique sid="common">
<phong>
<emission>
<color sid="emission">0 0 0 1</color>
</emission>
<ambient>
<color sid="ambient">0 0 0 1</color>
</ambient>
<diffuse>
<color sid="diffuse">0.4740627 0.1639756 0.06431194 1</color>
</diffuse>
<specular>
<color sid="specular">0.5 0.5 0.5 1</color>
</specular>
<shininess>
<float sid="shininess">50</float>
</shininess>
<index_of_refraction>
<float sid="index_of_refraction">1</float>
</index_of_refraction>
</phong>
</technique>
</profile_COMMON>
</effect>
</library_effects>
<library_materials>
<material id="top-material" name="top">
<instance_effect url="#top-effect"/>
</material>
<material id="bottom-material" name="bottom">
<instance_effect url="#bottom-effect"/>
</material>
</library_materials>
<library_geometries>
<geometry id="Plane-mesh" name="Plane">
<mesh>
<source id="Plane-mesh-positions">
<float_array id="Plane-mesh-positions-array" count="18">-0.5 0.5 0.5 -0.5 0.5 -0.5 -0.5 -0.5 0.5 -0.5 -0.5 -0.5 0.5 0 -0.5 0.5 0 0.5</float_array>
<technique_common>
<accessor source="#Plane-mesh-positions-array" count="6" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Plane-mesh-normals">
<float_array id="Plane-mesh-normals-array" count="6">0 0 -1 0 0 1</float_array>
<technique_common>
<accessor source="#Plane-mesh-normals-array" count="2" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Plane-mesh-map-0">
<float_array id="Plane-mesh-map-0-array" count="12">0 0 0.4999995 1 1 6.33224e-7 0.4999995 1 0 0 1 6.33224e-7</float_array>
<technique_common>
<accessor source="#Plane-mesh-map-0-array" count="6" stride="2">
<param name="S" type="float"/>
<param name="T" type="float"/>
</accessor>
</technique_common>
</source>
<vertices id="Plane-mesh-vertices">
<input semantic="POSITION" source="#Plane-mesh-positions"/>
</vertices>
<polylist material="top-material" count="1">
<input semantic="VERTEX" source="#Plane-mesh-vertices" offset="0"/>
<input semantic="NORMAL" source="#Plane-mesh-normals" offset="1"/>
<input semantic="TEXCOORD" source="#Plane-mesh-map-0" offset="2" set="0"/>
<vcount>3 </vcount>
<p>5 1 3 0 1 4 2 1 5</p>
</polylist>
<polylist material="bottom-material" count="1">
<input semantic="VERTEX" source="#Plane-mesh-vertices" offset="0"/>
<input semantic="NORMAL" source="#Plane-mesh-normals" offset="1"/>
<input semantic="TEXCOORD" source="#Plane-mesh-map-0" offset="2" set="0"/>
<vcount>3 </vcount>
<p>1 0 0 4 0 1 3 0 2</p>
</polylist>
</mesh>
</geometry>
</library_geometries>
<library_controllers/>
<library_visual_scenes>
<visual_scene id="Scene" name="Scene">
<node id="Plane" name="Plane" type="NODE">
<matrix sid="transform">1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</matrix>
<instance_geometry url="#Plane-mesh" name="Plane">
<bind_material>
<technique_common>
<instance_material symbol="top-material" target="#top-material"/>
<instance_material symbol="bottom-material" target="#bottom-material"/>
</technique_common>
</bind_material>
</instance_geometry>
</node>
</visual_scene>
</library_visual_scenes>
<scene>
<instance_visual_scene url="#Scene"/>
</scene>
</COLLADA>

 

 

 

4cones4trees.dae Contient 4 prims cylindro-coniques permettant de faire des tronc et des branches. LI=0,209 dans Halcyon

☺Une fois dans le monde, dé-lier et re-lier le prim racine (la base du tronc)

☺Si vous ajoutez les deux triangles de Box2sides.dae, vous pouvez construire des arbres assez réalistes.

<?xml version="1.0" encoding="utf-8"?>
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
<asset>
<contributor>
<author>Copyright Yichard Muni (Richard Trigaux) free use for Halcyon worlds</author>
<authoring_tool>Blender 2.78.0 commit date:2017-02-24, commit time:14:33, hash:e92f235283</authoring_tool>
</contributor>
<created>2020-11-26T18:24:15</created>
<modified>2020-11-26T18:24:15</modified>
<unit name="meter" meter="1"/>
<up_axis>Z_UP</up_axis>
</asset>
<library_images/>
<library_effects>
<effect id="Cylinder_001-effect">
<profile_COMMON>
<technique sid="common">
<phong>
<emission>
<color sid="emission">0 0 0 1</color>
</emission>
<ambient>
<color sid="ambient">0 0 0 1</color>
</ambient>
<diffuse>
<color sid="diffuse">1 1 1 1</color>
</diffuse>
<specular>
<color sid="specular">0.015625 0.015625 0.015625 1</color>
</specular>
<shininess>
<float sid="shininess">1</float>
</shininess>
<index_of_refraction>
<float sid="index_of_refraction">1</float>
</index_of_refraction>
</phong>
</technique>
</profile_COMMON>
</effect>
<effect id="Cylinder_top_001-effect">
<profile_COMMON>
<technique sid="common">
<phong>
<emission>
<color sid="emission">0 0 0 1</color>
</emission>
<ambient>
<color sid="ambient">0 0 0 1</color>
</ambient>
<diffuse>
<color sid="diffuse">1 1 1 1</color>
</diffuse>
<specular>
<color sid="specular">0.015625 0.015625 0.015625 1</color>
</specular>
<shininess>
<float sid="shininess">50</float>
</shininess>
<index_of_refraction>
<float sid="index_of_refraction">1</float>
</index_of_refraction>
</phong>
</technique>
</profile_COMMON>
</effect>
<effect id="Cylinder_bottom_001-effect">
<profile_COMMON>
<technique sid="common">
<phong>
<emission>
<color sid="emission">0 0 0 1</color>
</emission>
<ambient>
<color sid="ambient">0 0 0 1</color>
</ambient>
<diffuse>
<color sid="diffuse">0.4118781 0.64 0 1</color>
</diffuse>
<specular>
<color sid="specular">0.125 0.125 0.125 1</color>
</specular>
<shininess>
<float sid="shininess">50</float>
</shininess>
<index_of_refraction>
<float sid="index_of_refraction">1</float>
</index_of_refraction>
</phong>
</technique>
</profile_COMMON>
</effect>
</library_effects>
<library_materials>
<material id="Cylinder_001-material" name="Cylinder_001">
<instance_effect url="#Cylinder_001-effect"/>
</material>
<material id="Cylinder_top_001-material" name="Cylinder_top_001">
<instance_effect url="#Cylinder_top_001-effect"/>
</material>
<material id="Cylinder_bottom_001-material" name="Cylinder_bottom_001">
<instance_effect url="#Cylinder_bottom_001-effect"/>
</material>
</library_materials>
<library_geometries>
<geometry id="Cylinder8faces-mesh" name="Cylinder8faces">
<mesh>
<source id="Cylinder8faces-mesh-positions">
<float_array id="Cylinder8faces-mesh-positions-array" count="48">-0.08838814 0.08838814 1 0 0.1249999 1 0.08838826 0.08838814 1 0.125 0 1 0.08838844 -0.08838826 1 0 -0.125 1 -0.08838814 -0.08838856 1 -0.125 0 1 -0.0883882 0.08838814 0 0 0.1249999 0 0.0883882 0.08838814 0 0.125 0 0 0.08838838 -0.08838826 0 0 -0.125 0 -0.0883882 -0.08838856 0 -0.125 0 0</float_array>
<technique_common>
<accessor source="#Cylinder8faces-mesh-positions-array" count="16" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cylinder8faces-mesh-normals">
<float_array id="Cylinder8faces-mesh-normals-array" count="24">-0.7071068 -0.7071068 0 0 -1 0 -1 0 0 0.7071068 0.7071068 0 0 1 0 0.7071068 -0.7071068 0 1 0 0 -0.7071068 0.7071068 0</float_array>
<technique_common>
<accessor source="#Cylinder8faces-mesh-normals-array" count="8" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cylinder8faces-mesh-map-0">
<float_array id="Cylinder8faces-mesh-map-0-array" count="64">0.375 1 0.375 0 0.5 0 0.5 1 0.25 1 0.25 0 0.375 0 0.375 1 0.8750001 1 0.8750001 0 1 0 1 1 0.625 1 0.625 0 0.75 0 0.75 1 0.625 1 0.5 1 0.5 0 0.625 0 0.75 1 0.75 0 0.8750001 0 0.8750001 1 0 1 0 0 0.125 0 0.125 1 0.25 0 0.25 1 0.125 1 0.125 0</float_array>
<technique_common>
<accessor source="#Cylinder8faces-mesh-map-0-array" count="32" stride="2">
<param name="S" type="float"/>
<param name="T" type="float"/>
</accessor>
</technique_common>
</source>
<vertices id="Cylinder8faces-mesh-vertices">
<input semantic="POSITION" source="#Cylinder8faces-mesh-positions"/>
</vertices>
<polylist material="Cylinder_001-material" count="8">
<input semantic="VERTEX" source="#Cylinder8faces-mesh-vertices" offset="0"/>
<input semantic="NORMAL" source="#Cylinder8faces-mesh-normals" offset="1"/>
<input semantic="TEXCOORD" source="#Cylinder8faces-mesh-map-0" offset="2" set="0"/>
<vcount>4 4 4 4 4 4 4 4 </vcount>
<p>6 0 0 14 0 1 13 1 2 5 1 3 7 2 4 15 2 5 14 0 6 6 0 7 2 3 8 10 3 9 9 4 10 1 4 11 4 5 12 12 5 13 11 6 14 3 6 15 4 5 16 5 1 17 13 1 18 12 5 19 3 6 20 11 6 21 10 3 22 2 3 23 1 4 24 9 4 25 8 7 26 0 7 27 15 2 28 7 2 29 0 7 30 8 7 31</p>
</polylist>
</mesh>
</geometry>
<geometry id="TuncatedCone2-mesh" name="TuncatedCone2">
<mesh>
<source id="TuncatedCone2-mesh-positions">
<float_array id="TuncatedCone2-mesh-positions-array" count="48">-0.04242622 0.04242616 1 0 0.06 1 0.04242628 0.04242616 1 0.06 0 1 0.0424264 -0.04242634 1 0 -0.06 1 -0.04242622 -0.04242646 1 -0.06 0 1 -0.07071059 0.07071048 0 0 0.1 0 0.07071053 0.07071048 0 0.1 0 0 0.07071071 -0.07071059 0 0 -0.1 0 -0.07071059 -0.07071083 0 -0.1 0 0</float_array>
<technique_common>
<accessor source="#TuncatedCone2-mesh-positions-array" count="16" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="TuncatedCone2-mesh-normals">
<float_array id="TuncatedCone2-mesh-normals-array" count="24">-0.7065424 -0.7065424 0.03994917 0 -0.9992018 0.03994971 -0.9992018 0 0.03994971 0.7065424 0.7065424 0.03994917 0 0.9992018 0.03994971 0.7065424 -0.7065424 0.03994917 0.9992018 0 0.03994971 -0.7065424 0.7065424 0.03994917</float_array>
<technique_common>
<accessor source="#TuncatedCone2-mesh-normals-array" count="8" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="TuncatedCone2-mesh-map-0">
<float_array id="TuncatedCone2-mesh-map-0-array" count="64">0.375 1 0.375 0 0.5 0 0.5 1 0.25 1 0.25 0 0.3749998 0 0.375 1 0.8750001 1 0.8750001 0 1 0 1 1 0.625 1 0.625 0 0.75 0 0.75 1 0.625 1 0.5 1 0.5 0 0.625 0 0.75 1 0.75 0 0.8749999 0 0.8750001 1 0 1 0 0 0.125 0 0.125 1 0.25 0 0.25 1 0.125 1 0.125 0</float_array>
<technique_common>
<accessor source="#TuncatedCone2-mesh-map-0-array" count="32" stride="2">
<param name="S" type="float"/>
<param name="T" type="float"/>
</accessor>
</technique_common>
</source>
<vertices id="TuncatedCone2-mesh-vertices">
<input semantic="POSITION" source="#TuncatedCone2-mesh-positions"/>
</vertices>
<polylist material="Cylinder_001-material" count="8">
<input semantic="VERTEX" source="#TuncatedCone2-mesh-vertices" offset="0"/>
<input semantic="NORMAL" source="#TuncatedCone2-mesh-normals" offset="1"/>
<input semantic="TEXCOORD" source="#TuncatedCone2-mesh-map-0" offset="2" set="0"/>
<vcount>4 4 4 4 4 4 4 4 </vcount>
<p>6 0 0 14 0 1 13 1 2 5 1 3 7 2 4 15 2 5 14 0 6 6 0 7 2 3 8 10 3 9 9 4 10 1 4 11 4 5 12 12 5 13 11 6 14 3 6 15 4 5 16 5 1 17 13 1 18 12 5 19 3 6 20 11 6 21 10 3 22 2 3 23 1 4 24 9 4 25 8 7 26 0 7 27 15 2 28 7 2 29 0 7 30 8 7 31</p>
</polylist>
</mesh>
</geometry>
<geometry id="Cone1-mesh" name="Cone1">
<mesh>
<source id="Cone1-mesh-positions">
<float_array id="Cone1-mesh-positions-array" count="27">0 0 1 -0.04242628 0.04242616 0 0 0.06 0 0.04242628 0.04242616 0 0.06 0 0 0.04242634 -0.04242634 0 0 -0.06 0 -0.04242628 -0.04242646 0 -0.06 0 0</float_array>
<technique_common>
<accessor source="#Cone1-mesh-positions-array" count="9" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cone1-mesh-normals">
<float_array id="Cone1-mesh-normals-array" count="27">0 9.15555e-5 1 -0.705838 -0.705838 0.05987781 0 -0.9982059 0.05987769 -0.9982059 0 0.05987769 0.705838 0.705838 0.05987781 0 0.9982059 0.05987769 0.705838 -0.705838 0.05987781 0.9982059 0 0.05987769 -0.705838 0.705838 0.05987781</float_array>
<technique_common>
<accessor source="#Cone1-mesh-normals-array" count="9" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cone1-mesh-map-0">
<float_array id="Cone1-mesh-map-0-array" count="48">0.4375 1 0.375 0 0.5 0 0.3125 1 0.25 0 0.375 0 0.9375001 1 0.8750001 0 1 0 0.6875 1 0.625 0 0.75 0 0.5625 1 0.5 0 0.625 0 0.8125 1 0.75 0 0.8750001 0 0.0625 1 0 0 0.125 0 0.25 0 0.1875 1 0.125 0</float_array>
<technique_common>
<accessor source="#Cone1-mesh-map-0-array" count="24" stride="2">
<param name="S" type="float"/>
<param name="T" type="float"/>
</accessor>
</technique_common>
</source>
<vertices id="Cone1-mesh-vertices">
<input semantic="POSITION" source="#Cone1-mesh-positions"/>
</vertices>
<polylist material="Cylinder_001-material" count="8">
<input semantic="VERTEX" source="#Cone1-mesh-vertices" offset="0"/>
<input semantic="NORMAL" source="#Cone1-mesh-normals" offset="1"/>
<input semantic="TEXCOORD" source="#Cone1-mesh-map-0" offset="2" set="0"/>
<vcount>3 3 3 3 3 3 3 3 </vcount>
<p>0 0 0 7 1 1 6 2 2 0 0 3 8 3 4 7 1 5 0 0 6 3 4 7 2 5 8 0 0 9 5 6 10 4 7 11 0 0 12 6 2 13 5 6 14 0 0 15 4 7 16 3 4 17 0 0 18 2 5 19 1 8 20 8 3 21 0 0 22 1 8 23</p>
</polylist>
</mesh>
</geometry>
<geometry id="Cone2-mesh" name="Cone2">
<mesh>
<source id="Cone2-mesh-positions">
<float_array id="Cone2-mesh-positions-array" count="27">0 0 1 -0.04242628 0.04242616 0 0 0.05999988 0 0.04242628 0.04242616 0 0.05999994 0 0 0.04242634 -0.04242634 0 0 -0.06 0 -0.04242628 -0.04242646 0 -0.06 0 0</float_array>
<technique_common>
<accessor source="#Cone2-mesh-positions-array" count="9" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cone2-mesh-normals">
<float_array id="Cone2-mesh-normals-array" count="27">0 1.22074e-4 1 -0.705838 -0.705838 0.05987781 0 -0.9982059 0.05987769 -0.9982059 0 0.05987769 0.705838 0.705838 0.05987781 0 0.9982059 0.05987769 0.705838 -0.705838 0.05987781 0.9982059 0 0.05987769 -0.705838 0.705838 0.05987781</float_array>
<technique_common>
<accessor source="#Cone2-mesh-normals-array" count="9" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cone2-mesh-map-0">
<float_array id="Cone2-mesh-map-0-array" count="48">0.4375 1 0.375 0 0.5 0 0.3125 1 0.25 0 0.375 0 0.9375001 1 0.8750001 0 1 0 0.6875 1 0.625 0 0.75 0 0.5625 1 0.5 0 0.625 0 0.8125 1 0.75 0 0.8750001 0 0.0625 1 0 0 0.125 0 0.25 0 0.1875 1 0.125 0</float_array>
<technique_common>
<accessor source="#Cone2-mesh-map-0-array" count="24" stride="2">
<param name="S" type="float"/>
<param name="T" type="float"/>
</accessor>
</technique_common>
</source>
<vertices id="Cone2-mesh-vertices">
<input semantic="POSITION" source="#Cone2-mesh-positions"/>
</vertices>
<polylist material="Cylinder_001-material" count="8">
<input semantic="VERTEX" source="#Cone2-mesh-vertices" offset="0"/>
<input semantic="NORMAL" source="#Cone2-mesh-normals" offset="1"/>
<input semantic="TEXCOORD" source="#Cone2-mesh-map-0" offset="2" set="0"/>
<vcount>3 3 3 3 3 3 3 3 </vcount>
<p>0 0 0 7 1 1 6 2 2 0 0 3 8 3 4 7 1 5 0 0 6 3 4 7 2 5 8 0 0 9 5 6 10 4 7 11 0 0 12 6 2 13 5 6 14 0 0 15 4 7 16 3 4 17 0 0 18 2 5 19 1 8 20 8 3 21 0 0 22 1 8 23</p>
</polylist>
</mesh>
</geometry>
<geometry id="TruncatedCone1-mesh" name="TruncatedCone1">
<mesh>
<source id="TruncatedCone1-mesh-positions">
<float_array id="TruncatedCone1-mesh-positions-array" count="48">-0.07071048 0.07071048 1 0 0.0999999 1 0.07071059 0.07071048 1 0.1 0 1 0.07071071 -0.07071059 1 0 -0.1 1 -0.07071048 -0.07071083 1 -0.09999996 0 1 -0.0883882 0.08838814 0 0 0.1249999 0 0.0883882 0.08838814 0 0.125 0 0 0.08838838 -0.08838826 0 0 -0.125 0 -0.0883882 -0.08838856 0 -0.125 0 0</float_array>
<technique_common>
<accessor source="#TruncatedCone1-mesh-positions-array" count="16" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="TruncatedCone1-mesh-normals">
<float_array id="TruncatedCone1-mesh-normals-array" count="24">-0.7068864 -0.7068864 0.02496469 0 -0.9996884 0.02496469 -0.9996884 0 0.02496469 0.7068864 0.7068864 0.02496469 0 0.9996884 0.02496469 0.7068864 -0.7068864 0.02496469 0.9996884 0 0.02496469 -0.7068864 0.7068864 0.02496469</float_array>
<technique_common>
<accessor source="#TruncatedCone1-mesh-normals-array" count="8" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="TruncatedCone1-mesh-map-0">
<float_array id="TruncatedCone1-mesh-map-0-array" count="64">0.375 1 0.375 0 0.5 0 0.5 1 0.25 1 0.25 0 0.375 0 0.375 1 0.8750001 1 0.8750001 0 1 0 1 1 0.625 1 0.625 0 0.75 0 0.75 1 0.625 1 0.5 1 0.5 0 0.625 0 0.75 1 0.75 0 0.8750001 0 0.8750001 1 0 1 0 0 0.125 0 0.125 1 0.25 0 0.25 1 0.125 1 0.125 0</float_array>
<technique_common>
<accessor source="#TruncatedCone1-mesh-map-0-array" count="32" stride="2">
<param name="S" type="float"/>
<param name="T" type="float"/>
</accessor>
</technique_common>
</source>
<vertices id="TruncatedCone1-mesh-vertices">
<input semantic="POSITION" source="#TruncatedCone1-mesh-positions"/>
</vertices>
<polylist material="Cylinder_001-material" count="8">
<input semantic="VERTEX" source="#TruncatedCone1-mesh-vertices" offset="0"/>
<input semantic="NORMAL" source="#TruncatedCone1-mesh-normals" offset="1"/>
<input semantic="TEXCOORD" source="#TruncatedCone1-mesh-map-0" offset="2" set="0"/>
<vcount>4 4 4 4 4 4 4 4 </vcount>
<p>6 0 0 14 0 1 13 1 2 5 1 3 7 2 4 15 2 5 14 0 6 6 0 7 2 3 8 10 3 9 9 4 10 1 4 11 4 5 12 12 5 13 11 6 14 3 6 15 4 5 16 5 1 17 13 1 18 12 5 19 3 6 20 11 6 21 10 3 22 2 3 23 1 4 24 9 4 25 8 7 26 0 7 27 15 2 28 7 2 29 0 7 30 8 7 31</p>
</polylist>
</mesh>
</geometry>
</library_geometries>
<library_controllers/>
<library_visual_scenes>
<visual_scene id="Scene" name="Scene">
<node id="cylinder" name="cylinder" type="NODE">
<matrix sid="transform">1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</matrix>
<instance_geometry url="#Cylinder8faces-mesh" name="cylinder">
<bind_material>
<technique_common>
<instance_material symbol="Cylinder_001-material" target="#Cylinder_001-material"/>
<instance_material symbol="Cylinder_top_001-material" target="#Cylinder_top_001-material"/>
<instance_material symbol="Cylinder_bottom_001-material" target="#Cylinder_bottom_001-material"/>
</technique_common>
</bind_material>
</instance_geometry>
</node>
<node id="cylinder_002" name="cylinder_002" type="NODE">
<matrix sid="transform">1 0 0 0 0 1 0 0 0 0 1 2 0 0 0 1</matrix>
<instance_geometry url="#TuncatedCone2-mesh" name="cylinder_002">
<bind_material>
<technique_common>
<instance_material symbol="Cylinder_001-material" target="#Cylinder_001-material"/>
<instance_material symbol="Cylinder_top_001-material" target="#Cylinder_top_001-material"/>
<instance_material symbol="Cylinder_bottom_001-material" target="#Cylinder_bottom_001-material"/>
</technique_common>
</bind_material>
</instance_geometry>
</node>
<node id="cylinder_003" name="cylinder_003" type="NODE">
<matrix sid="transform">1 0 0 0 0 1 0 0 0 0 1 3 0 0 0 1</matrix>
<instance_geometry url="#Cone1-mesh" name="cylinder_003">
<bind_material>
<technique_common>
<instance_material symbol="Cylinder_001-material" target="#Cylinder_001-material"/>
<instance_material symbol="Cylinder_top_001-material" target="#Cylinder_top_001-material"/>
<instance_material symbol="Cylinder_bottom_001-material" target="#Cylinder_bottom_001-material"/>
</technique_common>
</bind_material>
</instance_geometry>
</node>
<node id="cylinder_004" name="cylinder_004" type="NODE">
<matrix sid="transform">0.7071068 0 0.7071068 0 0 1 0 0 -0.7071068 0 0.7071068 2 0 0 0 1</matrix>
<instance_geometry url="#Cone2-mesh" name="cylinder_004">
<bind_material>
<technique_common>
<instance_material symbol="Cylinder_001-material" target="#Cylinder_001-material"/>
<instance_material symbol="Cylinder_top_001-material" target="#Cylinder_top_001-material"/>
<instance_material symbol="Cylinder_bottom_001-material" target="#Cylinder_bottom_001-material"/>
</technique_common>
</bind_material>
</instance_geometry>
</node>
<node id="cylinder_001" name="cylinder_001" type="NODE">
<matrix sid="transform">1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1</matrix>
<instance_geometry url="#TruncatedCone1-mesh" name="cylinder_001">
<bind_material>
<technique_common>
<instance_material symbol="Cylinder_001-material" target="#Cylinder_001-material"/>
<instance_material symbol="Cylinder_top_001-material" target="#Cylinder_top_001-material"/>
<instance_material symbol="Cylinder_bottom_001-material" target="#Cylinder_bottom_001-material"/>
</technique_common>
</bind_material>
</instance_geometry>
</node>
</visual_scene>
</library_visual_scenes>
<scene>
<instance_visual_scene url="#Scene"/>
</scene>
</COLLADA>