C'est bien de ça que je parlais :
La seule partie encore coûteuse est la recherche des éléments qui peuvent être en collision, toutes les combinaisons sont testées 2 à 2, cela changera une fois le quad tree intégré.
C'est bien de ça que je parlais :
La seule partie encore coûteuse est la recherche des éléments qui peuvent être en collision, toutes les combinaisons sont testées 2 à 2, cela changera une fois le quad tree intégré.
Je ne crois pas non, la grille n'a pas besoin de faire les tests 2 à 2. c'est déjà un quad tree en soit une grille. Le cas des tests 2 à 2 c'est pour les autres types de géométrie.
Par exemple :
- une grille de 1000x1000x1000 et des cellules de taille 1 ;
- une sphère de rayon 2.
Le test de collision ne va pas tester 1e+9 combinaisons
Il va y en avoir 2x2x2 = 8 ou dans le pire des cas 3x3x3 = 27 combinaisons et encore unique les cellules 'pleines' seront testées. Dans le cas réel il y en a encore moins car la sphère ne pourra jamais atteindre un endroit où toutes les cellules sont pleines, il y aura eu collision bien avant. donc dans la pratique il y a au final moins d'une dizaine cellules 'possiblement pleines et en contact' lors d'une mise a jour.
toujours plus :
- Font : nouvelle font incluse : Mona
- TTF : decodage des glyphs format 4 (voir spec)
- Widget : palette standard passe de 8 a 24 gradiants.
- Widget : apercu des modele 3d dans l'explorateur de fichier
- Widget : class de binding entre propriété de widget
- OpenGL : mise a jour vers JOGL 2.2
- OpenGL : correction de fuite memoire gpu dans les morph target
- OpenGL : amelioration du SSAO
- Physic : draft de support des rotations
- Blender : multiple correction dans le parseur de .blend
- PMD : decodage des rigid body et des contraintes
- PMD : encoder de fichier
- PMX : encoder de fichier
- Collada : amelioration du binding automatique xsd->classe
- SHIFT-JIS : correction du decodage des caracteres sur 1 octet
- Geometry : nouveaux opérateurs
> centroid : sphere, capsule, bbox
> collision : sphere/plan, sphere/bbox, plan/capsule, capsule/capsule
> nearest : plan/segment, point/triangle, segment/triangle, triangle/triangle
Et une petie image des améliorations du SSAO (Screen Space Ambiant Occlusion) :
Bonsoir, aller on continue :
- NFA : amelioration de l'automate (outil de parsing)
- Parser/Lexer/Grammar : multiple ameliorations
- MP4/ADTS/AAC : travail d'intégration (voir ci-dessous)
- Logger : amelioration de l'API, plus simple d'utilisation
- OpenGL : multiple amelioration grace au week-end jeu
- OBJ : amelioration de la reconstrction des modèles, support de multiple materiaux part groupe
- GLPainter2D : support AlphaBlending (Porter-Duff rules)
Le Week-End jeu de la semaine derniere a permit de faire beaucoup de petit correctif dans la partie opengl et les widgets, on peut maintenant dire que le moteur est suffisament avancé pour faire des jeux.
- Repaint
Comme a mon habitude je place ce jeu en Public Domain, toute les sources sont disponibles ici :
- https://bitbucket.org/Eclesia/unlicense-gamebase
Et un gros gros contributeur en plus : Alexander Simm
Developpeur du projet : Java Advanced Audio Decoder
Faute de temps il ne pouvait plus developper son projet, je me suis donc proposé pour prendre la suite plutot que de le voir abandonné. Il a accepté et son projet est passé dans le domaine public. J'ai donc fait le travail de portage svn->hg, api javasound -> api unlicense.
Au final il y a donc en plus des pieces de choix assez rare meme dans le librairie java payante :
- AAC : decodeur
- MP4 : parsing de tous les 'box', des parties metadonnées et audio
- ADTC : decodeur
- WAV : writer
Ca n'a pas l'air de beaucoup mais c'est 160 commits sur plus de 2ans de travail, les format AAC et MP4 sont loin d'etre simple.
On applaudit Alexander Simm, il le mérite amplement
Je pars 3 semaines en vacances, Bertry tu es le maitre a bord en mon absence
Ha ca fait du bien les vacances , aller on réattaque :
- Blender : quelques corrections sur de le reader de format.
- Geometry : correction intersection triangle/triangle
- JSON : reader et writer
- URL : classe URLEncoder pour échapper les caractères
- Widgets : les thumbnails de l'explorateur génére/réutilise les apercus fait par pcmanfm, thunar ..etc..
- Widgets : layout circular pour placer vos widgets en rond
- GLPainter2D : début de support d'OpenGL 3
- OpenGL : ajoute d'un pipeline préconfiguré pour les jeux, avec SSAO,FXAA,MSAA,Bloom,...etc... bref la base pour un jeu correct.
- OpenGL : support des TBO (Texture Buffer Object)
- OpenGL : des corrections sur le controlleur d'orbite
- Vector : amélioration de l'api, facilité d'utilisation
Et un nouveau module d'outil en ligne de commande avec pour l'instant 2 outils :
- reformattage d'image, pour passer d'un format à un autre
- reformattage de modele 3D
Toujours actif, c'est une bonne chose
J'avais une question (elle a peut-être été posée dans ce cas je m'excuse) : Je me demandais si le langage devais impérativement être en Java. Est-ce que du code en Javascript peut rejoindre cette bibliothèque ?
Et en revoici :
- SMTP : debut de client (draft)
- POP : debut de client (draft)
- IMAP : debut de client (draft)
- GIF : correction d'un bug sur la transparence des pixels dans les animations
- Layout : les layout sont maintenant séparé des widgets dans une API dédié.
- Widget : amelioration du binding automatique de propriétés.
- Widget : panneau de configuration du pipeline GamePhases
- Widget : style des scrollbars customizable
- Widget : possibilité d'avoir une image sur un bouton
- Widget : nouveau widget : WRangeSlider , comme un slider mais a 2 extrémités pour configurer un intervalle
- VMD : decodage des informations de cameras,lumieres et ombres
- Event : possibilité de filtrer les evenements pour les ecouteurs
- OpenGL : amelioration de la qualité des ombres (http://http.developer.nvidia.com/GPU...ems3_ch08.html)
- OpenGL : support des textures ambiante et speculaire pour les matériaux
- OpenGL : support de la réflection (mirror)
Voici une video de démonstration du GamePhases, une classe qui permet de gérer la plupart des effects et paramètres graphique d'un jeu 3D. (RGB/RGBA, MSAA, FXAA, SSAO, Picking, Depth of Field, Bloom, Shadows, Reflections)
http://jsorel.developpez.com/temp/test.ogv
et une capture d'un effet mirror.
Aller au rapport :
- Logger : amelioration de l'API, ajout d'un logger sur fichier
- Widget : moins d'evenement inutile, moins de variables inutiles.
- Lexer : plusieurs petites améliorations
- Parser : enfin le parser est fonctionnel et génére un AST à partir d'un fichier de grammaire
- Animation : reduction de la consommation memoire et cpu pour les squelettes
- OpenGL : les Mesh peuvent maintenant avoir des formes générées à la volé, calcul dans les geometry ou tesselation shader par exemple.
- OpenGL : multiple correction et améliorations du moteur
- OpenGL : les FBO peuvent etre redimensionné et changer de nombre de samples.
- OpenGL : effet de brume (fog)
- GLSL : draft de grammaire GLSL
- DirectX : draft de grammaire des fichiers .x
- Blender : ca y est on peut afficher des fichiers .blend simple (voir snapshot)
et voici un fichier blender affiché dans le moteur 3D.
Il fallait que ca arrive un jour, ca y est le projet est digne du livre des records
Unlicense-lib a atteint 230.000 lignes de code, et je n'ai trouvé aucune autre grosse librairie depuis un an donc je pense qu'il est sur d'affirmer maintenant que c'est le plus grand recueil de code dans le domaine public sur terre (rien de moins).
Le classement (stats de openhub.net)
- 230.000 Unlicense-lib (Java)
- 183.000 wilkie's djehuty (D)
- 121.000 crypto++ (C/C++)
- 100.000(estimated value) SQLLite (C)
- 89.000 Rdf.rb (Ruby)
Toutes mes félicitations pour ton travail de titan!
Je ne peux qu'applaudir des deux mains ^^ ! Bonne continuation sur ce chemin qui j'espère s'ouvre vers l'horizon .
Et on continue :
- Math : nouvelle API de système de coordonnées (cartésien)
- Unit : amélioration de l'API pour les unités
- Parameter : amélioration de l'API pour les paramètres
- Regex : ajout d'une syntaxe simplifiée pour les series de caractères insensible à la case
- Lexer : gros gain de performance. 600 tokens/ms
- Parser : ajout d'un ParserStream pour parser des fichiers de centaine de Mo.
- Parser : support des règles cyclique et recursive
- Parser : gros gain de performance et reduction de l'utilisation mémoire
- packages : renommage des packages suivant la convention : un.api.* pour les API et un.impl.* pour les implémentations
- Model3D : remplacement des RuntimeException par de vrai exceptions : StoreException
- MQO : décodeur (encore un peu buggé)
- Blender : reconstruction de la hiérarchie de la scene, des matrices de transformation, des squelettes
- Java : début de grammaire java
- ELF : début de décodage des sections
Annonce de recrutement choc
Montrez que votre slip (et string pour mesdames) n'est pas qu'un papier d'emballage vide !
encore et encore :
- Image : API et quelques implémentations classique pour les interpolateurs et extrapolateurs.
- PostScript : debut de grammaire et de parseur.
- Media : amélioration de l'API, plus simple et plus complete avec la prise en charge des sous-titres.
- Grammaire : amélioration de la syntaxe de description des grammaires
- Buffer : nouvelle API pour les Buffer/Cursor qui remplace les java.io.Buffer
- packages : gros nettoyage dans les packages qui suivent désormais le nommage : un.api.* pour les API et un.impl.* pour ce que ne fait pas partie de l'api de base.
- FBX : decodeur de fichier, le modèle 3d lui n'est pas encore reconstruit
- Blender : reconstruction des relations entre jointure et vertexes (rigging)
- Blender : reconstruction des animations
- Blender : reconstruction des ShapeKeys (KeyFrame)
- Logger : Ca y est, il n'y a plus un seul logger du java standard dans la librairie.
C'est Noel et j'ai recu un cadeau de Mark Raynsford développeur de JSpatial. Il a passé son projet en Public Domain et c'est donc le onzieme projet intégré à Unlicense-Lib avec une centaine de commit depuis 2012.
Ce projet apporte avec lui plusieurs implémentations de :
- QuadTree(2D)
- OctTree(3D)
avec la recherche par BBox ou par Rayon.
J'ai aussi fait du nettoyage sur le site afin d'afficher l'état du projet, la page principale affiche maintenant ceci :
Ce qui vous permet de savoir ce qu'il reste a faire pour ceux qui veulent contribuer, mais ne savent pas sur quoi.
Liste complète ici : http://unlicense.developpez.com
Et quelques autres petites choses :
- OpenGL : début de classe TransformFeedBack
- SWF : decodage des Shape
- Widget : séparation des classes de modèle et de rendue
- Widget : nouvelle structure pour les CellWidget (Tree,Table,List,TreeTable)
- FBX : début de grammaire ascii
- Maya : début de grammaire ascii
Un petit peu plus :
- Unity : debut de décodeur de fichier .unity3d/.assets
- Blender : divers correctifs
- Document : début d'API de type document
- Widget : géométrie des bordures customizable
- Geometry,WKT : implémentation de CircularString
- Imagerie : effet morphologique de peinture à l'huile
Au rapport une fois encore :
- Color : certaines regles Porter-Duff d'implémentées.
- ActionScript 3 : decodeur de bytecode action script 3 (pas terminé)
- WKT : writer WKT (format de geometrie en texte)
- SWF : decodage de plusieurs tags (mais il en reste encore)
- JSON : support d'ecriture avec formattage
- Unity : decodage des structures et classes (pas encore utilisable)
- Widget : support des gradiants sphériques
- Widget : support de multiple fonds et bordures pour chaque composant
- OpenGL : API TransformFeedBack
- OpenGL : amelioratin de l'api pour les shaders
- OpenGL : debut d'API pour 'Instanced Geometry'
Ca continue encore et encore :
- Encodage : ajout de l'encodage Windows-1252 (CP-1252)
- Image : Toutes les règles Porter-Duff implémentées et testées
- ActionScript3 : encore d'autre block de décodé
- 3D : Api NavigationMap utilisé poue savoir ou peut aller le personnage ainsi que pour le pathfinding
- JOGL : passage en version 2.3.0
- Blender : correction des valeurs UV inversées
- Blender : reconstruction des objets instanciés
- Blender : début de support des polygones a plus de 4 cotés
- FBX : simplification de l'arbre des données
- SPIR-V : reader et writer de bytecode SPIR-V (Vulcan)
- Ascii-Grid : reader d'image au format Ascii-Grid
- Fenetrage,Widget : support des curseurs sur mesure
- Widget : amélioration des performance
- GLSL : syntax complete pour glsl, on peut désormais avoir un AST pour les shaders
- OpenGL : sépération des classes opengl utilitaires dans un module engine-opengl-util
- OpenGL : nouvelle exception au cas ou un uniform est utilisé alors que le program n'est pas actif
- OpenGL : ajout de tests unitaires pour les lumieres et les matérieux
- Demo : nouvelle demo de rendue d'herbe
je cherche toujours des devs pour le projet :
- Math : operation de calcul du meilleur plan passant par N points
- Blender : amélioration de la triangulation des N-gons
- Blender : support des normal map
- Blender : support des multi-textures
- OpenGL : operateur de tesselation par distance
- OpenGL : methode utilitaire de conversion d'index du type TRIANGLES vers TRIANGLE_ADJENCY utilisé pour la tesselation.
- OpenGL : seconde implémentation de silhouette renderer utilisant la technique du backface culling.
- OpenGL : support des sprite sheets
- GLSL : effet Oil-painting (voir plus haut) porté en GLSL
- GLSL : nouvelle classe VertexAttribute, support des types supérieur à vec4 sur N slots (mat4, float[],...)
- GLSL : attribution automatique d'index pour les layouts
- 2D,OpenGL : debut d'api de scenographe 2D
- Widget : divers corrections sur la synchronisation et les evenements
- Physic : support des evenements lors des collisions
- Java : amélioration de la grammaire
- Regex : support du caractere joker '.'
vous en reprendrez bien encore un peu ?
- Collection : implémentation de Sequence et Set optimisé pour les types primitifs
- ZIP : possibilité de changer l'encodage des characteres a la lecture
- Console : outil d'extraction d'archive en ligne de commande
- Regex : méthode de split en fonction d'une regex
- Animation : support des aliases pour les noms des jointures
- Math : methode de conversion de quaternion vers Axe/Angle
- Math : methode de creation de matrice à partir de 3 axes
- Geometry : operation d'intersection entre frustrum/sphere, frustrum/bbox
- Geometry : le QuadTree supporte N dimension
- Image : nouvel opérateur de recoloration d'image (Recolorize dans gimp)
- Image : nouvel opérateur de rotation des couleurs/luminosité/saturation
- Unity : amelioration du parser (pas encore utilisable)
- Blender : amelioration de la reconstruction des animations (plusieurs problemes de systeme de coordonées corrigés)
- Blender : support des fichiers désordonnés, ce qui arrive quand un modèle est tres souvent modifié
- Blender : support des kinematic inverse
- Blender : support de la réflection (mirror)
- OpenGL : outil de statistique afin d'analyzer les possibles lenteur
- OpenGL : nouveau debugger pour voir les poids des jointures sur les vertex.
- OpenGL : class générique de parcours des primitives de mesh (visitor)
- OpenGL : support des déformation sphérique (Spherical Bone Skinning) dans les animations
- OpenGL : support des ombres pour les lumières directionelles (draft)
- OpenGL : nouvel effet flou radiale
- OpenGL : support du 'displacement mapping' (tesselation en fonction de la distance et deplacement selon une texture de hauteur)
- OpenGL/CPU : possiblité d'appliquer les MorphTarget en CPU directement sur le Mesh
- Widget : support des triggers dans les fiches de style, afin de lancer des actions sur des evenements (exemple : jouer un son lorsque la souris entre dans le composant)
- Widget : possibilité de configurer la réservation de l'espace si le widget est visible ou non dans les layouts
- Widget : les bordures peuvent etre exprimé avec des unités en pixels ou en pourcentage.
- Widget : support des décorations de fenetre pour remplacer celle du systeme
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager