Forums Développement Multimédia

Aller au contenu

- - - - -

Création de Mesh avec Minko

CODE Actionscript

3 réponses à ce sujet

#1 tlecoz

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 3486 messages

Posté 31 October 2011 - 17:09 PM

Hello !

Tout d'abord merci de partager avec nous tout ce travail et toutes ces idées :Hola:

Désolé de commencer par poser une question d'ordre général plutôt que de poser une question sur le moteur en lui même, mais avant d'essayer de comprendre comment fonctionne le moteur, je voudrais être sur de comprendre comment dessiner quelque chose avec (sans passer par un model3D issus de 3DsMax).

J'ai lu le tuto permettant d'afficher un cube, ce qui m'a amené à regarder la classe 'aerys.minko.scene.node.mesh.primitive.CubeMesh'

J'ai mis un certain temps à décrypter les valeurs associées au VertexBuffer

vb.push(
// top
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.5, 0.5, -0.5, 0.5, -0.5,
// bottom
-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.5, 0.5, -0.5, -0.5, -0.5,
// back
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.5, 0.5, -0.5, -0.5, 0.5,
// front
-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.5, -0.5, 0.5, 0.5, -0.5,
// left
-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.5, -0.5, -0.5, 0.5, -0.5,
// right
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.5, -0.5, 0.5, -0.5, 0.5
);
 

En fait, je ne m'attendais pas à en trouver autant. J'ai l'impression que le cube est décrit triangle par triangle, plutôt que plane par plane, ou en 'monobloc'.

J'ai regardé également la classe QuadMesh, et j'ai l'impression que dans ce cas, il s'agit d'une structure 'monobloc'.

Quand je parle de structure monobloc,je parle (par exemple) d'une plane définie par 4 points plutôt que par 2 triangles x 3 points.

J'en arrive à ma première question :)
Y a t il des cas de figures ou il vaut mieux utiliser une structure 'triangle-par-triangle' ou est ce que l'exemple du cube n'était qu'une manière de montrer que toutes les structures étaient viables ?


A la fin de la classe QuadMesh, on peut lire


if (doubleSided)
    indices = indices.concat(indices.concat().reverse());
 
Je trouve un peu étrange de dupliquer les indices...(après réflexion, pourquoi pas...)
Comment marche le culling dans Minko ?


Je n'ai pas du tout essayé de me servir de Minko pour l'instant, désolé si mes questions ne volent pas bien haut...

#2 Jean-Marc Le Roux

    Ceinture Noire

  • Minko
  • PipPipPipPipPipPipPip
  • 210 messages

Posté 31 October 2011 - 20:08 PM

Voir le messagetlecoz, le 31 October 2011 - 17:09 PM, dit :

Tout d'abord merci de partager avec nous tout ce travail et toutes ces idées :Hola:

De rien.
Par contre maintenant faut faire des trucs cools avec :)

Voir le messagetlecoz, le 31 October 2011 - 17:09 PM, dit :

En fait, je ne m'attendais pas à en trouver autant. J'ai l'impression que le cube est décrit triangle par triangle, plutôt que plane par plane, ou en 'monobloc'.

De prime abord, un cube c'est 8 sommets, donc à priori 8 vertices.
Ca à 6 faces, donc 12 triangles, donc 36 indices.

En fait, le problème est lié à la définition d'un "vertex". Un vertex contient - dans le cas du cube - une position (x, y, z) et des coordonnées de texture (u, v). Seulement voilà, si on essaie de plaquer une texture sur un cube, on se rend compte qu'un sommet a une position donnée aura parfois deux coordonnées de texture différentes. Sinon, il est impossible de mapper correctement le cube.

Par conséquent, les vertices ne peuvent être les mêmes que s'ils ont les mêmes positions ET les mêmes coordonnées de textures. Ce qui n'arrive jamais sur un cube... donc tous les vertices sont dupliqués, et les indices sont inutiles.

Voir le messagetlecoz, le 31 October 2011 - 17:09 PM, dit :

Y a t il des cas de figures ou il vaut mieux utiliser une structure 'triangle-par-triangle' ou est ce que l'exemple du cube n'était qu'une manière de montrer que toutes les structures étaient viables ?

Je pense que mon explication ci-dessus répond à ta question.
Il faut arriver à qualifier ce qu'est qu'un "vertex" et dans quelle mesure chacun d'entre eux et réutilisable.

Voir le messagetlecoz, le 31 October 2011 - 17:09 PM, dit :

A la fin de la classe QuadMesh, on peut lire


if (doubleSided)
    indices = indices.concat(indices.concat().reverse());
 
Je trouve un peu étrange de dupliquer les indices...(après réflexion, pourquoi pas...)
Comment marche le culling dans Minko ?

Le culling est géré par le hardware. Le culling que l'on veut utiliser doit être donné par un "style".
Par exemple:


var scene : StyleGroup = new StyleGroup();

scene.style.set(BasicStyle.TRIANGLE_CULLING, TriangleCulling.DISABLE);
 

Tous les descendants de ce noeud "scene" utiliseront un culling désactivé lors du rendu, sauf si un de descendant redéfini la valeur de ce style "BasicStyle.TRIANGLE_CULLING". Par défaut, le BasicEffect (l'effet utilisé par défaut) utilise comme valeur TriangleCulling.BACK.

a+

#3 Jean-Marc Le Roux

    Ceinture Noire

  • Minko
  • PipPipPipPipPipPipPip
  • 210 messages

Posté 03 November 2011 - 01:30 AM

Citation

En fait pour moi , 1 plane = 4 points et 1 cube = 6 planes , donc 1 cube = 24 points.
C'est prise de tête mais il est possible de texturer un cube en 24 points.

Oui justement.

Mais c'est sans compter sur les indices, qui devraient permettre de réutiliser les vertices et donc de n'en avoir que huit. Mais ce n'est pas possible pour la raison évoquée précédemment: un vertice n'est pas représenté que par sa position mais aussi par ses UVs, du coup les indices ne servent à rien dans ce cas particulier.

PS: désolé pour le message supprimé, j'ai fait une erreur de débutant, fallait bien que ça arrive :(

#4 tlecoz

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 3486 messages

Posté 25 May 2012 - 01:14 AM

En essayant d'utiliser Minko 2 cette après midi, j'ai lancé quelques recherches sur google et je me suis aperçu que ce sujet, loin d'être le plus interessant, était le mieux référencé sur google avec les mots clé "tuto minko", bref c'est un peu dommage...

Voilà quelques liens n'ayant rien a voir avec le sujet du post, mais tout à voir avec la recherche google :)

//le lien qui me parait le plus clair pour démarrer (avec les shaders) avec des exemples minimalistes comme je les aime
http://blogs.aerys.i...aders-workshop/
//le lien vers la classe manquante quand vous essaierez de compiler les fichiers :)
https://github.com/a.../zipball/master
//topic en rapport avec les exemples
http://forums.mediab...gment-constant/


//pas vraiment des tutos, mais les topics sur Minko qui me paraissent les plus importants
http://forums.mediab...e-explications/
http://forums.mediab...es-en-multiply/
http://forums.mediab...ost__p__1139958
http://forums.mediab...irage-de-phong/
http://forums.mediab...-avec-6-images/
http://forums.mediab...ple-tir-en-fps/
http://forums.mediab...pg-de-la-scene/
http://forums.mediab...ost-processing/
http://forums.mediab...-model-collada/
http://forums.mediab...lques-exemples/
http://forums.mediab...reen-2d-coords/

//en anglais, sur le blog d'Aerys
http://blogs.aerys.i...sion-available/
http://blog.aerys.in...els-with-minko/


//le lien vers le forum anglophone d'Aerys
http://answers.aerys.in/

//enfin le blog d'Aerys
http://blog.aerys.in

++



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP