Algorithmes

13

Variant en C++ (part 1 : php side)

mar

Avant de commencer mon compilateur, il faut que je regarde la faisabilité du projet en essayant de convertir à la main un code PHP pour voir les possibilités qui s’offre à moi. J’ai opté pour une conversion en C++ car si ce n’est pas le plus simple des langages c’est en tout cas le plus riche (de plus il existe sur la plupart des systèmes). Comme la plupart des langages de script, le PHP utilise des variants en guise de variable. Je me suis donc attaché à implémenter le type variant en C++. Il existe déjà de nombreuse implémentation, mais rien ne vaut la sienne n’est-ce pas ;) ?

more...
26

Les Courbes de Bezier #2 : collision

sept

Voici la suite de mes essais sur les courbes de Bézier ! Aujourd’hui on parle collisions !
Alors aucun doute possible, l’utilisation des Courbes de Bézier dans le cadre d’une application temps réelle (comme un jeu) doit se faire à dose homéopathique tellement les calculs qu’ils faut mettre en oeuvre sont complexes !

more...
 | Tags:
29

Les Courbes de Bézier #1

août

Un peu de géométrie aujourd’hui !
Je me suis mis à m’intéresser aux courbes de Bezier il y a quelques mois de cela ! Et je dois bien avouer que si leur utilisation est quelques peu consommatrice de ressources, j’ai un peu tendance a en abuser en ce moment, car ces courbes (comment dire) me fascinent !
Je dirai pour faire simple que la courbe de Bezier est au polygone ce que le potentiomètre est à l’interrupteur (c’est beau hein ?).

more...
 | Tags:
12

FrameRate : le nerf de la guerre

avr

Tout développeur de jeu (d’action) qui se respecte doit forcément garder une vue sur la vitesse de déroulement de son jeu et donc s’assurer d’un framerate suffisant. C’est lui (le framerate) qui garanti un jeu agréable à jouer et pas trop fatigant pour les yeux du joueur.
Sur une plateforme comme Android, nombreux sont les petits problèmes pénibles qui vont compliquer la tâche du développeur : des devices différents, des résolutions différentes, un système multi-tâche et des fréquences d’écran différentes.
Bref. Comme je développer (lorsque j’ai le temps) mon moteur graphique 2D pour Android, c’est un peu l’occasion d’expliquer les choix que j’ai fais avec leur avantages et leur inconvénients.

more...
 | Tags:
25

Réduction d’images avec NEON

nov

Ça fait un bout de temps que j’ai codé l’agrandissement bilinéaire d’une image. J’avais repoussé l’aspect réduction (qui utilise un algorithme assez différent en fait) à plus tard.
Nous y voilà !
L’algorithme est un peu plus complexe que pour l’agrandissement, mais d’un autre coté, j’ai capitalisé sur les expérimentations effectuée lors de l’agrandissement. Du coup la mise au point de ce code n’a pas pris trop de temps !
Repose-toi Mario, Ce coup-ci c’est Yoshi qui s’y colle…

more...
21

Réduction du nombre de couleurs avec NEON

sept

Aujourd’hui, je m’intéresse aux algorithmes de conversion d’une image RGB888 (16 million de couleurs) à une image RGB565 (65000 couleurs).
NEON n’a pas de prédispositions particulières pour traiter les pixels 16 bits (RGB565 sur Android) ce qui conduit souvent les développeurs à effectuer les opérations complexes sur des pixels 32 bits puis de convertir le résultat en 16 bits une fois le traitement terminé.
Contre toute attente, il existe des algorithmes très efficace et peu gourmand en temps CPU pour réaliser de façon correcte cette conversion…

more...
 | Tags: , ,
07

Performance du tracé de sprites sous Android

août

Je commence tout doucement à me faire à Android.
J’ai donc voulu tester la performance de ma Galaxy Tab. Et pour commencer avec un truc un peu ludique, j’ai testé l’affichage de sprites.
J’ai donc tester la méthode à base de Java et quelques variantes en Assembleur !!!

more...
 | Tags:
15

Agrandissement bilinéaire: Le retour

juil

Il y a quelques temps j’avais proposé un algorithme d’interpolation bilinéaire permettant l’agrandissement d’une image dont les performances quoique correctes m’avaient un peu déçues.

J’ai finalement trouvé une solution pour booster significativement la performance de l’algorithme.
Mais le plus intéressant est sans doute la technique en elle-même, qui permet de coupler les deux unités de calculs que sont l’ARM et NEON

more...
 | Tags: ,
25

Bilinear enlarge with NEON

mai

This post is a translation of “Agrandissement bilinéaire avec NEON

Between two versions of the cycle counter, I felt like a little fun with an exercise a little more playful.
So today, a small stop in the field of image processing … activity where normally, NEON is expected to excel.

more...
 | Tags: ,
25

Agrandissement bilinéaire avec NEON

mai

Entre deux version du compteur de cycles, j’ai eu envie de m’amuser un petit peu avec un exercice un peu plus ludique.
Donc aujourd’hui, petit halte dans le domaine du traitement d’images… domaine où normalement, NEON est supposé exceller.

more...
 | Tags: ,