Forums Développement Multimédia

Aller au contenu

- - - - -

Sortie de Minko 2

CODE Actionscript

8 réponses à ce sujet

#1 Jean-Marc Le Roux

    Ceinture Noire

  • Minko
  • PipPipPipPipPipPipPip
  • 210 messages

Posté 20 April 2012 - 13:46 PM

Bonjour à tous,

Minko 2 est disponible dés aujourd'hui sur GitHub dans une branche 2.0b.

Pour l'instant, seul le coeur du framework est disponible. Les extensions pour le chargement de fichiers ou encore le moteur d'éclairage seront rendues publiques une par une dans les jours/semaines qui arrivent. Lorsque le SDK communautaire sera finalisé, il sera disponible directement en téléchargement depuis notre site.

Cette nouvelle version garde beaucoup des logiques de la précédente :

- un code le plus clair et le plus compréhensible possible
- le possibilité de programmer le GPU en ActionScript
- une architecture modulaire articulée autour des extensions


Elle inaugure cependant un certain nombre de nouveautés :

- l'arrivée du format MK, premier format 3D optimisé pour la 3D sur le web/le mobile avec de la compression avec/sans perte pour des fichiers jusqu'à 50 fois plus léger
- la sortie de Minko Studio, un outil d'édition de scène 3D qui permet d'optimiser le workflow graphiste/développeur
- la sortie de Minko ShaderLab, un environnement graphique pour la création d'effets 3D accélérés matériellement
- une nouvelle API de rendu qui offre un bon en performances de prêt de 3000% dans les meilleurs cas
- une orientation MVC pour faciliter l'implémentation de logiques métier
- une API de data binding permettant d'unifier et de simplifier le dialogue entre la scène et les shaders
- une nouvelle version du compilateur de shaders, bien plus rapide et avec de nouvelles optimisations
- une nouvelle API en ActionScript automatisée et simplifiée pour programmer le GPU
- la réécriture complète du moteur d'éclairage (minko-lighting) avec de meilleurs performances, le support des ombres portées pour toutes les sources lumineuses, le shadow mapping ou encore une meilleure qualité pour les effets de réflexions
- une optimisation de l'extension gérant les fichiers collada (minko-collada) avec un gain en performances significatif
- l'utilisation des "shaders parts" permettant la redistribution/ré-utilisation de fonctions de rendues accélérées matériellement
- de l'ASDoc sur presque 100% des interfaces publiques
- minko-examples, un nouveau projet open source regroupant des exemples divers et variés pour comprendre comment utiliser Minko et ses extensions





N'hésitez pas à nous faire tous les retours possibles et imaginables :)

Modifié par Jean-Marc Le Roux, 20 April 2012 - 13:55 PM.


#2 alama.be

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 224 messages

Posté 27 August 2012 - 16:52 PM

Salut JM, merci pour les infos.. je suis programmeur aS3, mais je n'ai aps encore exploré la 3D Stage3D, je compte prochainement m'y mettre. Par contre, je suis un peu perdu, pour le moment, je lis, je regarde.. Minko apporte quoi comme différence? comment choisir avec quel système ou framework commencer? Quel est le meilleur outil actuel entre Away3D, Unity, Alternativa, etc? Pour le moment, je suis fort attiré par Unity sauf que le script n'est pas en AS3, juste un exportation vers Flash Player. Mais Adobe à annoncé officiellement une collab avec Unity, que faut il en penser?
Ne baisse jamais les bras, car c'est à ce moment là que le miracle risque de se produire..

Site web: http://www.pureas3.org
Twitter: https://twitter.com/PureAS3

Enjoy with Flash Player :-)

#3 Galacta

    Etudiant Ingénieur

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 689 messages

Posté 27 August 2012 - 19:32 PM

Génial, super boulot, chapeau !

PS : Possible d'avoir le titre de la musique jouée dans la seconde video s'il te plait ? (A) Merci !
Word hard, play hard.

#4 Jean-Marc Le Roux

    Ceinture Noire

  • Minko
  • PipPipPipPipPipPipPip
  • 210 messages

Posté 31 August 2012 - 18:00 PM

