PDA

Voir la version complète : vagues et embruns: l'Add-the-sea du pauvre.



Page : [1] 2

picot
08/02/2008, 08h10
J'ai pendant quelques temps abandonné C4d, pris par l'exploration de Vue 6 Esprit. Mais mes recherches pour une mer réaliste assez facile à obtenir avec Vue, me ramènent à notre bon vieux C4d. En voyant les démos faites avec Add-the-Sea, je me suis dit que l'on devait pouvoir sortir quelque chose de valable. J'en suis là actuellement :
http://www.deltazone.org/~fc4d/images/picot_mer01.jpg.
Ce résultat est obtenu par une texture avec déplacement. Maintenant j'aimerais utiliser le déformateur formule mais je bute sur son utilisation. En dépit de nombreuses tentatives je n'arrive pas à comprendre son principe de fonctionnement; étant donné une formule mathèmatique comment l'appliquer? J'ai parcouru l'excellent Wip de Base80 sur les splines formule mais ça ne m'a rien apporté. Il y a bien un c4diste qui s'y connait? :P
Question subsidiaire: y-a-t'il des utilisateus d'Add-the-sea et quelles sont leur sentiment?
PS Je suis obligé d'avouer que je suis une parfaite buse en ce qui concerne les maths: ça n'a pas fait partie de mon cursus :cry:

base80
08/02/2008, 12h44
Etant aussi une buse en math, j'ai jamais réussi a contrôler ce deformateur. C'est pour ca que le sujet n'est pas abordé dans le wip-tut des formules.
Sorry.

Red
08/02/2008, 13h27
Ben sans maths, c'est effectivement inutilisable. Et dans tous les cas, c'est un peu rigide pour animer une surface d'eau, mieux vaut passer par des dégradés cycliques dans le déplacement.

lenogre
08/02/2008, 13h57
Ajoute un déformateur Souffle

picot
09/02/2008, 19h40
Hé bien, merci les gars.... Je vois que ce déformateur formule ne fait pas partie du bagage de l'honnéte c4diste(déiste?)! :mrgreen:
Aprés de longues recherches (merci au détective :google: ) je me suis apercu que la question était récurrente et de manière internationale, mais les réponses sont toutes aussi laconiques : heu non, peut-être avec Xpresso, .. Je me demande pourquoi Maxon maintient une possibilité et la documente si mal! :mrgreen: Ceci dit, il semble que certains savent s'en servircar je crois avoir vu qu'Add-the-sea en faisait usage, mais je n'ai pas retrouvé la référence. Le déformateur souffle peut servir mais les vagues ne sont pas réalistes, beaucoup trop arrondies. Pour ne pas rester sur un échec j'ai essayé le déplacement animé, ça donne ceci:
http://www.deltazone.org/~fc4d/autres/picot_vague.avi. Ca fait illusion mais pour faire une tempête ou des vagues déferlantes ça n'est pas gagné.
PS Je vais regarder du coté de Ditools, y-aurait peut-être une ouverture! :D

Jean-Laurent
09/02/2008, 22h03
Il faudrait récupérer les formules mathématiques d'une mer réaliste.
Pas certain que ça coure les rues.
Une première piste:
http://www.lmm.jussieu.fr/~lagree/SIEF/SIEF97/sieft97.html
C'est surtout que le mouvement très irrégulier ne doit pas correspondre à une même formule simple.

Maintenant je peux te donner plusieurs formules à essayer d'ondes progressives.
La sinusoïde classique est de la forme y = A* cos (k.x-wt) (Déplacement suivant l'axe x)
C'est la vague arrondie qui se propage. A est la hauteur de la vague, k est lié à la distance entre deux vagues et w est la vitesse de déplacement des vagues.

Pour "ajouter" des petites vagues dans les grosses, on rajoute des harmoniques. Comme en musique.
y = A cos (kx-wt) + B cos (k1x-wt) + C etc ...

Les petites vagues peuvent par exemple se déplacer dans les grosses plus vite, voire en sens contraire.
Il faut ensuite faire des essais.

On peut également faire varier l'amplitude des vagues (soit en fonction de l'endroit où elles se trouvent soit en fonction du temps) en remplaçant A par une formule du genre A(x) ou A(t) ou A(x,t).

Ce que je dis est sans doute de l'hébreu pour toi.
Le plus simple si ça t'intéresse est que je te donne des exemples avec le déformateur formule.
Là je suis un peu pressé, mais dés lundi c'est possible.

picot
09/02/2008, 22h53
Merci Jean-Laurent, mon problème en fait est double: je ne suis pas doué en math, mais si l'écriture de la formule est simple je pense savoir l'appliquer, mais en ce qui concerne les formules pour une mer réaliste cest assez coriaces et il semble que les plus réalistes fassent appel au tranformée de Fourier. Le deuxième écueil c'est qu'en dépit de nombreux essais je n'ai pas du tout compris comment fonctionnait le déformateur formule: qu'attend-t-il comme données et sous quelle forme,etc, etc...
De toutes façons il n'y a pas d'urgence et j'attendrai bien volontiers les explications que tu pourras m'apporter. Encore merci et bon dimanche.
Picot un peu dépassé :coup:

lenogre
10/02/2008, 01h04
Je me suis penché sur le pb mais à la fin j'ai un pb de lissage pénible que je n'arrive pas à résoudre.

J'ai créé un plan avec bcp de divisions. A ce plan j'ai associé 2 déformateurs souffle, l'un étant à 45° de l'autre. Ça permet de faire un mvt irrégulier. Le tout est placé dans un hypernurbs.
La caméra est placée en oblique du plan pour accentuer le côté irrégulier

Au niveau des textures, pour faire l'écume, il y a un truc tout simple : Puisque l'écume se forme à la crête des vagues, il suffit d'appliquer une texture en planaire juste au sommet des vagues. Un dégradé avec turbulences placé dans le canal Luminescence fait l'affaire. Tu récupères ton dégradé que tu places dans le canal alpha, ça te permet de la combiner avec la texture de base.

