XXP

mai 2016

lun. mar. mer. jeu. ven. sam. dim.
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          

« Silverlight : Sealver Algea | Accueil | Silverlight : Sealver Algea »

05 janvier 2009

Silverlight : Sealver Algea

Things(In english below)

Je travaille joue depuis quelques semaines avec Silverlight pour faire un machin inutile mais amusant, une animation inqualifiable, assez marine quand même, et qui amène une proposition de réponse au problème d'agiter en temps réel des objets munis d'une masse dans un champ de vecteurs 2D fonctions du temps qui modélise le courant. La difficulté principale est de calculer le moins souvent possible le champ de courant, qui peut être une fonction lourde, typiquement trigonométrique pour des effets de houle.

Le principe est que chaque objet s'abonne aux champs, et que ceux-ci sont triangulés : les valeurs exactes sont calculées à chaque point du triangle, toutes les autres valeurs sont calculées par interpolation linéaire des extrémités des triangles, aux positions des abonnés.

Vous pouvez jouer vous aussi en cliquant là (ne faites pas trop peur aux bestioles avec votre souris svp).

J'hésite à vous laisser les sources en l'état (code mort et/ou commenté), mais je n'ai pas le temps de les peaufiner. Donc si jamais ça vous inspire, les sources pour Visual Studio 2008 sont au bout de ce lien. A noter qu'il y a deux sous-projets qui compilent les mêmes sources, l'un pour Silverlight l'autre pour WPF, pratique pour optimiser le code avec le profiler de Visual Studio.

Inutile de vous dire qu'on peut faire mieux à divers point de vue. A ce propos si vous voulez un moteur de rendu physique complet pour Silverlight (et XNA), voyez du côté de Farseer, c'est du sérieux.

Quand même, réinventer la roue, quel plaisir !

English abstract

This small application is a simple attempt to animate objects in a field of forces that mimics hydrodynamics. Forces are computed on a publisher/subscriber pattern -- objects subscribe to fields, and fields are triangulated to avoid heavy computation of trigonometric functions on too many points of the 2D space.

See it running here, and download the source code if you really need it (which is an eternal draft, refactor as needed...).

TrackBack

URL TrackBack de cette note:
http://www.typepad.com/services/trackback/6a00d8341c871f53ef010536b0d690970c

Listed below are links to weblogs that reference Silverlight : Sealver Algea:

Commentaires

Excellent ! Je joue avec depuis 5 min pour comprendre le comportement des bestioles haha...

Bon, faut en avoir l'idée, mais même si j'avais eu envie de faire un truc dans le genre, j'aurais été incapable de savoir par où commencer. J'essairai de me cultiver un peu ce soir en jetant un coup d'oeil aux sources, et en attendant je te tire mon chapeau pour ce bel exemple.

Ludique et intelligent, ça donne envie de "s'amuser" à nouveau.

Pour info, tu peux nous expliquer comment sont censés réagir les différents bidules aux interactions de l'utilisateur ?

Side Note : L'appli est très fluide je trouve, presque plus qu'une textbox silverlight... Allez donc comprendre !

Bravo en tout cas :)

Merci ça me va droit au coeur :)

Les bestioles (CtrlCylinder)ont peur de la souris : elles se rétractent à son arrivée et tentent de se fondre dans le décors en prenant la teinte de l'arrière-plan (oui c'est dérisoire mais la nature est ainsi faite :)

Les bestioles ont la mémoire courte : quelques secondes après la venue de la souris, leur unique tentacule (CtrlHair) ressort prudemment.

Les bestioles pondent : quand le courant est faible, un oeuf (CtrlEgg) se forme au bout de leur appendice. Il se détache dès que le courant est un peu fort. S'en suit une période d'infertilité (m_timeToEgg)pendant laquelle la bestiole ne plus pondre, la pauvre.

Pour corser le tout, le curseur de la souris crée une source de courant. Si on clique, cette source se transforme en puit, un aspirateur en somme.

Un des points d'entrée pour comprendre le code est la classe CtrlThings1 et sa méthode OnCtrlLoaded... Pff ca me parait impossible de tout expliquer là comme ça (et typepad devrait faire ses textarea encore plus petites). En revanche si je peux éclaircir des points précis n'hésite pas je le ferais avec plaisir.

Dear Denis.

Thaks a lot for yuor nice blog and information. I wish I could undestand French. Your Sealver Algea application is very very attractive. Supper job Man!

Could you please also provide English translation of yuor blog?

Yes as the post is of good thought and suggestion is well said

Thaks a lot for yuor nice blog and information. I wish I could undestand French. Your Sealver Algea application is very very attractive. Supper job Man!

I work for a few weeks playing with Silverlight to make a gadget useless but amusing animation unspeakable quite navy anyway, and that brings a proposed answer to the problem of real-time shake objects with a mass in a field 2D vector functions of time that the current models. The main difficulty is to calculate the least often as possible the flow field, which can be a heavy feature, typically for trigonometric effects of swell.Thank you for your information.

Then come back and post the URL of your creation when ready...

Un super travail à la limite de l'happening...
technique et graphique, un comportement sensé dans un "monde" rendu cohérent.
J'adore l'idée.
Merci.
(j'en ai fait un petit billet d'ailleurs sur mon blog afin de faire connaître le tien).

Génial comme animation, le problème c'est qu'on peut y passer des heures dessus ^^ Vraiment sympa. Je ne savait pas que l'on pouvait faire ce genre de chose avec silverLight. Je vais étudier ca de plus près. Ca peut faire de jolis effets pour nos sites ;) Merci encore.

Je ne savait pas que l'on pouvait faire ce genre de chose avec silverLight.

Le lien du jeu ne marche pas! Dommage j aurai bien testé

Je confirme que le lien du jeu ne fonctionne pas... Dommage :)

c'est peut etre parce que tu es sous mac que ça ne fonctionne pas ?

oui je confirme sous mac ca marche pas

Dommage. Avez-vous installé la dernière version de Silverlight pour Mac, par exemple depuis http://www.clubic.com/telecharger-fiche224854-microsoft-silverlight.html ?

C'est vraiment chouette! Ces bestioles sont amusantes

oui vraiment intéressant :)

Hey this is great stuff, very informational! I will definitely follow it, Thanks for all of your hard work and keep up the good work.

Bonjour, ca fonctionne bien en tout cas sous Firefox 3.6. Pas de souci. Marrant comme animation :) Pas contre ca peut vite devenir un hobby au bureau ca ^^ Pas sur que le patron apprécie. Merci Silverlight ;)

L'utilisation des commentaires est désactivée pour cette note.