Topic programmation

Un sujet vous titille ? A vous la parole, ici le hors-sujet est permis !

Image RetroPixel sur Discord !
Image RetroPixel sur Twitter !
Image RetroPixel sur Facebook !
Image RetroPixel sur Steam !

Modérateurs : Polak, Pix Modos

Avatar de l’utilisateur
baboum
PixoPhile
PixoPhile
Messages : 199
Inscription : 15 mars 2011, 17:36
Contact :

Re: Topic programmation

Message non lu par baboum » 11 oct. 2014, 16:10

héééé, pour le JS je suis lààà pour t'aiderrrr <33
C'est un petit peu mon langage de prédilection, donc si voilà t'as des questions toussa…
Par contre non, avec le Java rien à voir désolé o_o

Et ton concours à l'air vraiment sympa il faut regarder ça de plus près

Avatar de l’utilisateur
Gayou
Pix Flood
Pix Flood
Messages : 1805
Inscription : 30 juin 2009, 08:49
Localisation : Pluton

Re: Topic programmation

Message non lu par Gayou » 11 oct. 2014, 17:39

Ha bas si quand même, les écritures sont vachement semblables ! pour les for et les structures en if par exemple.
Image (Nevermore !) Le Corbeau, Edgar Allan Poe

Avatar de l’utilisateur
onilink_
Pix Animator
Pix Animator
Messages : 3855
Inscription : 02 août 2010, 11:00
Localisation : Montpellier

Re: Topic programmation

Message non lu par onilink_ » 11 oct. 2014, 18:56

En fait a ce niveau, tous les langages impératifs sont semblables :b

Avatar de l’utilisateur
onilink_
Pix Animator
Pix Animator
Messages : 3855
Inscription : 02 août 2010, 11:00
Localisation : Montpellier

Re: Topic programmation

Message non lu par onilink_ » 30 nov. 2014, 13:04

Histoire de déterrer un peu le topic, j'ai illustré un petit effet graphique (en glsl) que j'utilise pour centauri:
Image

Si ça peut aider quelqu'un :p

Avatar de l’utilisateur
Frimouss
Administrateur
Administrateur
Messages : 11885
Inscription : 04 oct. 2011, 22:56
Contact :

Re: Topic programmation

Message non lu par Frimouss » 30 nov. 2014, 23:57

C'est sympa cette illustration.
Du coup tu utilise la greyscaled image pour ensuite modifier la couleur, mais l'utilises-tu aussi comme une normal map dans les cas ou tu render des materiaux de type or ou argent (pour la specular, etc?). Ma question est peut-etre totalement debile haha, je ne sais pas si ce genre de truc fonctionne de la meme maniere pour la 2D et la 3D (que je connais mieux). :)

Avatar de l’utilisateur
onilink_
Pix Animator
Pix Animator
Messages : 3855
Inscription : 02 août 2010, 11:00
Localisation : Montpellier

Re: Topic programmation

Message non lu par onilink_ » 01 déc. 2014, 00:03

Héhé ouai nan pour la 2d retro généralement ça rend moche :D

Enfin ça dépend surtout du style visuel choisis dès le début, mais dans ce jeu ça colle pas du tout :p

Avatar de l’utilisateur
onilink_
Pix Animator
Pix Animator
Messages : 3855
Inscription : 02 août 2010, 11:00
Localisation : Montpellier

Re: Topic programmation

Message non lu par onilink_ » 03 déc. 2014, 09:48

Petit moteur physique a base de verlet et constraints:
Image

Exe + source:
http://host-a.net/u/onilink_/verlet3.7z

Bientôt la version 4d, quand j'aurais réussi a faire une jolie projection :M:

Avatar de l’utilisateur
onilink_
Pix Animator
Pix Animator
Messages : 3855
Inscription : 02 août 2010, 11:00
Localisation : Montpellier

Re: Topic programmation

Message non lu par onilink_ » 08 déc. 2014, 09:56


Avatar de l’utilisateur
Cancre
Pix Modo
Pix Modo
Messages : 10436
Inscription : 23 févr. 2009, 11:14
Localisation : Banlieuzar
Contact :

Re: Topic programmation

Message non lu par Cancre » 18 déc. 2014, 12:09

Retirez une lettre d'un nom de jeux et... http://imgur.com/gallery/Ynw75

Avatar de l’utilisateur
onilink_
Pix Animator
Pix Animator
Messages : 3855
Inscription : 02 août 2010, 11:00
Localisation : Montpellier

Re: Topic programmation

Message non lu par onilink_ » 01 févr. 2015, 14:46

timmy a écrit :Ya plusieurs années tu avais codé une implémentation de Verlet avec une toile déchirable, je suis tombé dessus en relisant récemment, et tu proposais d'expliquer le fonctionnement. cette proposition marche toujours ? :p
Pour ceux qui sont intéressés par verlet j'explite vite fait ici le principe, c'est assez simple et ça permet d'obtenir des résultats assez funs.

Alors déjà, verlet, c'est juste une intégration. Elle dit que pour la position P d'une particule a un instant donné, on peut calculer sa vitesse et donc sa position suivante si on connais juste sa position précédente:
velocity = P(t) - P(t-1)

Donc la, rien de compliqué a programmer, si on veux déplacer une particule en utilisant verlet:

Code : Tout sélectionner

Vec2 velocity = i.pos - i.lastPos;
Vec2 acc = gravity;
velocity -= velocity * (1.f - friction);
i.lastPos = i.pos;
i.pos += velocity + acc;
La vous allez me dire qu'avec Euler c'est tout aussi simple, alors pourquoi utiliser spécifiquement verlet?
Bah verlet a la particularité de très bien fonctionner, et en nécessitant très peux de coûts en calculs quand il s'agit de simuler des corps composé de plusieurs particules, et donc aussi de contraintes.
Par exemple des softs bodies, des cloth, des blobs, etc...
Un jeu plutôt connus qui exploite a fond verlet c'est World of goo, avec ses structures funs.

Pour simuler une contrainte de distance, rien de bien compliqué, pour chaque contrainte, on va calculer la distance entre les deux particules qu'elle relie, puis le coefficient de différence entre la distance réelle et la distance attendue par la contrainte.
On applique ensuite une force qui va attirer ou repousser les deux particules selon si la contrainte est trop étirée ou trop compressée.

Ce qui donne en code C++:

Code : Tout sélectionner

od::Vec2 normal = a->pos - b->pos;
float m = normal.lengthSquared();
normal *= (m_distanceSquared - m)/m * m_stiffness * iterCoef;
a->pos += normal;
b->pos -= normal;
Attention par contre, calculer les contraintes qu'une seule fois pour chaque iteration de la simulation risque de donner des résultats très moyens.
Il est conseillé d’itérer plusieurs fois sur les contraintes pour chaque iteration du mouvement qui utilise l’intégration de verlet.

Code : Tout sélectionner

applyVerlet(particles);
for(int i=0; i<10; ++i)
  applyConstraints(particles);
Edit:
Lien bonus pour plus d'infos sur les intégrations: http://codeflow.org/entries/2010/aug/28 ... nge-kutta/

Répondre