Citation

Par contre, je suis un peu perdu, pour le moment, je lis, je regarde.. Minko apporte quoi comme différence?

C'est un framework de 3D complet tout en AS3, open source et gratuit. Il apporte tout ce que les autres frameworks - comme Away3D ou Alternativa - apportent. Mais avec beaucoup d'autres features. Comme par exemple :
- la possibilité de programmer le GPU en AS3 (et non en assembleur)
- faire des programmes GPU dynamiques
- un outil de création de matériaux (shaderlab, dispo en beta)
- un outil de création de scènes 3D
- la compression/simplification automatique des modèles 3D
- une approche MVC pour faciliter la création d'application, la réutilisation du code et son extensibilité
- un support étendu du format Collada
- les effets post-processing (hdr, noise...)
- les interactions à la souris précises au pixel près

Et bientôt :
- le streaming de modèles 3D
- un moteur physique 3D
- un éditeur de terrains
- un éditeur de scripts
- un éditeur véhicules
- un éditeur de personnages

Le but étant d'obtenir un outil comparable à Unity mais pour Flash et en Flash.
Quelques captures d'écran plus récentes:

https://lh6.googleus...o_studio_32.png
https://lh3.googleus...o_studio_31.png
https://lh6.googleus...o_studio_30.png
https://lh5.googleus...o_studio_27.png

Citation

PS : Possible d'avoir le titre de la musique jouée dans la seconde video s'il te plait ? (A) Merci !

On est pas des voleurs :P c'est dans la description de la vidéo :

Citation

Music by Schematic Wizard: http://schematicwizard.bandcamp.com/

:) de rien

N'hésitez pas à consulter le dépôt github de minko où il y'a plus d'exemples/démos.

#5 alama.be

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 224 messages

Posté 01 September 2012 - 11:26 AM

Ha oui! Sympa les captures! je vais un peu charger ça pour voir.. vivement la physic.. :)

Qu'en est-il pour la 2D GPU accélérée? quelque chose de prévu?

Donc, votre but est de faire un outil complet comprenant tout, modélisation, lighting, texturing etc..) c'est cool ca! Et au niveau du rigging (bones ou ragdoll) ça le gère ou faut attendre physic ?

Bon, je regarderai tout ça dès que possible! Un grand merci JM pour tes explications :-)

EDIT:

Programmer le GPU en AS3!!?? Attend, on peut programmer quoi? est-ce que je peux par exemple utiliser le GPU pour faire des calculs? ou même le faire bosser sur un byteArray? ou c'est uniquement des instructions relative à l'affichage? (comme dans le temps, quand on programmait des Drivers graphique .com en assembleur) ? Je demande, car ça fait 18 ans que je ne fais plus ce genre de chose et je sais que les puces graphiques ont vachement évolué.. Mais du coup, ça m’intéresse, est ce qu'il serait immaginable de faire un DSP exécuté par le GPU ?

Edit 2:
J'ai regardé un peu les sources, mais rien ne m'a sauté aux yeux à ce sujet.. Faut dire, je ne comprend pas grand chose au code.. faut être dedans pour capter :)

Avec le nouveau ASC 2.0, il va encore y avoir du taf, comme passer un max de petites Fx en [inline] ça va booster le moteur. :-)
Ne baisse jamais les bras, car c'est à ce moment là que le miracle risque de se produire..

Site web: http://www.pureas3.org
Twitter: https://twitter.com/PureAS3

Enjoy with Flash Player :-)

#6 tlecoz

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 3486 messages

Posté 02 September 2012 - 16:55 PM

@Alama.be : j'ai déplacé le reste de la conversation dans ce sujet pour ne pas polluer ce sujet (car on était tous complètement hors sujet ^^)
http://forums.mediab...__fromsearch__1

#7 alama.be

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 224 messages

Posté 02 September 2012 - 16:56 PM

Ok! je me demandais ce que ce passait.. :)
Ne baisse jamais les bras, car c'est à ce moment là que le miracle risque de se produire..

Site web: http://www.pureas3.org
Twitter: https://twitter.com/PureAS3

Enjoy with Flash Player :-)

#8 Jean-Marc Le Roux

    Ceinture Noire

  • Minko
  • PipPipPipPipPipPipPip
  • 210 messages

Posté 03 September 2012 - 12:52 PM

Oui on peut à priori faire du calcul "généraliste" sur le GPU en utilisant les shaders AS3. Mais je ne m'y suis jamais frotté. Il y'a par contre à priori toutes les APIs dont tu pourrais avoir besoin, il suffit juste de les wrapper correctement pour "gommer" le côté purement graphique de la chose.

Un gamedev m'a montré un moteur de particules accéléré matériellement tout en AS3, il utilisait une grosse partie des APIs de Minko. Les shaders AS3 oui mais aussi des formats de vertex custom, pour passer les données des particules.
Un peu comme on le fait avec le PointsExample.

Les shaders en AS3 de minko proposent une API complète - incluant un compilateur JIT - qui permet de transformer du code AS3 tout à fait normal en bytecode AGAL lors de l'exécution. A ce titre, il permet de faire beaucoup de choses indispensables qu'AGALMiniAssembler ne fera jamais:

- c'est du vrai code AS3 : un shader => une classe, vous pouvez hériter d'autres shaders pour faciliter le travail, faire des fonctions, etc...

- un shader qui affiche la profondeur de chaque pixel
- un shader qui affiche la normale de chaque pixel
- un shader qui affiche la position de chaque pixel
- un shader qui affiche les coordonnées de texture de chaque pixel

- l'allocation mémoire : le compilateur alloue la mémoire automatique. On n'a pas à se soucier des constantes, des temporaires, des textures, des buffers, etc... Tout est géré automatiquement, et bien mieux que notre petit cerveau humain ne pourrait le faire. Il va aussi "compresser" les constantes en fonction de plein de paramètres.

- l'optimisation du code : AGAL est limité à 200 instructions. Il est donc important d'éviter toute opération inutile. Le compilateur va - par exemple - s'assurer qu'aucun calcul n'est fait 2 fois, que le code mort est éliminé et que certaines opérations sont regroupées.

- la compilation JIT : le compilateur peut recompiler des shaders automatiquement lorsque c'est nécessaire. Chaque shader peut ainsi gérer des milliers de cas de figure différents, là où un programme AGAL n'en gère qu'un. Exemple : gérer plusieurs lumières, plusieurs influences par bones, etc... C'est entièrement transparent : on écrit un shader, on met des if, des for, etc... et quand les conditions de ces if/for changent, alors le programme est recompilé pour créer le bytecode AGAL qui correspond.

- l'API de data binding : elle permet de passer des valeurs entre le code métier/la scène et les shaders.
Mais elle permet aussi des choses beaucoup plus subtiles : des matériaux dynamiques, des propriétés partagées, etc...

L'API de data binding permet aussi - et c'est un gros intérêt de la compilation JIT - de changer ce que fait une shader en fonction des informations disponibles dans la scène/sur le mesh.

- les "shader parts" : comme c'est du code AS3 tout ce qu'il y'a de plus normal, on peut faire des fonctions utiles et les regrouper dans des classes en fonction de leur but. C'est ce qu'on appelle des "shader parts", des sortes de helper qui permettent de facilement ré-utiliser/partager du code.

Cf ma réponse plus complète avec des exemples concrets sur cet autre thread.

Si tu veux parler plus concrètement des shaders en AS3, je te propose de créer un nouveau sujet dans ce même forum :) Merci.

Modifié par Jean-Marc Le Roux, 03 September 2012 - 12:56 PM.


#9 alama.be

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 224 messages

Posté 03 September 2012 - 14:55 PM

Un grand merci pour toutes ces infos Jean-Marc, je vais lire l'autre post :-) Je vais arrêter de poser des questions dans le vide, et je vais plutôt expérimenter Minko.. les questions viendront d'elles-même .. :eusa_doh: :mrgreen:
Ne baisse jamais les bras, car c'est à ce moment là que le miracle risque de se produire..

Site web: http://www.pureas3.org
Twitter: https://twitter.com/PureAS3

Enjoy with Flash Player :-)



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