[Fichier joint supprimé par l'administrateur]

Jean-Laurent
10/02/2008, 09h41
il semble que les plus réalistes fassent appel au tranformée de Fourier. Le deuxième écueil c'est qu'en dépit de nombreux essais je n'ai pas du tout compris comment fonctionnait le déformateur formule: qu'attend-t-il comme données et sous quelle forme,etc, etc...


Pour la transformée de Fourier, c'est pratiquement le principe que je te décris. (En réalité "série" de Fourier).
Derrière ce nom à dormir debout se cache un principe très simple.
Toute forme qui se répète peut se mettre sous la forme d'une somme de fonctions sinusoïdales.
Si par exemple tu sais exactement la forme de vague que tu veux avoir tu me la dessine et je te donne la fonction mathématique correspondante.
C'est un peu le même principe que pour le son. La forme de base est une vague qui correspond à un sifflement.
Puis en ajoutant des harmoniques (d'autres vagues plus petites) on ajoute le timbre qu'on veut et on peut jouer de la trompette ou de la guitare.

Pour le noeud formule c'est encore plus simple.
Dans le cas d'une vague je conseille le mode "Manual".
On rentre alors les équations suivant X,Y,Z.
En mode radial ça déformera par rapport à un point. Ce qui n'est pas intéressant, sauf si tu veux faire l'impact d'une goutte sur l'eau. Autre équation possible et facile.

Exemple: Si les vaques se déplacent suivant X. Tu rentres dans Y: 2*Cos(3*x-1*t) par exemple.
Y, car les vagues "montent" suivant Y. En changeant le 2 tu changes la hauteur de la vague, en changeant le 3 tu changes la distance entre les vagues (penser à bien subdiviser le plan). En changeant le 1 tu changes la vitesse de déplacement des vagues.

Maintenant en faisant: Y: 2*Cos(3*x-1*t) et X: 2*Cos(3*x-1*t)
Tu as une vague qui se déplace en biais.

Pour plus de réalisme il faut ajouter des petites vagues dans les grosses: Y: 2*Cos(3*x-1*t) + 1*Cos(6*x-1*t)
Là j'ai ajouté une vague deux fois moins haute, mais deux fois plus courte.

Lundi je te donne des exemples plus complets et précis.

Pour le texturage je tenterai le truc de lenogre.

Red
11/02/2008, 09h43
Un autre point important pour le réalisme de ta mer, c'est que le mouvement de l'eau ne se fait que de bas en haut, et ne se déplace pas (ou pratiquement pas) dans le sens horizontal. Quand tu fais des tests, plaque une texture en mode planaire sur l'eau, ça évitera déjà l'illusion que les vagues avancent.

picot
12/02/2008, 07h52
Je suis toujours en train de bricoler sur les formules fournies par Jean-Laurent, mais surtout j'explore les diffèrents textes relatifs au mouvement des vagues. Le plus souvent c'est en anglais avec des notations mathématiques absconces :mrgreen: Jean-Laaurent je crois que je vais te refiler le texte qui me semble le plus prometteur en espérant que tu pourras le décortiquer.
Red tu as tout à fait raison, en fait les particules d'eau font une rotation sur place et le déplacement des vagues n'est qu'une illusion.
PS Pour le déformateur formule j'ai eu un instant de doute car je ne trouvais pas l'option manuel, en fait en français c'est "définir".
RePS: J'ai vu que le WIP de Base sur les formules a été réactivé. Les FrenchC4distes sont des gens curieux qui veulent tout comprendre :lol:

Jean-Laurent
12/02/2008, 13h09
Excuse moi Picot pour le service après vente défectueux. :oops:
J'avais dis lundi mais finalement le SAC c'est un peu prolongé et j'ai fait le SMC dans la foulée.
Je fais des vagues cet après-midi. :wip:

Pour les formules n'hésites pas à les envoyer.
L'ennui c'est que je connais beaucoup d'équations de mécanique des fluides mais souvent ce sont des équations différentielles "non linéaires".
En gros et pour simplifier on ne peut pas en tirer une formule toute bête à rentrer dans le noeud formule.

Par contre si tu as une forme de vague qui te plait bien, et que tu joins un dessin. Aucun problème pour le mettre en formule normalement. Avec une décomposition en séries de Fourrier.

N'hésite surtout pas à m'envoyer un lien vers des textes abscons en anglais par MP.

Effectivement Red à raison. Les vagues correspondent à des ondes transversales. Comme une corde qu'on agite rapidement.

picot
12/02/2008, 20h52
T'inquiètes pas Jean-Laurent! Tu m'as déjà mis le pied à l'étrier et j'ai réussi à écrire la formule de la cissoîde qui correspond d'avantage à la forme d'une vague (d'aprés la littérature ad hoc). En conjuguant 3 déformateurs formule orientés différemment, j'arrive à quelque chose d'intéressant. Pour un résultat optimal, il faudrait introduire là-dedans un paramètre aléatoire pour briser la régularité des ondes et là je sèche. Il ne semble pas qu'il y est une variable random! :mrgreen:
Ma petit formule:
http://www.deltazone.org/~fc4d/images/picot_cissoide.jpg
J'ai également un souci avec la vitesse des vagues qui ne se déplacent guère vite actuellement. Affaire à suivre.

Jean-Laurent
12/02/2008, 22h45
T'inquiètes pas Jean-Laurent! Tu m'as déjà mis le pied à l'étrier et j'ai réussi à écrire la formule de la cissoîde qui correspond d'avantage à la forme d'une vague (d'aprés la littérature ad hoc). En conjuguant 3 déformateurs formule orientés différemment, j'arrive à quelque chose d'intéressant. Pour un résultat optimal, il faudrait introduire là-dedans un paramètre aléatoire pour briser la régularité des ondes et là je sèche. Il ne semble pas qu'il y est une variable random! :mrgreen:
Ma petit formule:
J'ai également un souci avec la vitesse des vagues qui ne se déplacent guère vite actuellement. Affaire à suivre.


Tu te débrouilles comme un chef. Je te laisse chercher. :mrgreen:

Quelques petites précisions:

Dans ta formule à l'intérieur du sinus et du cosinus on trouve les termes ( (1*x)-(1*t)) ou ((1*x)-(0.9*t))

Ce terme se met habituellement sous la forme générale (k*x - w*t)
Ou k est lié à la "période spatiale" ou longueur d'onde notée "l" (en réalité lambda). C'est la distance entre les sommets des vagues.
On a k= 2*pi/l

Ainsi si tu remplaces ta formule par (2*pi/l*x - 1*t) en rentrant la valeur de "l" tu rentres directement la distance entre deux vagues en m C4D.

De même "w" est la pulsation. Liée à la période temporelle notée T par la relation w=2*pi/T
La période T est le nombre de frames pour que le sommet d'une vague soit remplacée par le sommet d'une autre.

Ainsi dans ta formule en écrivant: ((2*pi/l*x - 2*pi/T*t) tu contrôle de manière très précises les caractéristiques de tes vagues.

Donc si tu as tout compris pour accélérer tes vagues c'est très facile il faut diminuer T (temps entre deux vagues).

Avec tes formules précédentes ça donne ((1*x)-(5*t)) à remplacer dans les deux formules.
Le fait d'avoir mis un 5 devant le t va accélérer l'animation par 5.

De même si tu fais: ((0.5*x)-(1*t)) là tu doubles la distance entre les vagues.


Pour finir tu n'as pas besoin de trois déformateurs. Sauf si ça te fais plaisir.
La somme des trois étant linéaire il suffit de rentrer correctement les 3 formules dans le même.
Avec un "+" et un cosinus en fonction de l'angle entre les déformateurs.


Edit: Ah oui j'oubliais.
Il y a une formule qui est une bonne alternative à ta cissoïde. Tu te contentes de mettre:
Y = -abs(cos(kx-wt)) comme tu l'as compris par exemple: Y = -abs(cos((x-t))

Pour l'aléatoire j'ai pleins d'idées. Il existe une fonction aléatoire un peu pourrie dans C4D (il faut rentrer un nombre de référence) mais je n'ai pas essayé si elle marche dans le noeud formule.
Mais pour casser la régularité c'est facile. Il suffit de faire varier certains paramètres de la vague à la fois en fonction de la position et en fonction du temps.

On peut par exemple faire en sorte que les vagues soient plus courtes près du bord.
Ou qu'elles se resserrent par endroit, puis s'éloignent avec le temps.

Si tu as bien compris mon histoire de T et de "l" il suffit de faire varier ces paramètres dans le temps ou dans l'espace.
Les possibilités sont presque infinies.

Par exemple si l=10*cos(5*t) la longueur des vagues va s'allonger puis se rétrécir et ainsi de suite en plus du déplacement.
Pas très réaliste mais c'est un exemple.
A toi de voir ce que tu veux introduire comme variations.

picot
13/02/2008, 08h29
Salut Jean-Laurent et merci pour ton papier d'hier soir. Tu nages là dedans avec une facilité qui me fait envie. Moi je serais plutôt comme un gardon dans un bac de limaille! :arg: Avec ça je vais pouvoir creuser un peu plus la question. Une petite précision: tu me dis que je peux rentrer mes 3 formules sur la même ligne et ça je l'ai compris, mais je saisis moins comment faire varier l'angle pour qu'elles n'agissent pas toutes dans la même direction. Disons que la 1ère va de gauche à droite (suivant x) et que je désire que les deux autres fassent un angle de -20° et +20) par rapport à la première?
Par la suite je te demanderais de te pencher sur la question des vagues qui déferlent sur une plage, ce qui fait intervenir la notion de profondeur du fond. Il faut que je retrouve les textes.
Bonne journée. Picot qui se mouille...

Jean-Laurent
13/02/2008, 10h29
Un schéma valant mieux qu'un long laïus.

La vague de base (sans déplacement) :

http://cinema4d.chez-alice.fr/courbe1.JPG

Si Y est l'axe vertical et x l'axe horizontal la formule est:

Y = A * cos ( (2*pi/l ) *x)

A est l'amplitude (hauteur de la vague, en rouge sur le schéma).
l est la longueur d'onde. (en bleue sur le schéma).

Remarque: Un fonction sinus c'est exactement la même chose mais décalée d'un demi motif.

http://cinema4d.chez-alice.fr/courbe2.JPG

Si la vague se déplace il faut rajouter la variable temps ( t ) .

Et la formule devient pour une vague se déplaceant suivant x:

Y = A * cos ( (2*pi/l ) *x-(2*pi/T )*t)

T est la période. C'est le temps (nombre de frames) pour que la nouvelle vague prenne la même position que l'ancienne.


Les variables A , l et T peuvent varier comme on le souhaite. En conservant le schéma des formules précédentes.

Par exemple si on fait varier A (hauteur des vagues).

Avec la formule: A = exp( - 0,5*x) (fonction exponantielle décroissante, le 0,5 peut varier)

http://cinema4d.chez-alice.fr/courbe3.JPG

Les vagues vont donc diminuer en hauteur en se rapprochant des côtes.

En replacant A dans la formule précédente:

Y = exp( - 0,5*x) *cos ( (2*pi/l ) *x-(2*pi/T )*t)

On a:

http://cinema4d.chez-alice.fr/courbe4.JPG


Une fois ce principe compris toute fonction mathématique que tu trouves approchante de la forme voulue peut être utilisée.
A l'intérieur des trois paramètres A pour la hauteur, l pour la longueur et T pour la vitesse.
Ce principe reste valables quelque soit la forme de l'onde.


Pour mettre tes 3 déformateurs en un c'est faisable.
Mais je pense qu'effectivement c'est moins lourd et plus maniable de faire comme tu fais. :wink:

Sinon, il faut ajouter un nouveau sin et cos. Et en plus le mettre en radian.
On obtient une formule à rallonge et illisible.

picot
13/02/2008, 20h41
Jean-Laurent tu me gâtes :poucehaut: Maintenant tu joins l'image à l'écrit. J'apprécie ton aide qui m'a vraiment sori de la m..ouise.
Je n'ai pas encore exploité tes dernières livraisons, car j'ai récupéré un vieux (2004!) programme de Base80 qui permet de commander le déformateur formule par DU. J'ai tenté une retranscription pour mon problème, car avec tous ces paramètres possibles ça commençait à devenir fastideux de changer les formules à la main. Ca fonctionne même si le résultat peut être curieux parfois. :shock: Il faut que j'affine les bornes des coef et même pour être scientifique il faudrait relier entre eux les diffèrents param-tres: pour une vitesse de propagation, la longueur d'onde et la hauteur moyenne doivent être dans une certaine fourchette.
Voila le prog. en c4d v.10
http://www.deltazone.org/~fc4d/c4d/picot_formul_vague.c4d
Attention presque 4 meg
Une petite séquence d'animation (ça n'a pas été calculé avec le prog ci-dessu). Je saius que la poutre est un peut rapide et son mouvement un peu rectiligne!
http://www.deltazone.org/~fc4d/autres/picot_vague2.avi
Merci à Base80 le roi de l'Xpresso. Il y avait aussi un prog de Majoul mais avec une dose de Coffee.

lenogre
14/02/2008, 09h26
Super boulot !

picot
14/02/2008, 18h53
Histoire de décompresser j'ai bricolé le déformateur formule en rajoutant uen équation pour y. On obtient des résultats amusants mais là pour explorer il faudrait rajouter des DU, sinon c'est un peu galère!
Le ressort cosmique:
http://www.deltazone.org/~fc4d/autres/picot_vague3.avi
et quelques instantanés tirés de ce film:
etape 1:http://www.deltazone.org/~fc4d/images/picot_i_001.jpg
etape 12:http://www.deltazone.org/~fc4d/images/picot_i_012.jpg
etape 28:http://www.deltazone.org/~fc4d/images/picot_i_028.jpg
PS Si ça peut en amuser quelques uns je peux leur fournir le prog.

luistappa
15/02/2008, 01h49
Wé!
Excellent travail de Picot et de JL!
Dommage que je n'ai pas trop de temps pour jouer avec vous, c'est le genre de truc qui me plait bien, un peu comme le Wip formules

picot
23/02/2008, 20h56
Aprés avoir digérer un certain nombre de rapports, thèses, et grace à l'aide de Jean-Laurent j'ai pu sortir une animation de vagues conforme à la théorie. IL suffit de rentrer la longueur et l'amplitude de la vague ainsi que sa vélocité par DU. Quand je dis conforme, il y a beaucoup de paramètres qui imanquent et malheureusement le déformateur formule ne connait que x,y,z et t. Il faudrait pouvoir rentrer la hauteur du fond pour chaque pont de la mer pour calculer les vagues déferlantes, la vitesse du vent pour calculer l'écrètement des vagues,... Je pense qu'il faut faire les calculs et animer les points du plan mer directement dans Xpresso. Si c'est possible alors là tous les espoirs sont permis :lol: mais j'aurais besoin d'un appui solide en math(hein, Jean-Laurent) car il faut faire intervneir la FFT, des calculs sur des matrices et j'en passe.
Voilà l'état des choses avec le déformateur formule et 5 jeux de vagues:
http://www.deltazone.org/~fc4d/autres/picot_vague2.avi
L'ile est revétue d'une texture d'EricSmit. Il aurait fallu un peu d'écume et assombrir le bas du rocher pour fignoler, mais c'est un aspect qui peut attendre.

picot
26/02/2008, 18h58
J'ai commencé à voir la déformation d'un maillage par Xpresso. J'ai pu déplacer les points d'un plan à l'aide de DU. Maintenant il faut que j'arrive à faire ça par calcul et le problème, est l'adressage des points à l'aide de leurs coordonnées x,z. Il va falloir m'investir dans Xpresso et certainement Coffee. Je sens que je vais être obligé de conserver en mémoire la position ancienne des points pour calculer la nouvelle. Il faut que je réenfile mon habit d'analyste programmeur mais ça fait une bonne vingtaine d'années que j'ai pondu du code en Cobol et pour le C++ j'ai eu une formation assez poussée, mais j'ai peu pratiqué. :mrgreen: En attendant je continues avec le déformateur formule, en dépit de ses limitations. J'ai ajouté une bande d'écume animée le long des rochers. et donné un epu de mouvement à la caméra pour simuler le mouvement (un peu rapide!) d'un bateau.
Voilà le résultat (2 meg.):
http://www.deltazone.org/~fc4d/autres/picot_vague8-boucle.avi
La texture de la mer provient d'un tuto d'Add-the-sea.
PS Si vous etes intéressé par le prog n'hésitez pas, il est à disposition.
rePS Le film est prévu pour une animation en boucle!

Jean-Laurent
26/02/2008, 19h38
:o
C'est vraiment excellent. :poucehaut: :prie:

refreshers
26/02/2008, 19h50
Je viens de découvrir ce post... :prie: :prie: :prie:

base80
26/02/2008, 23h19
Splendide vraiment top :poucehaut:

shtl
26/02/2008, 23h24
...
http://www.deltazone.org/~fc4d/autres/picot_vague8-boucle.avi
...


C'est super convaincant :poucehaut:

Peut -être quelques "fine tunning", comme la reflexion de la mer trop fort, sa couleur un peu étrange, le raccord avec l'arrière plan, les ombres sur le rocher gauche qui fond pas vraiment caustique, ces rochers qui font un peu troisdé, surtout comparé à la partie animation très réaliste, mais le mouvement de la cam qui en effet est pas très naturelle...

Mais c'est que des détails si on considère que le plus dure est (presque?) déjà derrière :)
Le mouvement des vagues et l'écume sont à tomber, c'est splendide :prie:

Autant pour la partie formule/animation xpresso/coffee, je craint de ne pouvoir suivre, autant l'écume ya ptet des chances, donc si tu pouvais nous expliquer un peu? Ao+noise? Autre chose?

Ah oui aussi, je me demandais: es-tu passé exclusivement par c4d ou y a-t-il un peu d'Xstream?

Et enfin, as-tu suivi le poste sur l'animation de mer par naam et le reste de l'équipe?
http://www.frenchcinema4d.fr/forum/index.php?topic=21213.0
Ils donnent beaucoup d'info sur cgtalk, notament sur les bruit à utiliser pour le déplacement (des voronoi si mes souvenirs sont exactes).

Bonne continuation et merci de partager :poucehaut:

tabou
27/02/2008, 13h21
Bravo Picot, le résultat est vraiment bien, je n'aurais jamais imaginé qu'on puisse obtenir un tel résultat avec le déformateur formule :prie:
Je suis curieux de savoir comment tu fais pour l'écume, tu utilises proximal ?

picot
27/02/2008, 13h37
Merci les copains. Vous me confortez dans mes expérimentations. Il est sûr que c'est mal ficelé pour l'instant. je me sers de textures récupérées, la mer du fond est un simple plan inanimé, l'éclairage pas étudiée... Je bosse surtout sur l'animation du plan d'eau que je voudrais et étendre aux cas particuliers comme les vagues déferlantes sur la côte, les embruns, l'écume.. .
Pour ce qui est de la technique utilisée: le plan d'eau est un plan animé par déformateur formule. Il y en a 5 commandés par DU pour des vitesses de vague allant de 8 à 120 m de crète à crète. Je me cale sur des configurations plausibles relevés dans la doc existante.
Pour l'écume j'utilise celle de Yann Minh (alpha avec Proximal et une spline suivant le bord de mer). Le hic vient qu'elle ne suit pas le mouvement de l'eau. J'ai pensé à une solution plus dynamique: cloner a bande littorale du rocher, lui mettre une texture écume et l'animer par déformateur-formule. A étudier.
Pour répondre plus particulièrement à STHL : non il n'y a pas d'Xtream, oui j'ai vu l'animation de Naam et ça même été le déclencheur de ma recherche. Quand on voit leurs vagues avant texturage, on se dit qu'il n'y a pas de raison pour ne pas y arriver soi-même. Maintenant tout le boulot de texturage derrière, les particules en plus, c'est une autre paire de manche, tout au moins pour moi. :grin:
Le déformateur formule peut faire pas mal de chose, mais le problème c'est que l'on ne peut jouer que sur x,y,z et t. Pour bien faire il faudrait pouvoir rentrer des variables telles que la profandeur de la mer. C'est pour ça que je m'oriente vers la programmation Xpresso. Mais tel qu'il est mon programme permet déjà de pas mal s'amuser! :lol:
PS Toutes mes excuses pour ce long laîus même pas illiustré. :mrgreen:

shtl
27/02/2008, 14h48
Dommage, pas de nouvelles images et que du barratin :(

:mrgreen:

Naaahh, merci pour ce retour Picot. C'est vrai que ça à l'air sympa quand tu parle de control par DU :bave:
T'es en train de te faire un addthesea personnalisé c'est assez énnorme :o :prie:

Pour le proximal je vois aucune solution. :|
Cela dit en y réfléchissant, au delà d'une certaine limite il y a un temps de latence où l'écume va garder la même position avant de se désagréger puis de se reformer... Et ça, bah bon courage pour le simuler :mrgreen:

C'est bizarre j'avais fait un test pas mal avec de l'AO, mais c'etait un peu long à rendre et surtout, j'arrive pas à le refaire :cry2:
L'ao ne passe plus dans le canal transparence je comprend pas.
J'ai eu le même soucis l'autre jour en voulant utiliser de l'AO pour le déplacement pour du sable. Avant ça marchait, maintenant ça marche plus. Je comprend pas :coup:

Sinon encore un truc: est-ce que tu peux pas mixer le déformateur formule pour les vagues principales, et le mixer à un xpresso qui calculerai la hauteur d'un point donné de la vague, avec un point donné d'un fond/sol, (distance) et ainsi corriger l'intensité d'un bruit qui agirait sur du déplacement polygonnal? Mais encore une fois il faudrai alors récupérer une matrice précédente c'est ça?
Haha tout ça me dépasse complètement. Amuses toi bien :art:

zegolem
27/02/2008, 15h16
On peut aussi passer par les divers effets de texturage en alpha... proximal, carte d'influence, procédurales animées, bump et displacement. Avec tout ça y'a de quoi faire!

Par exemple, essaye un plan de même maillage que ta surface d'eau, placé juste au dessus de la plus haute vague (non-rendu bien sur). Ensuite crée une texture blanche avec une fusion bruit animé (dans la direction de ton vent) et proximal de ce plan en alpha. Bien réglé, l'écume ne se forme que sur les sommets. Pour les bords, tu peux tenter de jouer avec une ceinture de polys et non pas une spline et utiliser les arrêtes dans le proximal. L'écume se formera en contact avec le bord tout en suivant le mouvement.

On peut aussi procéder par dégradé de hauteur ou autre. A moins de vouloir créer une vraie simulation, on arrive là à de bonnes illusions...

Superbes recherches en tous cas!

lenogre
27/02/2008, 21h15
Y a un moment, j'avais téléchargé des fichiers qu'un gars avait mis à disposition.
Y a une texture d'eau animée incluse dans le fichier. Qq images pour vous rafraîchir la mémoire.
Picot, je peux t'envoyer les fichiers.

[Fichier joint supprimé par l'administrateur]

picot
28/02/2008, 13h59
Merci pour vos nombreuse suggestions! Il est sùr que l'on peut faire beaucoup de choses avec les textures, mais pour le mouvement des vagues je pense que le déformateur formule ou un petit Xpresso donne beaucoup mieux et est certainement plus rapide. Hier, j'ai ajouté une bouée (presqu'immobile) en x,z mais libre en z. Une petite routine Xpresso la relie à un poly du plan d'eau, et l'oriente selon la normale dudit poly. C'est ce qui m'a donné le plus de tintouin! Transformer les coordonnées de la normale en degrés d'orientation :coup:
http://www.deltazone.org/~fc4d/images/picot_xpresso01.jpg
Il y avait certainement plus simple mais je n'ai pas su :grin: J'ai ajouté une spline à la bouée pour l'entourer d'écume, mais j'aurais mieux fait de texturer le poly de rattachement.
Le résultat (toujours 2 megs).
http://www.deltazone.org/~fc4d/autres/picot_vague9-b.avi
Je sais la mer au-delà des rochers n'est pas top, ça fourmille dur!


Y a un moment, j'avais téléchargé des fichiers qu'un gars avait mis à disposition.
Y a une texture d'eau animée incluse dans le fichier. Qq images pour vous rafraîchir la mémoire.
Picot, je peux t'envoyer les fichiers.

Merci Lenogre, ça m'intéresse.. Qui a dit que tu ne faisais que raler? :roll:
Zegolem, je testerai ton idée pour l'écume.
PS A l'occasion de ce WIP j'ai exploré ce qui a trait à Xpresso et j'ai vu des choses étonnates, et je suis sùr que leurs auteurs seraient fort étonnés s'il les revoyaient.
Navré pour le lien Pourtant j'ai lhabitude de verifier! :wip:

refreshers
28/02/2008, 14h37
le lien ne fonctionne pas :(

lenogre
28/02/2008, 14h52
Picot, n'oublie pas de me donner ton mail lenogre@yahoo.fr

SHTL, je fais le nécessaire.

refreshers
28/02/2008, 15h24
ça fourmille un peu au second plan...mais alors au premier! :bave: :bave: :bave:

lenogre
28/02/2008, 15h40
C'est de toute beauté !

shtl
28/02/2008, 15h56
:prie:
Ça balance on s'y croirait :efface:

picot
29/02/2008, 08h25
Bien dans la série "on peut toujours faire mieux!" aprés la bouée j'anime ce qui peut être considéré comme un petit bateau. Il est relié à 2 polys dont je calcule la hauteur moyenne et la normale (moyenne également) et ça marche, mais j'ai bien galèré pour l'orientation. Je n'avais pas vu que dans l'opérateur vecteur->matrice il y avait une fonction axe(x,y,ou z), :coup:.
Une petit vidéo:
http://www.deltazone.org/~fc4d/autres/picot_vague10.avi
Prochaine étape: faire effectuer un trajet au petit bateau!
PS Je pense que ce WIP, car finalement ç'en est devenu un, pourrait être déplacé dans le forum WIP par exemple :). Il me semble que seul un modo peut faire ça?
Dis donc STHL, tu as la gachette vachement rapide! :shock: Enfoncé Lucky luke! Merci bien.

shtl
29/02/2008, 08h36
:wink:

J'adore ce que vous faites :D

kitsune
29/02/2008, 08h55
J'avais loupé cette recherche

:shock: il ne manque que le bruit des vagues, on s'y croirait ! :love:

C'est vraiment magnifique ! Bravo :prie:

amateur
29/02/2008, 10h33
bonjour picot
vraiment superbe de réalisme :poucehaut:
je prend le train en route pour voir la suite qui s'annonce :bave: :prie:

BerTiN03
29/02/2008, 10h44
Rho la vache Picot.. je suis vraiment impressionné la .... :prie:


Superbe mon gars !

ashurao
29/02/2008, 10h49
……… je suis sur le c…, heureusement que j'étais assis …
sans rire, je suis admiratif. :prie:

Phenril
29/02/2008, 18h41
Fiou! Ca décoiffe un chauve !!! Vraiment du très bon boulot!!

Allez au taf ! :wip: :efface:

zegolem
29/02/2008, 20h31
Autre petite suggestion pour le réalisme...

Il serait assez judicieux (enfin, je crois) d'appliquer une sur-texture transparente fortement bumpée et spéculaires d'eau sur les rocher. Avec un proximal bruité du bord de contact et un mix d'écume, l'illusion d'un écoulement devrait pouvoir être plus que convaincante.

A part ça... c'est superbe bien sûr, très joli travail d'Xpresso!

shtl
01/03/2008, 11h39
..., l'illusion d'un écoulement devrait pouvoir être plus que convaincante.




Bien vu ! :idea:

Buzhug
01/03/2008, 14h06
C'est superbe, mon bon Picot. Épaté je suis.
La saucisse de Strasbourg flottante est aussi très bien réussie.

picot
01/03/2008, 21h36
Salut Buzhug, je suppose que je ne saurais tromper un breton avec mon ersatz marin! :? Mais bon, chacun rève comme il peut!.
J'ai passé un bon moment à galèrer sur mon rafiot (je sais, il est trés rustique). Finalement pour le guider, je me sers d'un ruban : un plan de 400 polys de long sur un de large mis en forme. Placé comme enfant du plan mer, il suit les mouvements des vagues. En se basant sur 2 polys espacés du ruban, l'esquif franchit bien les vagues en prenant l'inclinaison voulue, mais pour le roulis macache! Il va falloir que je teste le niveau de l'eau à droite et à gauche, heu.. je voulais dire tribord et babord. :mrgreen:
Le télfilm du samedi soir.. C'est du short de chez Short.
http://www.deltazone.org/~fc4d/autres/picot_vague11c.avi
Un remerciement particulier qui fourmille d'idées de texturage, ça n'est pas perdu, mais ça viendra aprés avoir digéré l'Xpresso. :cry2:
PS Ne cherchez pas les rameurs ils sont plan
qués dans la soute :shock:

nikolas
01/03/2008, 21h38
vraiment très intéressant tes tests picot. Les vagues son très convaincantes :poucehaut:

Rompower
01/03/2008, 23h53
wow j'avais raté ce Wip :shock:
Je m'étais creusé la tête pour faire des vagues réalistes pour mon projet de court métrage, mais je n'étais pas allé aussi loin :o
C'est vraiment très convaincant, en plus avec la petite embarcation qui suit le mouvement des vagues, c'est excellent. :love:
Je vais suivre l'évolution de tes recherches, ça a l'air très intéressant :poucehaut:

Je pense régulièrement à toi parce que je croise régulièrement des Camions Saurer sur les routes! il y en a pas mal qui circulent encore. Une caserne de pompier non loin de chez moi en possède un en superbe état, passablement modifié, avec grande échelle et tout :D

bonne continuation :odile:

lenogre
03/03/2008, 10h12
Pour les objets sur l'eau, regarde là éventuellement :
http://www.c4d-jack.de/html/downloads/dl_exp_modelling.html

refreshers
03/03/2008, 10h19
Salut picot,
Toujours aussi terrible tes p'tites anims! :poucehaut: :poucehaut: :poucehaut:
Vivement la suite!

picot
05/03/2008, 11h39
Pas d'avancée pour l'instant :? Je phosphore sur la vague d'étrave et le sillage du bateau et apparemment, depuis que je suis rentré dans ma 70 ème année, le phosphore y-en a plus trop! :shock: J'appelle donc au secours les matheux (pourquoi je pense à Jean-Laurent?!) Voici ce que j'aimerais voir déchiffré en maths simples: niveau maternelle avancée!..
http://www.wikiwaves.org/index.php/Ship_Kelvin_Wake, ça a l'air trés complet, mais vole un peu haut pour moi :cry2:
J'ai quand même réussi à bien modéliser le comportement du bateau, je vous montrera ça dans la soirée.
Merci pour toutes les suggestions de texturage, mais je verrais ça plus tard, le comportement physique d'abord!


Je pense régulièrement à toi parce que je croise régulièrement des Camions Saurer sur les routes! il y en a pas mal qui circulent encore. Une caserne de pompier non loin de chez moi en possède un en superbe état, passablement modifié, avec grande échelle et tout :D
bonne continuation :odile:

Salut Rom, je suis toujours tes travaux et me dis
que je devrais reprendre mon camion, car je ne l'avais pas présenté au mieux. Faut dire que j ne suis pas un roi de la texture et de la mise en scène.

amateur
05/03/2008, 11h50
ouha picot
là j'ai regardé ton lien ben mal à la tete .
chapeau de fouiller autant le sujet :prie:
mais bon c'est bien parti le bateau n'a pas coulé :mrgreen:

picot
10/03/2008, 07h02
Bien que Jean-Laurent se soit donné beaucoup de mal, pour m'éclairer sur les équations permettant de calculer le sillage d'un bateau, je me suis échoué lamentablement. J'ai bien réussi à animer un plan, mais il faut être trés indulgent pour y voir un sillage! :arg: Ca anime tout le plan, au lieu de faire une jolie forme en flèche. Je vais me tourner vers l'Xpresso et mêm Coffee, car il va falloir passer par un tableau à plusieurs dimensions je pense! Je ne baisse pas les bras, mais ne vous promet rien d'affriolant avant quelques temps. :mrgreen:

Jean-Laurent
10/03/2008, 10h00
Ca anime tout le plan, au lieu de faire une jolie forme en flèche.


Le problème du déformateur formule c'est que malheureusement il ne dispose pas visiblement d'un mode limitation d'influence comme les autres. Et c'est dommage. :|
Pire, les dimensions du déformateur jouent sur les déformations ce qui rend plus difficile la rentrée d'une formule directement aux bonnes dimensions.

On peut cependant tricher en rentrant une formule qui simule cette limitation dans l'espace.

Ex: Avec la formule classique que picot connait maintenant par coeur :wink:: y = A cos ( wt - kz)
Une vague qui se déplace suivant z. Par exemple: y = 0.1 cos ( 2t - 5 z)

Le A c'est la hauteur de la vague (ici 0.1).
On peut demander à ce que la hauteur de la vague diminue suivant un axe. Par exemple l'axe x.
Pour ça il suffit de rentrer une fonction décroissante.

Par exemple: exp (-x) pour x =0, ça vaut 1 et pour x = 5000 ça vaut presque 0.
Il y en a plein d'autres mais celle là est la plus simple qui me vienne à l'esprit.

Ainsi suivant l'axe z les vagues seront hautes, mais plus on s'éloigne suivant x et plus leur hauteur diminue.

La formule: y = 0.1*exp (-2*abs(x))* cos ( 2t - 5 z)

Par exemple. Le 0.1 règle la hauteur maximale de la vague.
Le -2 règle la vitesse à laquelle cette hauteur maximale diminue quand on se dirige vers les x.
(abs() c'est la valeur absolu, pour que ça marche aussi avec les x négatifs).
Le 2 règle la vitesse de la vague.
Et le 5 règle la distance entre les vagues.


On peut également faire un cône pour le sillage. Mais le problème reste quand même la définition des fonctions.
Le déformateur formule ne permet pas de dire "je veux cette fonction pour les x positifs et celle-là pour les x négatifs".
Ou alors je n'ai pas trouvé.

Du coup un passage par le coffee est peut-être pas mal. :odile:

archeo
10/03/2008, 10h32
Je suis ça en silence et avec admiration depuis quelques temps car tu t'es lancé un sacré défit. As-tu essayé le déformeur spline pour ton étrave?

Jean-Laurent
10/03/2008, 10h39
Pour illustrer rapidement mon propos précédent:
http://cinema4d.chez-alice.fr/deformateur1.jpg
http://cinema4d.chez-alice.fr/deformateur2.jpg

C'est curieux, je n'ai pas réussi à mettre les deux déformateurs en même temps. :?:
D'habitude ça marche. Un truc doit m'échapper.
Enfin c'est surtout pour le principe.

Le premier déformateur fait les vagues latérales plus serrées et faisant un angle différent avec la direction de propagation.
Le deuxième pour les vagues transversales plus larges.
Il en faudrait un troisième symétrique du premier.

Edit:
Je viens de trouver une astuce très pratique pour limiter à n'importe quelle zone l'influence d'un déformateur formule.
Il y a peut-être plus simple. Mais personne ne s'étant encore manifester sur la question.

Je cherchais une fonction "échelon" qui passerait d'un coup d'une valeur à une autre.
Une telle fonction peut être décomposée en séries de fourrier mais c'est trop long. Et il faudrait au moins une dizaines de termes pour une allure correcte.

J'ai donc pensé à la fonction arctangente (atan dans C4D il me semble).
Qui ressemble pas mal à ça.

Avec par exemple: y = (atan(1000*x)+PI/2)/PI
Pour les x positifs, y=1 et pour les x négatifs y=0.

Avec cette fonction on peut maintenant délimiter n'importe quelle zone.
Si on veut qu'une formule f(x,y,z) ne marche que pour x>10 par exemple il suffit de rentrer:

y = ((atan(1000*(x-10))+PI/2)/PI) * f(x,y,z)

Pour x>10 on aura y = f(x,y,z) et pour x<10 y = 0.

Un truc pratique également c'est qu'on peut faire varier l'influence du déformateur aux limites de la zone.
C'est le facteur 1000.

Si on diminue la valeur, la transition sera plus douce, au contraire une forte valeur donnera une transition abrupte.
Le déformateur marche et d'un coup ne marche plus.

Edit 2: Visiblement on ne peut pas mettre deux déformateurs formule en mode "manual". :o
Tu as fais comment picot ?

picot
10/03/2008, 20h28
Bravo, J-L, je vois que les idées ne te manquent pas. Ce que j'aimerais bien ça serait un paramètre qui permettrait de faire varier de manière aléatoire l'amplitude des vagues ainis que leur fréquence :mrgreen: ou :D. Autrement je me suis penché sur tes fonctions, mais je n'ai réussi qu'à sortir une colonne vertébrale de poisson: :lol:
http://www.deltazone.org/~fc4d/images/picot_arete.jpg
Plus sérieusement, j'ai réussi à avoir les 2 trains d'onde en les sommant dansl la même formule. Mais ça ne donne pas encore le résultat espéré.
J'ai testé ta dernière idée, mais sans résultat; peut-être quelques parmètres à changer chez moi....
PS J'ai trouvé ce document qui semble complet tout en restant simple.http://www.limsater.com/files/ocean.pdf

Jean-Laurent
10/03/2008, 21h30
Faire varier aléatoirement l'amplitude des vagues et leur fréquence. :o
Alors que la formule de dispersion est très claire w2=kg. Je ne participerais pas à une telle hérésie. :mrgreen:
La faire varier en fonction du vent, là c'est autre chose ...

Sinon, ma formule marche très bien je l'ai testé. Je vais mettre une image pour montrer.
C'est souvent une histoire d'échelle ou de subdivision du plan.
J'ai compris que le déformateur avait tout simplement la taille 1,1,1.

On peut mettre des formules différentes à différents endroits mais l'écriture dans le déformateur formule devient vite très lourde. :coup:
L'idéal aurait été de pouvoir faire se superposer plusieurs formules.

Edit:

Un exemple:
http://cinema4d.chez-alice.fr/deformateur3.jpg

BerTiN03
10/03/2008, 21h40
:o

nikolas
10/03/2008, 21h50
:o

je plussoie :o :o
ils sont malades... :mrgreen:

punkylolotin
10/03/2008, 23h12
: 8) Trô fasile :wip:

((atand(1000=(-abs{x:s}+0.2))+pipicaca/2)/pipicaca)*cos(2$)*(attend(1000$*250€*2 kopecs) -pi/2) /2pi²3

voila :boss:

base80
11/03/2008, 01h23
la composition de longues formules est bien plus facile dans xpresso

en mode string tout se compose comme les mots d'une phrase avec le noeud math (en mode "string" sinon il additionne mathématiquement)
En plus les formules peuvent devenir plus interactif avec d'autres éléments de la scene

Jean-Laurent
11/03/2008, 10h03
Effectivement ce serait beaucoup plus simple.
Du coup un seul déformateur formule peut faire l'affaire mais il faut rentrer une dizaine de petits bouts de formule.
En plus la vitesse de propagation des vagues et leur distance dépend de celle du bateau.
Xpresso tombe à point. :prie:

Allez, tous en string. :wink: Merci Base. :poucehaut:


Edit: Mais au fait, on met quoi dans le noeud addition ?
J'ai essayé de rentrer une formule mais la sortie de formule n'est pas de type string. J'ai essayé un adaptateur universel pour transformer la sortie formule en string mais ça ne marche pas. Sinon je vais essayer un texte directement mais contenu dans quoi ?
Je vais finir par trouver comme un grand mais je ne serais pas contre une petite aide pour gagner du temps. :wink:

Edit2: En rentrant directement les entrées ça marche. Mais je conserve ma question si l'entrée vient d'un "truc" extérieur.

base80
11/03/2008, 10h31
C'est juste le noeud Math qui doit être en mode string,
ensuite tu rentres dedans ce que tu veux, comme la vélocité de ton objet.
Le string accepte tout.
Un truc pratique du noeud Math c'est que tu peux ouvrir pleins de ports ça te permet d'enfiler pleins de strings l'un a la suite de l'autre.
Dans la capture j'ai mis un noeud résultat a la sortie du Math pour voir la totalité du string. je conseille d'enlever ce noeud avant de faire des rendus pour éviter des aberrations de calculs ou des retards.

http://www.base80.com/tips/string/add-string.jpg

picot
11/03/2008, 11h20
C'est effectivement ce que j'ai employé pour gérer mes deformateurs de vagues. Ca permet aussi de changer les valeurs numériques bien plus facilement par DU. J'avais d'ailleurs récupéré l'idée sur une tes interventions Base. Il faut reconnaitre qu'utiliser une fonction math addition pour composer du texte n'est pas l'idée première qui nous vient à l'esprit. :shock:

Jean-Laurent
11/03/2008, 14h35
En utilisant la méthode de Base et en m'inspirant de la formule de punkylolotin j'arrive à ça:

http://cinema4d.chez-alice.fr/deformateur4.jpg
http://cinema4d.chez-alice.fr/deformateur5.jpg

C'est juste l'idée de départ, si ça peut aider.
Je ne suis pas aussi timbré que picot pour développer la chose. :wink:

En gros c'est toujours les mêmes formules mais mixées.

La formule: y = 0.02 * cos ( 2*z + 3* t) (vague qui se déplace suivant z, la hauteur dépend du 0.02 , le 3 c'est la vitesse , le 2 la distance entre le sommet des vagues)

La formule y = 0.02* cos (2*(x*cos(PI/6)+z*sin(PI/6)) + 3*t)

C'est la même vague que tout à l'heure. Si,si . Par contre elle a juste tourné d'un angle de PI/6.
Vous allez me dire qu'on obtient la même chose en tournant le déformateur mais le problème c'est qu'ils ne s'additionnent pas en mode manual. J'ai donc placé toutes les formules dans le même. :?

la formule (atan(1000*x)-PI/2)/PI)
C'est mon incantation magique pour que le déformateur ne s'applique qu'à une zone du plan.
ici les x négatifs. On multiplie ça par la formule qu'on veut et cette formule ne marche que dans la zone concernée.
Le 1000 permet de régler le fondu de la formule.
1000 = changement très sec. 10 = changement tout en douceur.

la formule (atan(10*abs(x/z)-0.2)-PI/2)/PI)

C'est la même que précédemment. Sauf que la zone a délimitée est celle d'un cône.
Le 0.2 change l'angle du cône.

Vous savez tout. :odile:

Un petit essai par mer calme:
http://cinema4d.chez-alice.fr/bateau2.avi

Et le fichier. Si tu as envie d'essayer la méthode et d'améliorer le truc picot:
http://cinema4d.chez-alice.fr/sillage.c4d

picot
14/03/2008, 08h26
Navré J-L, je n'avais pas vu que tu avais édité ton dernier message. Ton essai est plutôt convaincant et prouve que ce déformateur formule peut faire pas mal de choses, .... à condition de maitriser les maths :mrgreen: Je vais regarder ça d e prés, masi pendant ce temps, je me suis penché sur le coffee et j'ai réussi à pondre un petit bout de code pour animer un plan:
http://www.deltazone.org/~fc4d/autres/picot_vague14.avi
Le prog brut de sciage. Maintenant, il va falloir implémenter pas mal de choses: d'autres vagues, c'est pas compliqué, mais avec une direction différente :o, , rompre leur uniformité,...ajouter la déformation des crètes de vagues lorsque la mer se déchaine,...
http://www.deltazone.org/~fc4d/images/picot_coffee.jpg

Jean-Laurent
14/03/2008, 09h25
Navré J-L, je n'avais pas vu que tu avais édité ton dernier message.


C'était pour ne pas faire de vagues. :wink:

Un truc tout bête. Tu as vu qu'avec une seule vague tu commences à avoir pas mal de paramètres.
A,K,L,V,w

Une façon très simple de les contrôler c'est de mettre ton code coffee dans un nœud Xpresso.
Ce nœud peut avoir autant d'entrées que tu veux correspondantes à tes paramètres. Mais tu le savais sans doute.



Le prog brut de sciage. Maintenant, il va falloir implémenter pas mal de choses: d'autres vagues, c'est pas compliqué, mais avec une direction différente :o, ,


C'est dans mon dernier message.



La formule y = 0.02* cos (2*(x*cos(PI/6)+z*sin(PI/6)) + 3*t)

C'est la même vague que tout à l'heure. Si,si . Par contre elle a juste tourné d'un angle de PI/6.



En observant bien la formule tu devrais comprendre sans problème le principe.

y = A cos ( k*(x cos(teta)+z sin(teta)) -wt)

Je te conseille également de rechercher "cercle trigonométrique" sur le Web, ça peut toujours servir pour la suite. :odile:

wouarr
14/03/2008, 10h20
:o :o :o Vous êtes effectivement de grands malades :mrgreen: Mais quand même, respect et robustesse :boss:

picot
16/03/2008, 19h01
Je m'amuse comme un petit fou avec la programmationss COFFEE! :coup: J'ai pas mal avancé pour insérer plusieurs ondes ayant des orientations diffèrentes, mais le résultat était bizarre. :shock: En testant le programme je m'aperçois que mon tableau à deux dimensions fonctionne bizarrement. Voici le bout de code en litige:

var wav = new(array,4,3);
wav[0,0]=0.2;wav[0,1]=0.45;wav[0,2]=2.11;wav[0,3]=5*pi/3;
wav[1,0]=0.21;wav[1,1]=0.393;wav[1,2]=1.97;wav[1,3]=pi;
wav[2,0]=0.17;wav[2,1]=0.524;wav[2,2]=2.25;wav[2,3]=pi/2;
println(" wav= ",wav[0,2]);
println(" wav= ",wav[1,2]);
println(" wav= ",wav[2,2]);

Réponse:
wav=2.250000 pour les trois!
Il ne retient que les données de la dernière ligne! What is the problem doctor!
Si quelqu'un avait une petite idée? :cry2:
PS Le prog se compile et s'exécute sans raler!...

tarlack
16/03/2008, 19h08
:o
bizarre ton truc...et en affichant toutes les valeurs du tableau, tu as le meme symptome pour les 4 colonnes ? à part ca respect :prie:

picot
16/03/2008, 19h57
Oui, Tarlack. En fait ce qui a attiré mon attention c'est que la direction de mes vagues suivait toujours l'information entrée en wav[x,3]. Si j'intervertis les lignes d'initialisation du tableau, ce sont les valeurs de la dernière ligne que je retrouve. En fait il répond comme s'il y avait une seule ligne Lorsque que je fais un sizeof(wav) il me répond 4, pourtant on peut créer des arrays à 2 et même 3 dimensions!
Cf la bible coffee sdk 9.5:
Arrays are created with the new() function: var arr = new(array,16). To create a two-dimensional array, use new(array,16,16).

tarlack
16/03/2008, 20h08
meme si ton probleme est bizarre, tu peux quand meme continuer, en faisant un tableau 1D de 12 elements, et pour acceder à l'element (i, j) de ton tableau 2D d'origine, tu accède à l'element i * 4 + j (enfin, si c'est un tableau 4 * qqchose, comme c'est ton cas ici)

ce n'est pas parfait et encore moins satisfaisant, mais au moins ca te permet de continuer à deffricher des problemes plus interessants ;)

picot
16/03/2008, 20h53
C'est vrai qu'il y a toujours moyen de contourner une difficulté! :coup: <- non, pas comme ça. Mais je suis teigneux à mes heures et j'ai refait une recherche sur le forum "programmation' et là j'ai retrouvé une intervention de Jean-Laurent (heureusement qu'il est là, sinon je n'aurais pas beaucoup progressé!) et je sais maintenant comment utiliser un tableau à plusieurs dimensions :

Tableau[x][x]=... C'est tout bète, mais je ne l'aurais pas inventé, et la volumineuse doc du SDK coffee n'en parle pas, sauf peut-être au détour d'un exemple qui n'a rien à voir avec le sujet. Il est possible que ce soit aussi la syntaxe en C++, mais ma formation est lointaine et je ne l'ai guère aplliqué; j'éatsis plutot cobol, fortan, sql et db2...
En tout cas, merci Tarlack pour ton assistance. Bon j'y retourne.

tarlack
16/03/2008, 21h14
ah ok, comme en C,C++ etc donc. Ce qui est bizarre, c'est que le compilo/interpreteur Coffee ne dise rien sur un usage visiblement erroné...ou alors tableau[x,y] a un autre sens. bonne continuation !

PS : fortran, cobol... beuuurk :mrgreen:

picot
03/04/2008, 09h33
Bon, ce WIP n'est pas mort et est même toujours en développement, mais compte tenu de mes années de retard en maths, j'ai un gros effort de mise à niveau à faire. :grin: Un trés grand merci à Jean-Laurent qui n'hésite pas à me faire quelques synthèses pour me mettre dans le bain (de mer!). Mes efforts actuels tendent à modéliser la mer dans des circonstances particulières: ressac sur la côte, vagues venant mourir sur une plage, etc.. Une petite image pour montrer un début d'application: les vagues suivent en gros la forme de la plage. Il faut que j'améliore le profil des vagues pour obtenir des crètes plus marquées avec de l'écume.
Pour les matheux, il suffit de rajouter
phi=(1-(0.5*j))*(1-(0.5*j))/101; (101 est la largeur du plan mer)
aux formules sacrées (voir quelques pages avant)
x= A*sin((K*X)-(W*sec)+phi)
y= A*cos((K*X)-(W*sec)+phi)
http://www.deltazone.org/~fc4d/images/picot_vague04.jpg
PS Je sais, le texture des vagues n'est pas top.
PS Deuxième excuse, Jean-Laurent, toujours lui, a réveillé mon travail sur la Kubelwagen.

xs_yann
03/04/2008, 12h16
var wav = new(array,4,3);
wav[0,0]=0.2;wav[0,1]=0.45;wav[0,2]=2.11;wav[0,3]=5*pi/3;
wav[1,0]=0.21;wav[1,1]=0.393;wav[1,2]=1.97;wav[1,3]=pi;
wav[2,0]=0.17;wav[2,1]=0.524;wav[2,2]=2.25;wav[2,3]=pi/2;
println(" wav= ",wav[0,2]);
println(" wav= ",wav[1,2]);
println(" wav= ",wav[2,2]);


Personnellement, je n'ai jamais utilisé l'operateur virgule dans un tableau

Dans ton cas c'était normal il affichait à chaque foit wav[2][0] qui valait 2.25.

Quand tu dit wav[2,0] = 0.17 c'est la même chose que wav[0] = 0.17 et non wav[2][0] = 0.17.

En gros ce code reviens au même que le tiens :


var wav = new(array,4,3);
wav[0]=0.2;wav[1]=0.45;wav[2]=2.11;wav[3]=5*pi/3;
wav[0]=0.21;wav[1]=0.393;wav[2]=1.97;wav[3]=pi;
wav[0]=0.17;wav[1]=0.524;wav[2]=2.25;wav[3]=pi/2;
println(" wav= ",wav[2]);
println(" wav= ",wav[2]);
println(" wav= ",wav[2]);

Tu n'agissais que sur la première dimension.

Voici un exemple d'utilisation de l'opérateur virgule dans un tableau, pas très utile mais bon...


main(doc,op)
{

var tab = new (array,4);
tab[0] = 10;
tab[1] = 20;
tab[2] = 30;
tab[3] = 40;

var i=0;
while(i<3) {
println(tab[i++,2]);
}
println("i =" + tostring(i));


}


Console :
30
30
30
i=3

Si ça te chante tu peux donc écrire :


var tab = new (array,10);
var a,b,c;
tab[a=5,b=6,c=7];

Sachant que si tu écrit println(tab[a=5,b=6,c=7]); il affichera tab[c] c'est à dire tab[7].

Mis à part ça, impressionnant ton WIP. :poucehaut:

Jean-Laurent
04/04/2008, 13h15
mais compte tenu de mes années de retard en maths, j'ai un gros effort de mise à niveau à faire. :grin:


Vu comme ça on a l'impression que picot est en train de réviser ses tables de multiplication.
Mais il n'est pas en train de faire des sortes de vague. Il modélise tout simplement "Les vagues". Celles de la vraie vie, si, si. :prie:
Et ça ressemble à ça:
http://cinema4d.chez-alice.fr/ocean.JPG

En lisant bien la dernière équation on entend presque le chant des mouettes. :mrgreen:

rx_grafix
04/04/2008, 13h19
:shock: :arg: :coup:

georgedrakakis
08/04/2008, 23h40
salut picot!
Le sujet est superbe & très intéressant. :poucehaut:

picot
09/04/2008, 09h42
Je reprend ce WIp un petit peu abandonné. Les maths c'est intéressant, mais à fortes doses c'est pas trés digeste! :puke: Je bosse toujours sur les vagues déferlantes et ça commence à prendre forme, bien que ça ne soit peut-être pas tout à fait évident sur cette vidéo:
http://www.deltazone.org/~fc4d/autres/picot_vague16.avi
La prochaine amélioration sera de conformer les lignes de crète en fonction de la physionomie du rivage :coup: et de faire varier les hauteurs de vagues.


salut picot!
Le sujet est superbe & très intéressant. :poucehaut:

Merci beaucoup Georgedrakakis.

picot
11/04/2008, 11h38
Je ne pense pas que vous serez nombreux à pouvoir répondre à ma demande! :mrgreen:
Dans la mise au point de mes vagues je suis tombé sur un os! :coup: Les caractéristiques des vagues dépendant de la hauteur du fond, tout au moins lorsque celui-ci est rapproché, j'ai dupliqué mon terrain et conservé la partie correspondant à la projection du plan mer. Pas de problèmes, je me retrouve avec in terrain ayant les mêmes caractèristiques (100 polygones sur 100). Ensuite je recherche pour chaque point de la mer, le point correspondant du fond pour déterminer la profondeur de la mer point par point. Mais là, catastrophe: les points du plan du fond, obtenu par découpe, sont dans le désordre: le point indice 0 n'est pas dans un coin comme on pourrait s'y attendre! le point m peut se trouver au milieu de la ligne n et le m+1, au début de la ligne n+5 ! :arg:
Question: est-il possible de réorganiser les indices dans un ordre logique?

Red
11/04/2008, 12h00
Je pense pas, mais t'as meilleur temps de pas utiliser les indices de points pour ce que tu veux faire, parce que ça peut être contraignant (ça t'oblige effectivement à avoir une même topologie pour le plan mer et le plan fond).

Mieux vaut partir avec une fonction de Ray Collision (c'est un noeud xpresso, ya sûrement une manière de faire un équivalent en COFFEE).

Sinon, si tu veux garder quand même la correspondance d'indice des points, il faut que tu reparte d'une copie de ton plan mer, et que tu projette chacun des points sur le fond (au lieu de partir du plan fond que tu découpe) pour garder la topologie. C'est faisable en Xpresso relativement facilement (toujours avec ray collision). (si besoin, je peux te détailler la technique)

Mais réorganiser les indices me semble de loin la voie la plus complexe.

picot
11/04/2008, 13h31
Effectivement Red, j'ai bien l'impression que ta solution "is the good one". :poucehaut: Je faisais une fixation sur les indices, un peu par flemme de revoir mon prog. et aussi parce que je trouvais (trouve) curieux que les points soient dans le désordre. Je vais regarder si je vois l'équivalent du ray collision en coffee.
Merci.

georgedrakakis
16/04/2008, 00h46
hi, today while i was experimenting with S&T, i created a scene with a landscape object.
i was surprised to see how the mesh is distorted when the scale (under object menu) is changed and multifractal is on.
it might be a good option to test fractal formulas for simulating waves.
i think that fractals have a pattern that is visible in macro and in micro views
(like a sin wave (macro) that consists of smaller sin wanes, that also consist of smaller...etc.
this way it might be possible to achieve the wave simulation without even using displacement (or bump) for the smaller waves that move along the basic wave pattern.
i hope i made myself clear, :roll:
georges

picot
16/04/2008, 09h40
Hey georgedrakakis, lanscape it's a very good solution for simulating still ocean. Fractal textures are often used for capillary waves (waves below 2cm length).
PS Excuse me for my poor english.

doudou
18/04/2008, 19h47
Dans la mise au point de mes vagues je suis tombé sur un os! :coup: Les caractéristiques des vagues dépendant de la hauteur du fond, tout au moins lorsque celui-ci est rapproché, j'ai dupliqué mon terrain et conservé la partie correspondant à la projection du plan mer. Pas de problèmes, je me retrouve avec in terrain ayant les mêmes caractèristiques (100 polygones sur 100). Ensuite je recherche pour chaque point de la mer, le point correspondant du fond pour déterminer la profondeur de la mer point par point. Mais là, catastrophe: les points du plan du fond, obtenu par découpe, sont dans le désordre: le point indice 0 n'est pas dans un coin comme on pourrait s'y attendre! le point m peut se trouver au milieu de la ligne n et le m+1, au début de la ligne n+5 ! :arg:
Question: est-il possible de réorganiser les indices dans un ordre logique?


Salut Picot ;-), tout d'abord bravo pour tes recherches trés interressantes. Je me suis souvent penché sur les conceptions de mers et je sais que le sujet est difficile. Pour rendre cohérente la hauteur de tes vague avec celle du fond marin, pourquoi pas capturer ton fond en niveau de gris pour appliquer l'image ainsi obtenue dans le canal déplacement de ta mer ? (on avait conçu un petit outil avec archéo et piou à l'époque qui pourrait peut-être t'aider pour cela cf http://stephmari.free.fr/bump_maker/archeo_doudou_bump_maker4.c4d). Tu cumules ce déplacement aux autres et zou. En plus tu auras un contrôle direct du niveau de subdivision.
Je m'étais aussi arraché les cheveux sur le probléme de la créte des vagues qui finit par retomber en rouleaux (ou tubes) ... il faudra que je me repenche sur le probléme mais en attendant j'ai trouvé un plug "NoiseDeformer" (compatible R10) permettant de créer une légere retombée de la créte de la vague ... je voulais juste te passer l'info ;-)
petite illustration à l'arrache :

sans noisedeformer

http://www.deltazone.org/~fc4d/images/doudou_sansnd.jpg

avec

http://www.deltazone.org/~fc4d/images/doudou_avecnd.jpg

NoiseDeformer : http://www.welter-4d.de/fplugs/freeplugins_en.html

Comme déjà dit, la scéne est faite à l'arrache et j'ai juste calibré les déformateurs (vent, ffd, fusion, noisedeformer) dont les réglages restent trés largement à paufiner (notament au niveau d'une double créte des vagues, quasi invisible ici). Si mon fichier à 2 sous t'interresse pour le réglage du noisedeformer, bipe moi.
Bonne continuation ;-)

picot
18/04/2008, 20h45
Salut Doudou, ça fait une paye que l'on t'avait vu! Tes tests, même fait à l'arrache, sont excellents. :poucehaut: Je vais jeter un oeil là-dessus et je suis preneur de ton fichier à deux sous, c'est pas ça qui écornera mes économies! :mrgreen:
De mon coté je continue à titiller la chose, mais j'ai une put.. n de sciatique qui me tient depuis 3 semaines et ne veut pas me lacher! :coup: Du coup j'ai du mal à rester devant mon clavier, ce qui explique la quasi stagnation de ce WIP.
PS Je viens de rejeter un oeil à ta deuxième image, elle rend vachement bien.

doudou
18/04/2008, 20h56
Voilà le bouzingue (sans les tex' ... aucun interet ;-) ) http://www.deltazone.org/~fc4d/c4d/doudou_essaieau6.c4d, çà te permettra peut-être de dégrossir le boulot avec certains deformateurs qui tu le verras sont parfois placés bizarrement. J'essaie d'amplifier un peu le mouvement ondulaire de l'eau sur la plage et te tiens au jus si je trouve une bidouille ;-)
Oui c'est vrai que çà fait un bail ... j'ai eu une bécanne hs il y a un moment mais suis surtout malade comme un chien depuis des années. En plus, j'ai le quart supéro-externe de l'oeil gauche qui n'y voit plus donc pas le panard pour le graphisme quoi. Allez j'arrette de jouer les Cosette et te laisse nous réjouir avec tes maritimes experimentations :)

ps : tous mes voeux de prompt rétablissement pour ta chiatique ;-)

[EDIT] oops désolé Picot, j'avais lu ton sujet en diagonale et pas regardé les anim. Du coup je ne me suis pas rendu compte du type ""ressac"" des vagues que tu voulais obtenir et qui n'a rien à voir avec les vagues à créte franche et plus creusées que je t'ai pondu :oops:

picot
19/04/2008, 08h36
Salut Doudou,
Je suis navré de ce qui t'arrive et j'espère qu'il y aura du mieux pour toi, c'est en tout cas ce que je te souhaite. Pour en revenir aux vagues, c'est vrai que je bosse sur les vagues déferlantes, mais je suis trés intéressé par ta solution pour avoir des vagues avec des crétes plus marquées sans augmenter leur hauteur. J'ai bien quelques solutions potentielles mathématiques, mais ça passe par des FFt et je n'ai pas encore abordé cette question avec Jean-Laurent, mon prof de math! :lol:
Je me penche sur tes fichiers et te tiens au courant.
PS N'ai pas peur de me gaver, j'en ai vu d'autres avec les maths. :mrgreen:

C2
19/04/2008, 10h53
Bonjour Picot,

J'admire ton travail et ta tenacité, euh, sans rien comprendre.
Pour ton problème de hauteur de fond liant la hauteur de la vague, il n'y a pas moyen de tirer partie du shader proximal, d'en récupérer les infos, j'sais pas, j'y connais rien?

Bravo et bonne continuation :prie:

picot
21/05/2008, 20h26
Aprés une longue immersion, je refais surface.. La sciatique m'a tenue 2 mois et se réveillait surtout la nuit la bougresse! :coup: Je continuais à travailloter mais le coeur n'y était pas vraiment.
Les vagues déferlantes ne sont pas encore au pont et les laisse de coté pour le moment. J'essaie d'améliorer l'aspect de la mer en cassant la régularité des profils des vagues. J'ai utilisé d'abord la fonction random en Coffee mais c'est trop aléatoire. Je voulais donc me servir de la fonction Noise et plus précisément SNoise mais je n'y arrive pas: problème de syntaxe? :arg: Si un cador en Coffee pouvait me dépanner j'en serais fort heureux. Merci.

Jean-Laurent
21/05/2008, 21h22
Salut Picot. :odile:
Effectivement ça fait un bail.

Tu veux faire quoi exactement.
Pourquoi la fonction SNoise? Elle fonctionne un peu comme le random de C4D et c'est pas joli joli. En bouclant tous les 1024.

Sinon il y a ça (en bas de page), je fais un peu de pub:
http://www.frenchcinema4d.fr/forum/index.php?topic=21984.0

picot
21/05/2008, 21h41
Salut J-L,
Pourquoi une fonction Noise? Parce qu'il me semblait que ses résultats étaient plus lissés, plus réguliers q'une fonction Random. En fait je voudrais quelque chose qui me donne une courbe relativement réguliére bien que non répétitive, comme le profil d'une chaine de montagnes. Suis-je plus clair?

georgedrakakis
07/06/2008, 11h26
salut a tout :odile:
i run some tests yesterday with formulas and i found out that formulas can be combined (added effect) for visualizing more complex movements.
this is an example with the default formula equation added 3-4 times and changed a bit.
(i couldn't get on-line and search for more suitable equations). these are simple experiments without knowing well what i was doing, but it's easy to get familiar and predict the results with trial & error (<- my favorite learning method :o )
animating the formula object position ( or take account the x,y,z values of the formula position into the equation) can produce even more complex results.
you can view a simple test http://studiomoccoro.googlepages.com/waves_sample.mov
and the scene file http://studiomoccoro.googlepages.com/multi-formulawaves.c4d

picot
04/07/2008, 11h18
Tiens, un WIP bien poussiéreux! :mrgreen: Pourtant je ne l'ai pas abandonné, enfin, pas complètement.... :oops: mais quelques soucis de santé, plus ceux de mme Picot (elle s'est fait une double fracture du pied début juin) m'en ont tenu éloigné.
Je reprend le problème à bras le corps. Il faut que je révise les notions de math que J-L avait eu tant de mal à me faire avaler :lol:
Je tent justement de repartir de son programme (http://cinema4d.chez-alice.fr/vague.c4d , mais j'ai un gros problème: dés que j'essaie d'animer un plan plus grand (disons 150*150 poly, au lieu des 100*100 d du prog, j'ai tout de suite un plantage! Est-ce un problème inhérent au Coffee? Mauvaise gestion de la mémoire? En tout cas ça me bloque sur ce coup-là. :coup:
Pour ne pas vous laisser sur votre faim j'ai sorti une petite video:
http://www.deltazone.org/~fc4d/autres/picot_vague_perlin10c.avi
La régularité des vagues est atténuée par un bruit de Perlin que je calcule moi-même. dans cette vidéo il y a une tricherie car seuls les "y" sont calculés, c'est pour ça que la bouée ne se balade pas autant qu'elle le devrait

xs_yann
04/07/2008, 11h47
mais j'ai un gros problème: dés que j'essaie d'animer un plan plus grand (disons 150*150 poly, au lieu des 100*100 d du prog, j'ai tout de suite un plantage! Est-ce un problème inhérent au Coffee? Mauvaise gestion de la mémoire? En tout cas ça me bloque sur ce coup-là. :coup:


Apparement c'est un problème de COFFEE, essaye de déclarer i et t en non global (dans le main).


var t = doc->GetTime();
// et avant la boucle for
var i;

(sans oublier d'enlever les déclarations de i et de t en global :roll:).
Bon courage. :odile:

picot
04/07/2008, 17h28
Merci xs_yann, ça marche maintenant! :poucehaut: Jamais je n'aurais été chercher de ce coté! Pour moi, c'était plutôt les arrays qui foutaient la m.... Je constate qu'il m'en reste beaucoup à apprendre sur le coffee :cry2: Sur ce, j'y retourne

nikolas
04/07/2008, 19h37
formidable picot! le mouvement est terrible!
je suis avec beaucoup d'attention ton travail :)

zegolem
06/07/2008, 13h32
Tout comme nikolas, c'est vraiment très chouette.
Petite question, est-ce long à afficher dans le viewport et si displacment il y a, est-ce affichable avec mograph?

BerTiN03
06/07/2008, 16h35
Je suis absolument extrêmement admiratif de ton (votre avec J-L et XS-Yann !) travail.

C'est tout bonnement dantesque, et le résultat époustouflant ! :o

:prie:
:prie:
:prie:

picot
06/07/2008, 20h12
Merci pour ces commentaires élogieux,. C'est vrai que sans l'aide de J-L pour décortiquer les formules mathèmatiques je ne m'en serais pas sorti. Les coups de mains d'autres c4distes pour le coffee n'ont pas été de trop non plus. En effet tout ça est animé par une routine en coffee qui calcule le déplacement des points d'un plan. Pour la bouée c'est un petit bout d'Xpresso. En ce moment je potasse sur les calculs nécessaires pour fiare des crètes de vagues plus aigues. Il faudrait aussi que j'y rajoute les vagues du sillage d'un bateau. Il y a aussi les textures à améliorer grandement, surtout l'écume et les embruns... :coup:
Pour tenir le coup je me paie une des animations que j'ai faites....ça me redonne du punch.
Une de mes favorites :http://www.deltazone.org/~fc4d/autres/picot_vague10.avi
PS Quand tout sera finalisé je posterais le prog.

Jean-Laurent
07/07/2008, 20h17
Heureux de voir que tu ne lâches pas le morceau.
C'est vrai que ce que tu as déjà réussi à faire est impressionnant. :prie:

Slimmy
07/07/2008, 22h39
Pas mieux. Superbe travail :poucehaut:

picot
09/07/2008, 20h51
Une petite avancée: j'ai surtout forcé sur les textures. Je dois quand même avouer que l'effet de bouillonnement d'écume est apparu par hasard, mais je ne vais pas bouder mon plasir. Ce rendu pour me détendre entre le décorticage (décortiquage?) du spectre de vagues de MM. Pierson et Moskowitz.
http://www.deltazone.org/~fc4d/autres/picot_vague_perlin10d.avi
A regarder en boucle, même si ce n'est pas étudié pour.

gaff
09/07/2008, 21h44
Cela fait plusieurs années que je n'ai pas vu l'atlantique et tu va finir par me faire versé une petite larme. :cry2:
A défaut d'avoir le mal de mer je reste pantois devant ton travail.
non seulement il doit y avoir un boulot dingue de math derrière tout ça, mais en plus le rendu est nickel.C'est impressionnant de réalisme.
En association avec Xs-Yann y' aurais pas un joli petit plug a nous pondre?
Je dis ça, mais je suis peut être un peu rêveur.
En tout cas voir quelques vagues même une seconde; ce n'est que du bonheur pour un anémique de parisien. :poucehaut:

Rudy
10/07/2008, 09h14
......En association avec Xs-Yann y' aurais pas un joli petit plug a nous pondre..........

+ 1

Superbe prestation :prie:

BerTiN03
10/07/2008, 09h19
C'est effectivement magnifique mais... elle est ou l'écume dont tu parles ???

georgedrakakis
30/07/2008, 15h45
salut Picot. :odile:
the c.o.f.f.e.e expression is really great.
today i played around with the scene file you posted.
i've added a couple of wind deformers to co-work with the xpression.
excuse the smaller (capillary waves) waves, they are on the wrong direction (-> i should have rotated the deformers 90 deg)

wind deformer animation test (http://studiomoccoro.googlepages.com/sea_test_07.avi)

keep up the good work :prie:

ps: see attached the .c4d file

picot
31/07/2008, 07h00
Bonjour Georgedrakakis,
Good work, but wind is perhaps a bit strong? :o Modulating power of wind will be great for a more realistic sea, but how make it?
PS coffee expression you played around, it's a Jean-Laurent one. I think to post my own expression soon. :mrgreen:

georgedrakakis
31/07/2008, 10h53
Bonjour Picot,
i've never used the wind deformer, and the results were unpredictable :shock:

new_sea_animation test (http://studiomoccoro.googlepages.com/sea_test_8.mov)

the link is a newer test, i tried to animate some of the controllers, to see what happens.
it maybe a good idea to try the wind deformers on a landscape object

and a little update, added more ambient light

animation_test_using paint on surface (http://studiomoccoro.googlepages.com/sea_test_99.mov)

georgedrakakis
01/08/2008, 14h40
i am getting to know better of the wind deformers.
this is a test without using the c.o.f.f.e.e xpression.

wind deformer test (http://studiomoccoro.googlepages.com/sea_test_992.mov)

picot
01/08/2008, 17h47
Your'e on the good way Georgedrakakis! Speed of waves is is on high side. :mrgreen: Perhaps Doudou's contribution can help you in your search. http://www.deltazone.org/~fc4d/c4d/doudou_essaieau6.c4d (http://www.deltazone.org/~fc4d/c4d/doudou_essaieau6.c4d)

luistappa
07/08/2008, 20h13
Voilà un post qui fait des vagues, super résultat "ton truc de pauvre" Picot, chapeau!

picot
10/08/2008, 20h26
Un aperçu de l'avancée de mes travaux (je dois en être à la version 0.0.2a :mrgreen:).
http://www.deltazone.org/~fc4d/autres/picot_perlin12_gonzato6b.avi
J'ai appliqué la recette ( mathématique!) de J-C. Gonzato pour faire des vagues venant s'échouer sur une côte et j'obtiens un résultat à peu prés conforme. :arg: Il reste néanmoins encore de l'ouvrage sur la planche du point de vue réalisme et artistique! . Les vagues venant mourir forment bien un début de rouleau mais je n'ai pas la recette pour que le rouleau vienne se raccrocher à la vague. Le problème vient du fait qu'il ne s'agit que d'un plan dont les points sont animés. J'ai bricolé pour obtenir des vagues pas trop régulières, mais il faudrait également que je fasse des crètes qui se détachent de temps en temps... Bon, comme vous le voyez ne compter pas trop vite sur un plugin.
NB Mes excuses pour la texture de la mer qui fait d'avantage penser à du mercure qu'à de l'eau salée.
Picot pas encore noyé!

georgedrakakis
10/08/2008, 20h32
superbe :poucehaut: :poucehaut: :poucehaut:

Rudy
10/08/2008, 20h36
Génial :prie:

Bon, pour le plugin, je pense que beaucoup feront le siège devant ton WIP. Je me propose pour apporter les merguez :mrgreen:

Blague à part, je reste admiratif de ton travail :love:

picot
12/08/2008, 21h10
Quelques petites améliorations dans ce rendu: http://www.deltazone.org/~fc4d/autres/picot_perlin12_gonzato6d.avi J'ai surtout travaillé les textures qui n'étaient vraiment pas à la hauteur et la forme des vagues.
En testant mon programme dans plusieurs conditions , en particulier en faisant varier la pente du fond de la mer, j'ai constaté que ça dérapait avec des angles importants! :puke: A voir de prés donc! :mrgreen:
Picot pas encore découragé... :)
Erreur de fichier! Corrigé.

Seb-bbl
13/08/2008, 16h08
La texture de la flotte, bien qu'un peu trop lisse, est déjà :bave:

Rudy
13/08/2008, 20h21
C'est encore plus beau, et je reste bluffé par la qualité de l'animation :prie: :prie:

Killian
14/08/2008, 14h36
Je comprend rien aux équations et autres programmations, mais cette vidéo WWHHHAAAOOOOOHHHH :shock:

georgedrakakis
15/09/2008, 22h00
salut :odile:
someone asked for Gerstner Waves (http://forums.cgsociety.org/showthread.php?f=47&t=673737) @ cgtalk.
i found a usefull link that might interest you-> Gerstner Waves Statistical Wave Model (http://www-viz.tamu.edu/students/jd/658/T_algorithms.html)

picot
16/09/2008, 10h38
Hello georgedrakakis, thank you for your very interesting links. By now, this Wip is deserted because I'm overdosed by salted water! :mrgreen: But I'll com back.

picot
09/04/2009, 15h22
Les beaux jours revenant, ça m'a donné envie de reprendre ce WIP qui n'avait débouché sur grand chose. :oops: J'ai traficoté mon xpresso coffee pour essayer d'avoir des vagues avec des crètes plus marquées. Je travaille sur un plan pas trop grand (101x201 m avec un quadrillage d'environ 1 m) pour obtenir des résultats rapides. Ici ( http://www.deltazone.org/~fc4d/autres/picot_vague_perlin14e.avi ) le mouvement est donné par l'addition de 10 vagues. Pour casser la régularité du résultat j'ajoute un montant aléatoire. Comme l'addition de l'amplitude des vagues dépasse une certaine valeur la crète a tendance à faire des boucles. Pour tirer parti de ce phénomène j'ai deux textures pour le plan mer: une dans les tons bleus dessus et l'autre blanc moucheté dessous. Cette dernière n'apparait ainsi que lorsqu'il y a bouclage cest à dire sur les crètes.
A + pour la suite de cette aventure océane.
Picot à nouveau dans le bain (pourvu que ça dure!...)
PS la cabriole de la bouée n'était pas prévue :mrgreen: mais je la trouve bien sympa.

grover
09/04/2009, 15h32
Juste un mot : :o bluffant !

base80
09/04/2009, 15h37
Splendide!!
Comment marche cette bouée?

Muga
09/04/2009, 15h43
Superbe ! :prie:

edj kodiak
09/04/2009, 17h34
je ne comprends rien aux calculs, mais le résultat :poucehaut:

:efface: :efface: :efface:

picot
09/04/2009, 18h28
Content que ça vous plaise.
Pour le mouvement de la bouée c'est un bête xPresso: par DU je couple ma bouée à un polygone et c'est ce dernier qui détermine sa postion et sa rotation. J'ai tenté d'animer un bateau de la même façon, en choisissant un polygone pour la proue et un autre pour la poupe mais j'obtiens un mouvement trop saccadé. Il faudrait que j'amortisse le mouvement pour qu'il soit plus coulé (le mouvement et non le bateau :mrgreen:).
L'animation des vagues fait 15 lignes de code tout compris: calcul et dessin. Le plus pointu est de trouver les bonnes valeurs de longueur et de hauteur de vagues sans oublier leur direction. Le reste c'est de la préparation: lecture des plans mer et mer-origine, calcul du bruit (bruit de Perlin=> la moitié du prog :o).
Si vous voulez vous amuser, pas de problèmes, je vous file le prog.
NB Il serait intéressant de rentrer les valeurs des vagues par DU pour pouvoir les changer facilement. J'ai pas encore eu le temps de m'y atteler.

keltoi
09/04/2009, 18h40
Qu'un seul Mot picot :prie: Tu exhause le reve de bcp de personne.

picot
13/04/2009, 17h47
Une petite mise à jour, mais l'effet d'écume n'est pas trés réaliste. Ca fait plutôt oeufs sur le plat! :( .En plus ça "fourmille".
Pour bien faire il faut que j'arrive à calculer des vagues se brisant contre les rochers. Ca va être coton
http://www.deltazone.org/~fc4d/autres/picot_vague_perlin14f.avi
PS Les rochers sont produits par Rockgen. Trés bien ce petit plug.

amateur
14/04/2009, 09h04
depuis le temps que je suis ton projet ,je suis admiratif . :prie:

picot
15/04/2009, 21h36
Début de mes essais pour modifier le comportement des vagues lorsqu'il y a un obstacle: ça n'est pas encore du haut niveau. :roll: En regardant la vidéo vous apercevrez vers le début une espèce de relief triangulaire, c'est vraiment moche pour l'instant :oops: mais je réussis quand mêm à modifier les vagues à l'endroit voulu :D. Il faut que j'affine les bords de façon à avoir quelque chose de plus arrondi. Il faut aussi, et surtout, avoir une idée du comportement à donner à la vague quand elle rencontre le rocher. :cry2: Je vais peut être bien aller squatter chez un breton: Buzhug, Aurety (au fait, que devient-il? Il y a bien longtemps qu'on l'a vu!) pour observer in situ.http://www.deltazone.org/~fc4d/autres/picot_vague_perlin14j.avi
(http://www.deltazone.org/~fc4d/autres/picot_vague_perlin14j.avi)
PS la tache orange est un polygone de 1mx1m. Elle permet de matérialiser le chemin parcouru par un objet à la surface de l'eau.

DEEP
15/04/2009, 21h46
arg... J'savais pas qu'on pouvait faire ça en 3d... Magnifique!!!

gaff
15/04/2009, 21h51
:shock: Raaahh là là, tu pousses le soft dans ses retranchements toi.
C'est impressionnant ce qu'on peut faire avec ce logiciel quand on a le cerveau qui va avec! :love:

picot
20/04/2009, 22h35
Gros travail (tout au moins pour moi :mrgreen: ) sur les textures: ajout d'écume, et ruissellement sur le rocher. Ca commence à prendre une certaine tournure, même si ça n'est pas encore à la hauteur de mes espérances, surtout l'écoulement de l'eau sur le rocher. J'ai fait ça en récupérant ma texture de pluie un peu modifiée bien sûr (un alpha animé).
Voici où ça en est:
http://www.deltazone.org/~fc4d/autres/picot_vague_perlin14l2.avi

Slimmy
20/04/2009, 23h00
très beau travail picot, ça commence vraiment à ressembler à quelque chose :poucehaut:

boulette_padre
21/04/2009, 00h16
raaa la vache c'est hyper réussi, à chaque update on sent une progression!
Super picot

grover
21/04/2009, 01h00
Picot, tu es beau ! :prie:

aresca
21/04/2009, 06h58
et grand! :prie:

DEEP
21/04/2009, 09h27
Moi j'aurais dit petit et laid mais bon, tout est relatif, non??? :mrgreen:

BerTiN03
21/04/2009, 11h47
P'tin.. mais ça devient vraiment de plus en plus grave ton système, la.. :o


Lache pas l'affaire Picot (enfin, je pense pas que ce soit dans tes intentions de toute façon ! :mrgreen:)

C'est incroyablefou ce que tu fais ! :prie: :prie:

LEGORE
21/04/2009, 12h15
pté pté pté beaucoup d'eau à coulé sous les ponts depuis mon dernier post et je rode de temps en temps par ici n'ayant plus le temps de faire de la trois dé et quand je vois çà bin chapeau chapeau de chapeau de chapeau çà me redonne envie rhah bon je m'en vais peut etre m'y remettre (je ne sais pas pourquoi mais j'ai vu le jour à travers ma malle en osier ou mon maitre m'a enfermé on à du me faire sortir de ma cave...)

bises continuez comme çà (signé la crampe)

geantvert
21/04/2009, 13h09
ca picot te les yeux ici, normal c'est salé
on va bientot pouvoir prendre un bon bain :mrgreen:
:efface: :efface:

picot
21/04/2009, 22h40
Merci pour vos encouragements. C'est vrai que les résultats, bien qu'encore imparfait, me donne envie de continuer. J'ai fait un petit essai avec une mer plus grande (400 x 400m au lieu de 50x100 m), un petit flou de profondeur histoire de voir ce que ça donne... :) Je n'ai pas encore réussi à faire pleurer mes rochers - en fait seul le rocher de droite est concerné pour l'instant - mais je vais y arriver, mais je vais y arriver, mais je vais y arriver..
http://www.deltazone.org/~fc4d/autres/picot_vague_perlin14m.avi
PS Oui, je sais, on voit l'envers du décor, la caméra a bougé. Ca doit être une rafale de vent.. :mrgreen:.

keltoi
24/04/2009, 21h06
Genial Picot, juste frustré que ce ne soit pas plus long. Le flou a l'horizon rend super. Bravo :prie:

picot
25/04/2009, 14h45
Ne reculant devant aucune difficulté, voici l'interlude sonorisé :mrgreen:
http://www.deltazone.org/~fc4d/autres/picot_vague_perlin14_son2.avi
Le son ne boucle pas trop bien (les images aussi d'ailleurs), mais je m'aventurais dans un domaine inconnu. :grin:
J'ai ajouté un ciel AR mais pour ce qu'on le voit, j'aurais pu m'abstenir. J'ai modifié aussi l'écume mais je ne suis pas sùr d'avoir amélioré l'esthétique :puke: .
Maintenant je voudrais inclure un( des?) émetteurs de particule(s) pour faire des embruns. Le hic, comment inclure l'inclure dans mon coffee? :arg: Idem pour des DU. J'ai bien retrouvé une vieille contribution, mais ça ne marche pô chez moi :poucebas:
ps Navré Keltoi, mais pour la durée, faudra attendre un peu. Ces petites anims me bouffent déjà pas mal de temps. Je n'ai pas une machine de la mort qui tue moi. :cry2:

Guedinouff
25/04/2009, 15h47
Pour les particules tu veux gérer çà avec les outils de base de Cinema4D ou avec Thinking Particle ?
Cà doit être sur le principe plus "simple" à gérer avec TP car tu as des contrôles plus précis, et très bien contrôlable dans un Xpresso. ?

Pour des Données Utilisateur si tu veux je peux le faire. Pour remplacer tes variables interne au script coffee, par des contrôleurs plus simple à modifier. Mais je n'ai pas encore assez compris ton script pour faire des contrôles plus "user friendly" (c'est à dire pas lié directement à une de tes variables)

D'ailleurs si tu veux je peux simplifier un peu ton code (à moins que tu ne l'ai déjà fait), si mes souvenirs sont bons, tu déclarait des trucs en double, des variables pas utiles. Cà peut peut-être permettre de gagner un petit peu sur le rendu.

picot
25/04/2009, 16h15
Salut Macaîdam,
Je te remercie pour ta proposition en ce qui concerne les DU, ça m'intéresse. Pour les particules, je n'ai que l'outil de base de C4d, mais je pense que c'est suffisant: il faut juste cracher quelques postillons à la crète des plus hautes vagues. Mais là aussi je suis preneur.
En ce qui concerne mon code tu peux bien sûr y apporter toutes les améliorations voulues. Il y a plein de scories suite à mes différents essais et un peu de nettoyage ne ferait pas de mal . Pour les temps de rendu, je pense que ça vient surtout des textures avec les transparences, alphas, Fresnel,....
Mais toi, tu n'as pas quelques résultats à nous montrer? Ca m'intéresserait de voir tes travaux, si ça n'est pas confidentiel.
PS Si tu as besoin d'explications complémentaires sur mon coffee, n'hésites pas.

Guedinouff
25/04/2009, 16h50
Je n'ai pas de résultat à montrer pour le moment, j'ai juste eu le temps de regarder un peu le code. Mais je vais essayer de le mettre en application dans un projet qui va bientôt m'arriver.
Et puis faut dire que tu places la barre tellement haut, que c'est difficile de montrer un truc à la hauteur.

Pour les DU, et le nettoyage de code, je vais essayer de sortir un truc la semaine prochaine.

BerTiN03
25/04/2009, 20h18
Oula, c'est le coin des grosses brutasses du Coffee la.. :arg:


:prie: :prie: :prie:

Rudy
26/04/2009, 12h16
Oula, c'est le coin des grosses brutasses du Coffee la.. :arg:


:prie: :prie: :prie:


C'est superbe picot. Intéressant et superbe :prie:

Je me retire doucement, histoire de ne pas faire de vagues...

picot
26/04/2009, 17h26
Une dernière petite vidéo pour la route; amélioration de l'écume(à mon sens :mrgreen:), nuages volumétriques animés,.. au total 8 heures 56 pour 195 images ! :cry2:
http://www.deltazone.org/~fc4d/autres/picot_vague_perlin14o.avi
Aprés ça, je dois passer aux affaires sérieuses: intégration de l'effet de la profondeur, embruns,..

picot
02/05/2009, 18h23
Je n'ai pas respecté mon programme, J'ai ressorti un remorqueur polonais que j'avais commencé il y a quelques temps (toujours pas terminé :oops:) et l'ai intégré dans ma scène. Ca m'a causé quelques soucis au point de vue coffee. Pour faire flotter mon bateau et calculer son tangage il me faut la hauteur y du niveau de l'eau à l'avant, au milieu et à l'arriére du bateau. Bien évidemment ce niveau fluctue continuellement En outre les points du maillage mer se déplacent selon z. Enfin j'ai trouvé une solution qui n'est pas garanti pour tous les cas. Il reste un gros problème, c'est d'avoir un déplacement fluide et là je n'ai pas encore la formule. Si quelqu'un a une idée? :mrgreen: Actuellement j'additionne mes 3 valeurs ( niveau avant, centre et arrière) plus le niveau centre de la phase précédente et divise le tout par 4. J'ai bien l'impression que c'est plutôt sommaire. Pour le tangage, c'est à peu prés pareil.
Je vous présente le bébé, à vous de juger:
http://www.deltazone.org/~fc4d/autres/picot_vague_perlin14p.avi
PS J'ai réussi à intégrer des Du dan le coffee sans passer par Xpresso et ça marche. Ca pourrait permettre de piloter le bateau :arg:

Guedinouff
02/05/2009, 19h03
Pour que ce soit moins sautillant comme mouvement pour ton bateau il faut faire en sorte que çà évolue doucement, par exemple en faisant une moyenne avec la valeur des images précédentes. Ainsi ta valeur évolue plus doucement, et n'a pas un changement instantané

keltoi
03/05/2009, 17h48
Picot, com d'ab je reste en eternelle admiration devant ton travail :prie:. Pour le tangage de ton porteur, vu que c'est la partie avant du bateau qui entre en contacte en premier avec la vague, jouer sur l'axe Y a l'avant du bateau, et ensuite jouer sur l'orientation. Quand la vague touche l'avant, monter Y et inclinaison dans le sens qui va, et quand la vague touche l'arriere, redescendre Y et et incliner dand l'autre sens. Peut etre que ce serait plus simple que de gerer 3 coordonées. Bon ptet que jdis des conries

picot
03/05/2009, 22h47
Keltoi, je ne suis pas sùr d'avoir bien compris ton idée. J'ai poussé dans le sens de Macaîdam en faisant une moyenne entre les 3 valeurs T0 avec les 3 valeurs de T-1 C'est un peu plus fluide, mais pas encore vraiment réaliste. Il faudrait que j'amortisse le mouvement en amortissant le mouvement vertical et temporiser quand y augmente. Je vois un peu ce qu'il faudrait obtenir, mais pour le concrétiser c'est une autre paire de manches. :coup:
http://www.deltazone.org/~fc4d/autres/picot_vague_perlin14p.avi
Je ne suis pas mécontent du mouvement d'écume autour du bateau. :D Merci Proximal :poucehaut:

BerTiN03
03/05/2009, 23h10
Oui, on sent qu'il y a encore toute une démarche à développer pour le mouvement du bateau, mais te connaissant, je pense qu'au final tu vas encore nous mettre sur le cul par le résultat ! :poucehaut:

Déja, entre ces 2 premiers essais très rapprochés dans le temps, l'évolution est nettement perceptible !

Et effectivement, tu peux être content de l'écume autour du bateau ! :poucehaut:


Allez, go on, et fous nous en plein la gueule ! :wip: (de l'eau... :mrgreen:)

genghiskhan
03/05/2009, 23h40
excellent on dirait du stop motion l'anim du bateau

tycho
04/05/2009, 07h30
Passionnant a suivre, même si je ne pige pas tout.

picot
04/05/2009, 19h00
Comme je suis un bon gars et qu'à mon age le ridicule ne tue plus, je vous fais profiter de ma dernière tentative:
http://www.deltazone.org/~fc4d/autres/picot_vague_perlin14r.avi
Je ne sais pas si c'est un bateau qui avait une vocation sous-marine contrariée, en tout cas il n'avance pas beaucoup :coup: d'un autre coté il ne coule pas non plus :lol:

keltoi
05/05/2009, 00h03
On sent que cela doit etre une sacrée prise de tête. Desolé de ne pas avoir ete clair, de toute maniere t'es sur la binne voix :bounce:

NiKo
05/05/2009, 00h51
mdr...

Bon, par contre je pense qu'il ne faudrai pas trop que tu te prennes la tête avec le bateau, au moins dans l'immédiat.
Si j'avais à animer une scène comme ça, la seule problématique (de taille) serait la mer. Le bateau, je l'animerai à la main. Plus rapide, plus souple, et réaliste.
Le système de la bouée en revanche était top: les vagues se déplacent mais pas la bouée. ça c'est extra d'un point de vue réalisme...

Bon courage pour la suite! Mettre autant de ténacité dans un projet comme ça, il faut que ça aboutisse au final! :art:

picot
05/05/2009, 11h45
J'ai réduit la scène à l'essentiel pour mieux appréhender le mouvement. J'ai neutralisé le déplacement du bateau mais le principe reste le même. J'ai quand même ajouté la bouée pour faire plaisr à Niko. Ce wip n'est pas vraiment une prise de tête. Mon coffee ne fait que 150 lignes de code plutôt aéré, y compris les commentaires.
Niko, je pense que ça serait dommage d'animer le bateau à la main alors que quelques lignes de prog peuvent le faire. Bon, faut les trouver! :mrgreen: J'avais pensé à l'aligner sur une spline mais, il faudrait qu'elle suive les mouvements des vagues. C'est possible, il suffit de calculer la position des points de la spline donc retour à la case départ.
Maintenant, place aux images:
http://www.deltazone.org/~fc4d/autres/picot_vague_perlin14s.avi
J'aimerais bien connaitre votre sentiment sur le mouvement du bateau. Crédible? Pas crédible? Qu'est-ce qu'il manque? Si quelqu'un avait les réfs d'une bonne vidéo. Je me suis payé Youtube, mais ma recherche a été infructueuse. :(
Picot qui patauge..

geantvert
05/05/2009, 12h17
hello picot :odile:
excellent ton dernier test en mode coupe :poucehaut:
le mouvement marche très bien pour la bouée.
pour ce qui est du bateau, d'après ce que je vois, ce sont les 3 points rouges qui servent de repères pour le niveau de l'eau.
je trouve le mouvement très saccadé ou tout du moins "anguleux" peut être peux tu atténuer la détection du relief de l'eau afin que ton bateau ait un mouvement plus fluide. car pour la bouée ça marche vraiment bien

j'admire tes essais :bave:

Guedinouff
05/05/2009, 12h32
La difficulté en fait pour ton bateau c'est qu'en réalité, Il n'y a pas que les vagues qui le font bouger. Ce serait le cas s'il était très léger, mais comme il a un certain poids, il a une oscillation régulière de lui-même. Tu devrais essayer de prendre les valeurs de ta vague principale (longueur, amplitude, angle), pour le faire osciller, auquel tu lui ajoutent le mouvement que tu calcule avec tes trois points.

keltoi
05/05/2009, 21h32
Vraiment tres interessante cette vue, en effet, le mouvement reste sacadé. es-tu capable d'anticiper les hauteur de vagues, afin de generer une fonction entre deux positions du bateau, de maniere plus souple? Bonne chance et encore bravo :efface:

picot
06/05/2009, 22h29
Y s'accroche le vieux :mrgreen: J'ai revu mon code et j'ai dù remanié la routine qui testait la position du bateau. Il y avait quelques incohérences. Voilà la nouvelle mouture:
http://www.deltazone.org/~fc4d/autres/picot_vague_perlin14t.avi
Je me demande si je n'ai pas trop lissé le mouvement là? :o
Je vais quand même laisser ça de côté et me replonger dans les textures, puis je m'occuperais des vagues d'étrave et de sillage ensuite. :grin:
PS Non, Keltoi, je ne peux pas anticiper le mouvement des vagues ou alors seulement d'un tour, sinon il faudrait mettre en mémoire tous les points du maillage (400*400* 25 im/s* 3(coordonnées x,y,z) ). Je pourrais bien me contenter d'une petite pile mémoire sur 5 ou 6 images mais c'est un peu casse-pied à gérer et ça risque de ralentir le prog.

picot
08/05/2009, 11h32
Début des recherches de textures pour mes vagues. La texture de l'image du bas aurait ma préférence (pour l'instant) :). C'est vrai que les résultats sont un peu biaisés car le ciel de la dernière est avec image HDRI. Les changements interviennent uniquement sur les couches d'écume. C'est le réglage des tags alpha qui font toute la différence: un alpha avec un dégradé linéaire qui permet de mettre de l'écume aux crètes des vagues et l'autre avec un bruit Sema mélangé avec un bruit Voronoi déplacé pour figurer l'ecume dans las creux. Pour chacune la couleur est la même.
http://www.deltazone.org/~fc4d/images/picot_mer_2345.jpg

tycho
08/05/2009, 12h23
:bounce: Wouf la dernière image est vraiment :bave: c'est a s'y méprendre, la lumière sur l'eau est géniale et pas de lueur comme on aurai tendance a en abuser. L'écume sur la première est très bien. Je crois qu'il n'y a rien de plus dur a créer que l'eau en 3d mais là, ça le fait vraiment. Tu vas finir développeur chez maxon toi.
pour ton post précedent, je n'ai pas compris si le bateau tanguait sur les trois plans ou juste sur le plan des trois points?

Edit : en fait sur la premiere image, je ne parlais que de l'écume dans les creux pas aux pointe (trop forte)

picot
08/05/2009, 13h35
Merci Tycho. Mon problème est justement de doser l'écume sur les crètes; il en faut mais pas trop... :mrgreen: Pour le bateau, il n'y a que le tangage qui est simulé, mais ça ne pose pas de problème particulier pour faire le roulis. Il faut juste ajouter quelques points de référence sur les côtés.
Quand tout sera au point vous pourrez faire mumuse avec et je suis bien sùr qu'il y en a d'aucun qui sortiront des textures 100 fois mieux.

yayaprod
09/05/2009, 22h02
Hello, :efface: :prie:
Tes recherches sont vraiment intéressantes et la difficultée est de taille aussi, en plus tu dévoiles tout tes secrets.
Merci à toi de partager ton savoir.
Yaya. :wink:

picot
14/06/2009, 14h43
Reprise de ce wip...Il était grand temps que je justifie son titre en ce qui concerne les embruns. :mrgreen: Je me suis donc plongé dans les particules, des toutes bètes, pas des pensantes. Et voilà le résultat:
http://www.deltazone.org/~fc4d/autres/picot_vague_perlin_embruns.avi
J'ai simplifié les textures pour gagner en rapidité de rendu. Dans cet exemple les émetteurs ne sont pas intégrés au coffee et sont réglés à la main. Pour bien faire, il faudrait que les particules soient déclenchées par le prog au moment voulu en testant par exemple la hauteur de la vague juste avant le rocher et mettre un peu d'aléatoire dans les réglages pour éviter l'uniformité.

keltoi
14/06/2009, 15h33
Toujours aussi passionnant Picot :efface: en revanche, je trouve que l'ecume semble disparaitre en l'air, mais elle ne donne pas l'impression de retomber dans l'eau. De plus, je trouve les particules, ou goutelettes un peu grosses.

Bonne suite

kool
15/06/2009, 23h26
Franchement, chapeau bas ! Le résultat obtenu est digne d'une production cinématographique !!! :prie:
...et si il faut utiliser un HDRI pour obtenir ce beau résultat, c'est vraiment un détail, non ?

En ce qui concerne les particules, et bien évidemment on voit que ce n'est pas encore ça mais on se doute que ça ne va pas rester longtemps à ce stade :wink:
Les particules font ici un effet grisatre, il y manque de l'éclat, peut-être un peu de luminescence associée à de la lueur. enfin c'est juste une reflexion à froid, hein...

J'ai hâte de tester ça dans une anim :efface: :efface:

picot
16/06/2009, 18h51
J'ai revu mes particules. L'émission était trop courte et l'effet gravité insuffisant. L'effet n'est pas encore au point mais ça avance.
http://www.deltazone.org/~fc4d/autres/picot_vague_perlin_embruns2.avi
Parallèlement, je met au net le prog pour vous permettre de le tester. Il y a encore un eptit peu de scories.

lenogre
17/06/2009, 10h30
La classe !

atome451
17/06/2009, 11h07
Je suis en silence depuis un bout de temps.
C'est un boulot fantastique !

:poucehaut:

NiKo
17/12/2010, 15h58
Boum... Bon gros up d'un an et demi!
C'est carrément dommage: tous les liens sont morts! Vu le taff que Picot avait tombé, c'est carrément une grosse perte, là...
:crying:

picot
17/12/2010, 17h01
Comme c'est curieux! Depuis hier j'ai justement repris mes travaux sur les vagues. En fait, aprés une refonte de mon ordi (chgt carte mère, graphique, augmentation mémoire et ajout d'un 4ème DD) j'ai dù réinstaller Win 7 64 et faire un peu de ménage sur mes disques. A cette occasion, j'ai eu un gros coup au coeur; je ne trouvais plus mon dossier "Vagues". Toute une vie de labeur disparue! (d'accord, j'exagère un peu là!) Finalementj'ai retrouvé une sauvegarde (Ouf) et du coup je m'y suis replongé. Je vous ai souvent promis de vous fournir le prog, il serait peut-être temps de tenir mes promesses. Je vais en profiter aussi pour recharger les références disparues.
A bientôt.
PS Xander est aussi un peu, même si c'est à son insu, à l'origine de ce revival: j'ai pensé que ça pourrait lui servir pour son vaisseau. Maintenant, au boulot.
re PS Je suis un peu paumé avec cette nouvelle mouture du site et ne trouve plus mes marques: Je suis incapable d'insérer les icones au bon endroit....

NiKo
17/12/2010, 19h11
Salut Picot! Toujours là, c'est cool!

Je t'ai envoyé un MP... ;-)

dotcom
17/12/2010, 23h11
aucune vidéo, on ne peut pas suivre ce topic ni comprendre quoi que ce soit là !
dommage.

picot
18/12/2010, 11h40
Faut pas pleurer..Je vais restaurer tout ça ou tout au moins une partie. La crise est passée par là et j'ai dû fermer provisoirement l'atelier....

dotcom
18/12/2010, 12h00
cool !

et tant mieux si ta fermeture n'est que - provisoire

phidek
18/12/2010, 12h00
Je vais suivre ce topic avec beaucoup d'intérêt, ça avais l'air passionnant.
Dommage que les liens soient mort. Je suis impatient de voir les images... :001_tt1:

bru
18/12/2010, 12h34
Moi aussi!

xander
18/12/2010, 15h31
Je suis aussi intéressé ^^

picot
21/12/2010, 18h04
Passons aux choses sérieuses: voici une capture d'écran du prog qui permet de faire des vagues: :whistling:
http://fc4d.deltazone.org/images/picot_vague01.jpg
On crée un plan de référence pour la mer (mer-origine) - le quadrillage doit être impair pour éviter une erreur de division par 0 - la routine coffee va le dupliquer et en déplacer les points de cette copie en fonction des calculs. Les calculs sont basés sur les données de chaque vague: longueur, hauteur et orientation sur le plan. La vitesse des vagues est calculée à partir de leur taille. Ici les données sont entrées par DU mais on peut préférer les entrer dans le tableau vagues directement. Ca implique de compiler chaque fois qu'on les modifie. Pour varier les plaisirs j'ai prévu un coefficient agitation qui s'applique à la hauteur des vagues et une entrée pour le nombre de vagues prises en compte.
Comme je n'avais pas le courage de prévoir autant de DU que de vagues les vagues 4 à 6 et 7 à 9 reproduisent les vagues 1 à 3 affectées d'un coefficient. :whistling:
Bien évidemment tout se passe dans la routine COFFEE.
Je vous met celle-ci dans le prochain message.
Je vous joindrai aussi le prog mais sous c4d 11.5.
A suivre ....
A suivre....

dotcom
21/12/2010, 18h34
Ha! ok :scared:

moi qui pensais que ça se jouait sur une simple formule appliquée à un déformateur,
ou à des matériaux sur d'autres avec alpha animé et displacement : un pour chaque vague ...
(un peu long quand même !)
ça ressemble plus à un plug-in là !

picot
21/12/2010, 18h35
Le morceau de bravoure (excusez moi pour la longueur :blushing:) la routine coffee:
var angle,first,fx,fz,intx,intz,lg,Lg,LgUt,mer,r1,X;

Alea (fx,fz)
{
var hasard,initial,domaine;
initial=((fx+19.0)*(fz-17.0))*15731.0;
var depart= Modulo(16807.0*initial,(pow(2.0,31.0)-1.0)); // Tirage d'un nombre au hasard
domaine=0.0;
if (domaine==0.0)
hasard=depart/(pow(2.0,31.0)-1.0); // On ramène le nombre entre 0 et 1.
initial=depart;
return(hasard);
}

Calcul_X(fx,fz,angle)
{X=(fx*cos(angle))-(fz*sin(angle)); return X;}

main(doc,op)
{
var cnm,k,m,n,l,long,larg,objMer,p,pmer,saisies,sec,t, tz,ty;
var G=9.80665; // vitesse acceleration gravite en m/s
var VMer="mer-origine";
//
// init mer
var cnt =op->GetPointCount();
var pmer=op->GetPoints();
//
if (first==0)
{
first=1;
cnm=0;
objMer=doc->FindObject(VMer);
if (!objMer) {println("pas trouvé mer_origine"); return FALSE;}
cnm=objMer->GetPointCount();
mer=objMer->GetPoints();
larg=abs(mer[0].x-mer[cnm-1].x);
long=abs(mer[0].z-mer[cnm-1].z);
intx=abs(mer[0].x-mer[1].x);
lg=int((larg/intx)+1.5);
Lg=cnm/lg;
intz=abs(mer[0].z-mer[lg].z);
LgUt=Lg-1; // longueur utile
}
t=doc->GetTime();
var sec = t->GetSecond();
// récupération données utilisateur
var lg_1=op#ID_USERDATA:1;
var ht_1=op#ID_USERDATA:2;
var ang_1=op#ID_USERDATA:3;
var lg_2=op#ID_USERDATA:4;
var ht_2=op#ID_USERDATA:5;
var ang_2=op#ID_USERDATA:6;
var lg_3=op#ID_USERDATA:7;
var ht_3=op#ID_USERDATA:8;
var ang_3=op#ID_USERDATA:9;
var coef_vagues=op#ID_USERDATA:11;
var nb_vag=op#ID_USERDATA:10;
// calcul coefficient pour vagues 4 à 6;
var coef2=1.0+(Alea(lg_1,lg_2)*0.5);
var coef3=1.0+(Alea(lg_1,lg_3)*0.9);
//wav[x,0]:Longueur
//wav[x,1]:Amplitude
//wav[x,2]:Vitesse
//wav[x,3]:k (2Pi/L)
//wav[x,4]:w (2PI/(L/V))
//wav[x,5]:angle de propagation
//var DU_coef = saisies#ID_USERDATA:1;
var wav = new(array,9,6);
wav[0][0]=lg_1;wav[0][1]=ht_1;wav[0][5]=ang_1;
wav[1][0]=lg_2;wav[1][1]=ht_2;wav[1][5]=ang_2;
wav[2][0]=lg_3;wav[2][1]=ht_3;wav[2][5]=ang_3;
wav[3][0]=lg_1*coef2;wav[3][1]=ht_1*coef2;wav[3][5]=ang_1*1.46;
wav[4][0]=lg_2*coef2;wav[4][1]=ht_2*coef2;wav[4][5]=ang_2*1.5;
wav[5][0]=lg_3*coef2;wav[5][1]=ht_3*coef2;wav[5][5]=ang_3*0.95;
wav[6][0]=27.0;wav[6][1]=1.1;wav[6][5]=ang_1*0.57;
wav[7][0]=2.00;wav[7][1]=0.09;wav[7][5]=ang_2*0.41;
wav[8][0]=16.0;wav[8][1]=0.60;wav[8][5]=ang_3*0.47;

// Initialisation du tableau vagues
for (l=0;l<9;l++)
{
wav[l][2]=sqrt(wav[l][0])*1.249; // calcul vitesse vague
wav[l][3]=pi2/wav[l][0]; // calcul de k
wav[l][4]=wav[l][3]*wav[l][2]; // calcul de w
}

if (!cnt) {print("ok");return TRUE;}
k=0;
// calcul des coordonnées des points du plan mer
for (m=0;m<Lg;m++)
{for (n=0;n<lg;n++)
{ tz=0.00;
ty=0.00;
r1=0.0;
for (l=0;l<nb_vag;l++)
{
// prise en compte de l'angle de la vague
X=Calcul_X(mer[k].x,mer[k].z,wav[l][5]);
r1=Alea(m+1,n+1)*0.02;
// calcul du deplacement (z et y) du point mer
tz=tz+(wav[l][1]*cos((wav[l][3]*X)-(wav[l][4]*sec)+r1));
ty=ty-(wav[l][1]*sin((wav[l][3]*X)-(wav[l][4]*sec)+r1));
}
//affectation nouvelles coordonnées (point mer)
pmer[k].y=ty*coef_vagues;
pmer[k].z=mer[k].z+tz;
k++;
}
}
op->SetPoints(pmer);

println("travail effectué!");
op->Message(MSG_UPDATE); //
//EventAdd();
}

druide
21/12/2010, 18h42
Salut, si je copie la routine coffee et que je la colles dans mon C4D r10.5 ça houle ? Ou il faut absolument la r11 ?

En tous cas bravo c'est vraiment bien pensé.

Merci, merci.
Et merci

BikS
21/12/2010, 18h49
quand je vois ce bout de code une seule chose me vient à l'esprit!.... :death:

picot
21/12/2010, 18h58
Non, Druide, je pense que ça doit rouler tel quel! En fait ça été développé sous la version 10.
Tu sais Biks, j'étais analyste-programmeur en Fortran, Cobol, APL,...alors là c'est plutôt de la rigolade:D
Un petit cadeau un peu moins rébarbatif:

http://fc4d.deltazone.org/autres/picot_perlin_definitif04.mov

dotcom
21/12/2010, 19h03
Bon, ben j'ai déjà rentré les données lg_1 et ht_1 en DU avec un mer-origine créé et le coffee bien mis sur le plan mer édité dans un HN,
et j'ai pas une vague ! même pas la première, c'est un étang quoi !
faut-il rentrer toutes les DU pour que cela fonctionne !
et ensuite ajouter le coffe puis appuyer sur execute ?

complètement newbie sur coffee je me doutais bien que ça ne fonctionnerai pas du premier coup (trop beau!)
ha ! dès que je vois des var id et des if then cos et cie... je me dis que ça va être encore bien facile !


(Edit) ô pinaiz ! ça marche !! bon un plan edité de 400 par 400 en 201/201 subdiv ça rame graaav mais c'est trop bon !


BRA
VO
!!

druide
21/12/2010, 19h24
Je dois être aussi bon que dotcom car après compilation j'ai un "access failed" ligne 48 .

Ah ces noobs faut tout leur faire !

Oups, pardon je viens de comprendre :blushing:
Ah bah non en fait :blushing: :sweatdrop:

dotcom
21/12/2010, 19h25
bah pas moi heu !!!
moi ça marche euuuu !!!

regardes tes ouvertures et fermetures de code moi aussi j'avais une erreur à cet endroit puis je ne l'ai plus eu en "cleanant" un peu les choses.

dotcom
21/12/2010, 19h30
on pourrait ajouter un var time_vagues en DU ?
histoire d'influer sur la vitesse des vagues si on a une anim avec un besoin de ralentit ça peut aider,
sinon pour les prévisualisations cela peut peut être être aussi utile !
je comprends rien à tout ça !
le : var G=9.80665
9,8 c'est quoi presque 10 mètres par seconde ?
je pleins ceux qui ont paramétré leur C4D en millimètres !

BikS
21/12/2010, 19h32
mais quel mec!!! :blink::blink:
chapeau bas pico!!!
je n'ai plus pieds grâce à toi! :D:D:D c'est beauuuu! :innocent:

picot
21/12/2010, 20h03
Ca fait plaisir de voir que vous faites plein de vagues :). Ca éclabousse dans tous les coins :mad2:
J'ai bien essayé de nettoyer le coffee mais il n'est pas impossible qu'il y est encore quelques scories. G c'est la constante pour la gravité, je ne pense pas qu'elle serve dans ce prog. Vous avez pu voir que j'ai ajouté une variable aléatoire r1 pour briser un peu la régularité des vagues (c'est une petite routine de Jean-Laurent à qui je suis d'ailleurs fortement redevable car moi et les math. :w00t:
Voici le lien pour le prog (c4d v11.5);
http://fc4d.deltazone.org/c4d/picot_perlin15_definitif.c4d
J'espère que certains d'entre vous, plus doués que moi en textures, l'amélioreront au point de vue visuelle (et même au point de vue mouvement).
J'espère également voir quelques résultats..:cool2:

Rudy
21/12/2010, 21h10
Salut Picot,

cela fait plaisir de te revoir :)

xander travaille sur un trois mat, alors peut-être va t-il utiliser ton travail pour modéliser la mer.

J'essaierais de faire des essais. Merci :thumbup1:

xander
21/12/2010, 21h38
Pour sur que je vais tester :)
Merci pour le partage,Picot :)

NiKo
22/12/2010, 10h46
Wow... Je regarde ça de plus près ce soir... Un très grand merci d'avoir ressucité ce topic!

lolofedo
22/12/2010, 11h02
Super Picot, merci beaucoup pour le partage, j'essaie une petite anim avec Vray pour voir ;)

geantvert
22/12/2010, 11h37
Un grand merci à toi pour le partage :thumbup:
Il y a un objet indéfini qui se ballade, du coup l'xpresso ne fonctionne pas. Ou alors j'ai mal compris? il faut glisser un objet dedans?

lolofedo
22/12/2010, 11h39
Faut activer l'Coffee GV

geantvert
22/12/2010, 11h54
Ok au temps pour moi effectivement ça fonctionne bien :thumbup1:
Merci lolo. Très bon travail ça marche nickel même si c'est un peu lourd (sur un octo)
Vais faire quelques tests :)

Aurety
22/12/2010, 12h17
génial de retrouver ce topic ! :scared:

genghiskhan
22/12/2010, 12h26
mais c'est clair. un grand bravo Picot pour ce taff et surtout pour partager ca :thumbup1:

amateur
22/12/2010, 12h34
Picot
superbe le retour ! un grand merci pour le travail titanesque .
merci pour le partage et ton talent :001_tt1:

picot
22/12/2010, 13h47
Je suis vraiment navré d'avoir tant tardé à vous offrir ce jouet, je voulais trop faire quelque chose d'abouti.:(
Je veux quand même vous fournir quelques pistes pour l'utitliser:
Le plan mer-origine ne demande qu'une chose; une segmentation impaire, sinon les dimensions importe peu et le rapport longueur/largeur indifférent. Il faut le rendre éditable sinon il n'est pas vu par le coffee.
Le plan mer doit évidemment être identique au plan mer-origine. En fait il devrait être créé par le programme, ce que je sais écrire, mais je n'ai pas trouver le code pour le rendre éditable....
Ne pas oublier d'activer le coffee. Ca a l'air évident mais quelque fois on le désacive pour bricoler plus à l'aise...
L'orientation des vagues se définit sur 2PI, soit 0 -> sens des X, PI/2 -> sens des Z, ... Il vaut mieux que toutes les vagues suivent en gros la même direction, mais bon, vous avez le droit de tout tenter. Le gros écueil c'est d'avoir un quadrillage trop régulier, c'est pour ça je pense qu'en général on voit surtout de plans pris presqu'à fleur d'eau.
Pour le profil des vagues, plus la proportion longueur/hauteur est forte et plus la crète des vagues est pointues mais passé un certain stade on va avoir une boucle: ce n'est pas trés réaliste. Toutefois on peut se servir de ça pour simuler de l'écume sur les crètes: il suffit de mettre la texture vague sur une face et une texture écume sur l'autre. Celle-ci ne se verra que lorsqu'il y aura bouclage et ça fera la farce vu de pas trop près.
Si vous avez des points restent obscurs n'hésitez pas. Si vous pensez à des améliorations je peux voir ça aussi ;)

bru
22/12/2010, 13h55
Je veux me joindre au concert de remerciements.

Je suis sûr que cela me sera utile! :thumbup1:

Teutch
22/12/2010, 14h12
[mode type blasé ON]
Je te hais ! ça fait des mois que je cherche à faire une mer super réaliste avec des textures et tout, et toi, tu arrives... pif ! paf ! pof ! tu nous ponds une tuerie... :cursing:
[mode type blasé OFF]
:P

Merci, c'est génial ton truc, je vais tester tout ça dès que j'aurai un peu de temps devant moi. :thumbup1:

Sir Gong
22/12/2010, 15h23
[...]et toi, tu arrives... pif ! paf ! pof ! tu nous ponds une tuerie...[...]Enfin, "pif, paf, pof" pas vraiment, ce sont des mois de boulot, derrière. :cool2: Le cadeau n'en est que plus appréciable !


Merci beaucoup pour le partage, Picot !

picot
22/12/2010, 16h10
Merci Gong de défendre toute une vie de labeur consacrée à la recherche de la formule de la vague qui tue :) C'est vrai que j'ai démarré cette recherche début 2008. Il y a eu de nombreux arrets mais quand aussi beaucoup de boulot. Heureusement que Jan-Laurent était trés bon pédagogue et trés disponible. Ces jeunes ne se rendent pas compte :crying:
Séquence nostalgie: j'ai retrouvé une des premières anim; à l'époque je j'utilisais l'objet formule et une texture que j'avais pompé je ne sais plus où :blushing:
Je trouve que tant le mouvement que la texture valent toujours le coup :thumbup1:
http://www.fc4d.deltazone.org/autres/picot_vague10.avi

MacGreggor
22/12/2010, 16h12
Merci Picot, je sens que je vais faire bon usage de ton cadeau. Encore une fois, merci.

keltoi
22/12/2010, 19h03
Quelle joie immense de replonger dans ce topic, et quel plongeon. Merci infiniment Picot, ton labeur est à la hauteur des résultats, MAGNIFIQUE:001_tt1:

lolofedo
22/12/2010, 19h28
http://www.youtube.com/watch?v=GI62tSGjRiA

Bon, j'ai perdu l'écume en route, et un problème de shader qui me rend un truc bizarre, comme si la géométrie était triangulée :cursing:

picot
22/12/2010, 20h35
Bravo Lolofedo :thumbup1: Pour un premier essai, c'est plutôt réussi. Pour moi le plus difficile est de trouver la bonne texture. Pour la forme des vagues c'est une petite question de réglage. Bon courage et merci d'avoir posté ton anim

Teutch
23/12/2010, 09h14
C'était une façon de parler pour le "pif ! paf ! pof !" dans le mode "type blasé" et jaloux.:blushing:

Je me doute bien qu'il y a un boulot de fou derrière.

Alors j'en profite encore pour te remercier.

picot
23/12/2010, 11h25
T'inquiètes pas Teutch, je ne l'avais pas pris au premier degré ;) A vrai dire, si j'ai passé (et passe encore) beaucoup de temps là-dessus, c'est pour trouver des solutions à des cas particuliers: mer qui vient s'échouer sur un rivage, vagues heurtant un obstacle (rocher, bateau,..), simulations d'embruns, écume, sillage d'un bateau,... sinon la routine coffee pour animer les vagues ne m'a pas pris trés longtemps.

xs_yann
23/12/2010, 11h48
Le plan mer doit évidemment être identique au plan mer-origine. En fait il devrait être créé par le programme, ce que je sais écrire, mais je n'ai pas trouver le code pour le rendre éditable....


Voici le code COFFEE pour créer un plan édité :

var plane = AllocObject(Oplane);
doc->InsertObject(plane, NULL, NULL);
var res = SendModelingCommand(MCOMMAND_MAKEEDITABLE, doc, plane, new(BaseContainer), MODIFY_ALL);
if (!res)
return FALSE;

N'hésite pas à me MP si tu as des soucis en COFFEE. ;)

picot
23/12/2010, 16h26
Merci Xs-Yann, c'est tout con ... et logique :blushing:. Je dois bien avouer que j'ai beaucoup de mal à m'y retrouver dans la doc du coffee.
On ne peut pas dire que ça soit d'une limpide clarté :scared:. Je vais quand même essayer de coedr le reste comme un grand sinon je te demanderai au secours. Allez,...à la mine !:001_unsure:

picot
05/01/2011, 20h08
Une petite avancée:
http://fc4d.deltazone.org/autres/picot_test_embruns02.wmv pour entretenir la flamme
Je me suis attardé sur les textures et effets d'embruns. Avec la compression de la vidéo ça ne ce voit pas trop pour les dits embruns. C'est au bout de 2 secondes à la crète de la vague au premier plan sur la gauche. Il y a encore beaucoup à faire pour un résultat valable. A plus pour de meilleurs rendus.

Rudy
06/01/2011, 13h58
Très beau ce petit embrun :001_tt1: manque plus que les mouettes:thumbup1:

NiKo
08/01/2011, 14h58
Enfin eu un peu de temps pour tripatouiller le bouzin...
Hop...
J'ai découvert au passage que ça ne marche pas avec les RenderFarm, les clients n'arrivent pas à charger le fichier. Certainement à cause du coffee qui est à calculer sur chaque frame.
Dans la version payante il faudra que tu rajoute l'option "Baking animé" du mesh Picot... ;-)

Sinon, le système marche vraiment bien. Super méga taff que tu a fourni là! Encore une grand gand merci pour le partage...

Attention, c'est court...

http://vimeo.com/18561140

xander
09/01/2011, 09h23
Bien le test Niko :)

Picot, c'est vraiment pas mal cet embruns! miam miam!

Tiens, je sais pas si tu connais le projet suivant!
Des gars sont en train de porter l'océan sim d'houdini sous blender
http://www.savetheoceansim.com/blog/

En tout cas, ton simulateur n'a rien à envier!

picot
10/01/2011, 07h11
Dis donc Niko c'est du grand opéra que tu nous sors là! :blink: Si je peux me permettre j'aurais préféré des vagues un peu plus anguleuses :whistling:
Remarque que tu arrives au même résultat que dans cette vidéo (en ce qui concerne la mer ;) )
http://vimeo.com/8574320
Pour obtenir des vagues plus pointues il faut augmenter leur hauteur et réduire le coef d'animation d'autant pour éviter des vagues trop hautes.
Merci Xander, tu me boostes pour poursuivre dans cette voie: à part les cas spéciaux comme les vagues se brisant sur la côte,..(vieille antienne) je crois que les raffinements sont à attendre du côté des textures. Chaque fois que je vois un film où il y a un plan mer, je le scrute pour voir comment m'y prendre pour le représenter...une véritable obsession :scared: pour

Killian
10/01/2011, 17h09
:scared: ah les brutes, ça c'est de la vidéo!

valkaari
12/01/2011, 16h00
j'ai commencé à travailler sur un plug aussi.

puis j'suis tombé sur ce truc, marrant.

http://great-eastern.codeworkers.de/mof_animation.html
(y a un fichier en bas)

picot
12/01/2011, 19h08
Merci pour le lien Valkaari. Je le connaissais mais l'avais oublié. Je dois toujours me pencher sur leur solution pour faire les vagues d'étrave el sillage. Tu pourrais nous en dire un peu plus sur ton plugin? Je suis toujours intéressé par les solutions qui peuvent être trouvées :P En ce moment je travaille sur un prog pour simuler l'agitation de l'eau lorsqu'un objet vient la perturber. J'ai réussi à décortiquer l'organigramme de l'auteur et son adaptation en c++. Il y avait quelques chausses trappes: une division par zéro par exemple...:scared: mais ce soir je pense que ça devrait tourner sans problèmes.. Je viens juste de lancer un test, on va bien voir :scared:

xander
12/01/2011, 19h12
Baaaave! shlip shlip :)

valkaari
12/01/2011, 20h39
ben au début je me suis lancé la dessus
http://software.intel.com/en-us/articles/real-time-deep-ocean-simulation-on-multi-threaded-architectures/
marrant pour faire mumuse et commencer à programmer un object.

J'ai regardé ce truc cet aprem basé sur entre autre sur FFT (ce que t'as fait si j'ai bien suivi)
http://www.gamasutra.com/view/feature/3036/deep_water_animation_and_rendering.php

avec des trucs du genre aussi pour optimiser le nombre de point.
http://research.microsoft.com/en-us/um/people/hoppe/proj/gpugcm/

Je galère beaucoup mais le but c'est de mieux comprendre les équations, les fonctions et la construction de géométries pour sortir deux ou trois idées.

picot
13/01/2011, 20h37
Ce sont des références que je connais, Valkaari, mais je n'ai pas creusé la première. Je n'ai pas utilisé les FFT, ne sachant pas les programmer :blushing: Je me sers de la bête formule de calcul des vagues.
J'ai lancé un rendu de mes vagues concentriques: ça marche pas mal.. Ca s'agrandit gentiemnet se reflète bien contre les bords, mais je n'aime pas l'aspect carré que ça prend peu de temps aprés l'impact initial. C'est à améliorer .
http://fc4d.deltazone.org/autres/picot_Vagues_concentriques.wmv

Killian
15/01/2011, 19h29
Pour moi la mer c'est un grand espace, un horizon lointain, alors désolé pour les bidouillages. Bien sur à petit bateau, petites vagues.

http://somlicorne.free.fr/wipdivers/mer_picot_modif.jpg
http://somlicorne.free.fr/wipdivers/mer_picot_modif.mov
http://somlicorne.free.fr/wipdivers/mer_picot_modif.c4d

Le fichier .MOV est en 720p.

picot
16/01/2011, 07h50
Pas mal Killian le bateau dans les mers arctiques, l'atmosphère est bien rendu. Pour la vidéo on est surpris par les ailerons de requin(,:001_unsure:) qui apparaissent brusquement à l'horizon. Ca vient de quoi? Le fichier .c4d que tu as joint ne semble pas correspondre à ce rendu. D'ailleurs il plante car il n'y a pas la mer d'origine. :w00t: En tout cas merci de partager tes expériences.

zeclubbeur
16/01/2011, 15h45
http://vimeo.com/8574320
Moi, je dis, c'est la musique qui fait tout... Le reste, c'est très moyen...
Ok, je sors :D

Killian
16/01/2011, 16h25
Oups! toutes mes excuses, je ne pensais pas qu'un objet avec les deux points rouges pouvait être encore utile.
J'ai utilisé une grille de déformation pour aplatir la mer déchainée, mais les embruns lui échappent et donnent les pics.
Baisser les DU des vagues me semble donner un résultat différend. Il faudrait pouvoir désactiver les embruns.
J'ai aussi utilisé la grille pour casser l'angle de la mer a l'horizon, ce qui évite la DOF.
J'ai essayé d'utiliser le quasi plug sur une grande grille et a l'échelle de M. Zygote qui est celle que j'utilise systématiquement.
Comme j'ai pas laissé la mer origine je suppose que cela explique mon échec.
Le rendu avec le déplacement de l'écume activé est nettement meilleur. Par contre une vue aérienne montre la "répétitivité".
Je crois que c'est enfin la mer que cherchais a faire depuis des années.
Je vais reprendre ma scène arctique et j'espère bien la finir cette fois. Je suis étonné par la vitesse de calcul de "la mer de Picot" ^^
Suis a priori intéressé par un plugin payant facile a mettre en oeuvre et qui permet les vues aériennes.

picot
16/01/2011, 18h40
Bon je comprend mieux Killian, tu te fais tes petites bricoles :thumbup1: Pour les vagues la formule donne des sommets arrondis si la hauteur est minime par la rapport à la longueur. Plus le rapport h/L augmente plus la crète de la vague devient pointue, jusqu'à faire une boucle! S'il y a plusieurs vagues les hauteurs s'additionnent à certains moments et peuvent provoquer un bouclage alors que chaque vague prise individuellemnt ne boucle pas.
En ce qui concerne la vue aérienne c'est le gros souci :scared: Il est trés difficile d'éviter la répétition. J'ai tenté un certain nombre de trucs mais rien de bien concluant. La grille de déformation pourrait peut-être aider! C'est à voir.
Une petite astuce pour donner une certaine courbure aux lignes de crètes, tu ajoutes à z une valeur phi. Voici le bout de code:
for (m=0;m<Lg;m++)
{for (n=0;n<lg;n++)
{ tz=0.00;
ty=0.00;
r1=0.0;
phi=(1-(0.5*n))*(1-(0.5*n))/100;
for (l=0;l<nb_vag;l++)
{
// prise en compte de l'angle de la vague
X=Calcul_X(mer[k].x,mer[k].z,wav[l][5]);
// calcul du deplacement (z et y) du point mer
tz=tz+(wav[l][1]*cos((wav[l][3]*X)-(wav[l][4]*sec)));
ty=ty-(wav[l][1]*sin((wav[l][3]*X)-(wav[l][4]*sec)));
}
//affectation nouvelles coordonnées (point mer)
pmer[k].y=ty*coef_vagues;
pmer[k].z=mer[k].z+tz+phi;
k++;
}
}
op->SetPoints(pmer);
Tu peux bien sûr tripoter la formule de calcul de phi.
Bon amusement.
PS Je viens de voir que tu baladais toujours ta borne RN 7. Ca ne nous rajeunit pas

Killian
16/01/2011, 19h39
Suis un handicapé de la programmation, c'est a peine si je comprends quelques bases de HTML :blushing:
Par contre la dernière fois que je suis sorti en mer il y avait un petit clapot étonnamment brutal qui donnait de l'écume.
De petites vagues peuvent être très anguleuses. Est ce un paramètre qui peut être ajouté aux DU ?
Est ce que le NoiseDeformer de Michael Welters pourrait casser la "répétitivité" ? J'ai essayé sans trouver les bons paramètres.

dotcom
16/01/2011, 20h26
Les vagues ne pourraient-elles pas se calculer aussi par rapport aux UV ou aux normales ?
j'aimerai bien voir un truc qui puisse fonctionner avec n'importe quelle géométrie et pas seulement un plan,
je n'y connais rien dans la prog, ce serait compliqué à faire ?

Jean-Laurent
16/01/2011, 20h43
ben au début je me suis lancé la dessus
http://software.intel.com/en-us/articles/real-time-deep-ocean-simulation-on-multi-threaded-architectures/
marrant pour faire mumuse et commencer à programmer un object.

J'ai regardé ce truc cet aprem basé sur entre autre sur FFT (ce que t'as fait si j'ai bien suivi)
http://www.gamasutra.com/view/feature/3036/deep_water_animation_and_rendering.php



Le premier lien, c'est également celui que j'avais décortiqué pour tenter d'expliquer un peu plus en profondeur les équations mathématiques qui se cachent derrière tout ça. Vers le bas du fil, je fais un peu de pub si tu l'as raté :blush::
http://frenchcinema4d.fr/showthread.php?69445-Maths-physique-et-C4D./page2


Le deuxième lien, c'est effectivement un document que picot a eu entre les mains. Pas si évident pour le profane, il faut l'avouer. Le principe de picot est assez proche.
La FFT est un peu plus lourde à mettre en place, version en quelque sorte discrète de la transformée de Fourier, qui elle est continue.


Je reste toujours autant admiratif devant la pugnacité de picot. Superbe travail de fond. De grands fonds même. Il tient bien la barre le capitaine. :cool2:

valkaari
17/01/2011, 00h33
hoo si j'avais déjà bien regardé ton lien jean-laurent, je l'ai pas raté ^^

Pour le fft, je comptes pas l'implémenter moi même, vu la complexité du truc.

Par contre y a des exemples comme ici :
http://developer.apple.com/library/mac/#samplecode/OpenCL_FFT/Introduction/Intro.html%23//apple_ref/doc/uid/DTS40009395-Intro-DontLinkElementID_2

Pour du FFT en OpenCL (calcul sur GPU).

J'ai pas encore trop regardé le truc (juste lancé le test).

bref pas facile de faire des vagues ^^


sinon,
http://ocw.mit.edu/courses/
une vraie mine d'or pour apprendre pleins de trucs, y en a pour tous les niveaux.
les "physics" sont type top marrant et les premiers cours relativement simple à comprendre.
les math aussi, les premiers cours sont pas si compliqués à suivre.

bon après ça devient vite barbare quand même.

picot
17/01/2011, 11h31
Je me suis penché sur le problème de la forme des vagues, plus exactement leur profil. Avec un paramètre supplémentaire trouvé dans http://www.gamasutra.com/view/featur..._rendering.php on peut durcir la crète des vagues.
Quelques exemples
http://fc4d.deltazone.org/images/picot_spline01.jpg
http://fc4d.deltazone.org/images/picot_spline02.jpg
http://fc4d.deltazone.org/images/picot_spline03.jpg
http://fc4d.deltazone.org/images/picot_spline04.jpg
http://fc4d.deltazone.org/images/picot_spline05.jpg
Je vous joins le prog qui permet de tester. Attention il ne joue que sur une spline pour montrer la variation des profils suivants les données entrées par DU. Bon amusement.
http://fc4d.deltazone.org/c4d/picot_vague_spline01.c4d
Dés que possible je poste le prog de vagues mis à jour.
Dotcom tu peux animer n'importe quoi du moment qu tu peux accéder à ses points. La preuve avec le petit prog ci-dessus qui anime une spline. J'ai d'ailleurs un prog qui déforme une peau Nurbs en jouant sur ses splines. SI tu veux tu me détailles ton idée et on voit ce qu'on peut faire.
Killian je t'ai compris et comme dit ci-dessus je met bientôt à disposition le prog de vagues amélioré.
Rectif suite à message de Dotcom (cf message suivant) Images corrigées. Il avait raison le bougre...

dotcom
17/01/2011, 12h26
Hello Picot !

Quand tu posteras tes screenshots d'explications dans ton futur plug,
n'écris pas en rouge, c'est illisible sur cette couleur de fond (voir les imgs de ton précédent post).

Sinon pour te répondre sur ce à quoi je pense > je ne pense à rien là dessus parce que j'y connais rien du tout.
c'est vous les membres du FC4D's media institut technology !
mais si on pouvait contrôler une zone d'intensité d'un paramètre comme on peindrait dans bodypaint, ce serait topissime,
ou bien via des textures noir et blanc ce qui ouvre la porte aux bitmaps aussi.
Ou bien à la manière des falloff de mograph...

Je n'avais pas réussis à adapter ton add the sea du pauvre (faudrait lui donner un nom) sur une géométrie,
mais je vois que ça commence à marcher pour une spline, ça promet déjà bien des choses au niveau peau nurbs.

Regardes aussi du côté de presets pour ton futur produit, pour rendre son accès plus rapide,
genre mer calme / agitée / tempête...

C'est formidable ce que vous faites, keep on !
++

Killian
17/01/2011, 15h58
Mer nurb's a partir de splines wave.
http://somlicorne.free.fr/wipdivers/picot_vague_spline01_modif.c4d
Une spline a simplement été déplacée, deux autres on eu leurs DU modifiés.
Comment génère tu la spline wave Picot ? Aurait on la chance que ce soit automatique ?
Si c'est automatique aurait on la chance de pouvoir les faire très longues ?
Et d'y ajouter une composante plus ou moins aléatoire ?
En matière de splines dans une peau nurb's la contrainte impérative c'est de n'avoir qu'un nombre de points tous pair ou tous impair.
Avec un nombre de points bas on lisse, avec un nombre élevé on détaille.

LES SPLINES AU POUVOIR ! :001_tt1: .... :blush:

xander
17/01/2011, 16h03
Pas mal ton fichier, Picot! Faudra que je test avec une peau nurbs, tiens. :)

Killian
17/01/2011, 16h04
Grillé Xander !!! :w00t: :sweatdrop::sweatdrop::sweatdrop::sweatdrop::innoc ent:

picot
17/01/2011, 16h35
T'apprend vite Killian! Comme tu as tout compris pour les splines je ne vois pas ce que je pourrais ajouter. Pour donner une forme aux lignes de front des vagues on peut les déplacer les splines les unes par rapport aux autres dans le sens des x. Ca peut se faire en temps réel. J'ai été surpris de voir qu'en dépit des nombreux coffee s'exécutant il n'y a aucun ralentissement. Ca ne doit pas poser de problèmes pour créer les splines dans le prog. Il reste un problème c'est de pouvoir faire des vagues venant plus ou moins en biais quoique en décalant bien les mouvements des diffèrentes splines on doit pouvoir le simuler :001_unsure: A creuser (et dans la mer c'est pas facile! :scared: )
A +
PS
Merci de partager tes expériences, on devrait bien arriver à sortir quelque chose de valable, mais pour un plugin ne compter pas sur moi., il y a beaucoup trop de code à taper. :confused1: