PDA

Voir la version complète : Le bruit et la physique dans les jv !!


casafa
05/10/2005, 14h35
Bonjour,

Imaginons que l'ont tappe notre épée contre une mur dans un jv, ça va faire un bruit, mais comment se bruit est-il produit ?

Je ne voi que deux façons pour produire un bruit:
1) Soit le bruit est pré-enregistrer en studio et pour l'utiliser les développeurs fond un truc du genre:
if(....){ //Si l'épée à touché le mur
play("mur_epee.mp3");
}

2)
a) On définit les propriétés de l'épée (acier dur, vitesse de la frappe...) et on définit les propriétés du mur (briques, etc...).
b) Ensuite le moteur physique fait un calcul de physique pour savoir quel bruit ça va faire quand une épée touche un mur.

Je pense que la première solution se trouve dans beaucoup de jeux video mais y a t-il la deuxième solution dans certain jv moderne ou alors c'est moi qui ait inventer un nouveau concept pour créer un bruit dans un jv ?

Merci d'avance...

deathangel
05/10/2005, 14h39
à mon avis tu as certainement imaginé un nouveau concept :D pour le jeu vidéo en tout cas. Peut-être que ca existe en laboratoire, mais dans un jeu je pense pas, il y aurait trop à gérer :s

Flamaros
05/10/2005, 15h42
Oui tout les bruitages sont enregistres en studio, mais les sons sont localiser dans l'envirenement 3D et du coup ils sont modifier en fonction de leur position par rapport a celle de ta camera, et selon les milieux qu'ils traversent pour te parvenir (eau, hall,...).

Simuler les sons directement grace aux caracteristiques des materieux doit etre impossible en temps reel, car il y a trop de parametre a prendre en compte (forme des materieux peut etre meme au niveau moleculaire car les sons ne sont que des ondes)

Cellimo
05/10/2005, 22h32
t'imagines ??? faire du précalculé en direct !!!

le concept est bon, mais je pense pas que le joueur en soit a juger le jeu sur ce genre de détails...

pour la condition, perso au lieu que l'épée frappe le mur, j'aurai plutot dit que si l'épée est utilisée (donc il y a frappe) et que le bonzomme est pres d'un mur...

mais j'avou le concept est pas mal
il pourrait etre intéressant pour l'audio tridimensionnel

Frosth
06/10/2005, 17h24
Le systeme pourait etre applicable avec des parametres reduits et en faisant du pre calculer.

Du genre comme parametres : Materiau objet a, materiau objet b, solidite objet a, solidite objet b, vitesse de frappe (en fonction des caracs du perso)

Precalcule : la solidite de l'arme et la vitesse de frappe ne change pas a toute les secondes, donc tu calcule le son une premiere fois lorsque l'arme est equipee. En creant plusieurs effets differents via une variable random puis en rejoutant un simple alteration du son.

En concret, le son est en frequence et amplitude, mais je vais donner des exemples de calculs probablement possibles avec une unite symbolique. Un specialiste du son, ou quelqu'un ayant deja jouer avec un synthetiseur poura plus nous eclairer (nous sonoriser ? eheh)

precalculees arme= (materiau de l'arme / solidite) * vitesse
precalcules cible = (materiaux de la cible / solidite)

son final = (precalcules arme + precalcules mur) * 0,random
Le random servant a ce que le coup de l'epee ne fasse pas toujours le meme bruit.

Les precalcules se refaisant chaque fois que la solidite est modifiee. Puis on rajoute apres les modification due au calcul du son 3d et on peut avoir une gestion du son calculable. On se retrouve donc a chaque fois avec un son realiste et different. Les calcules se faisant sur uniquement 2 variables chiffrees, et limite a chaque coups cela ne devrait pas etre trop gourmant en cpu.

Enfin, ce n'est qu'une idee de base d'un non connaisseur en son, mais si quelqu'un d'experimente pouvait le travailler, ou dire si c'est mauvais, on en sortirais tous tres instruit. :D

casafa
06/10/2005, 21h10
Merci de vos réponses....je sens que dans 1 an ou 2, je vais esseyer de réaliser mon idée, lol

HanLee
06/10/2005, 21h16
Merci de vos réponses....je sens que dans 1 an ou 2, je vais esseyer de réaliser mon idée, lol

Faut prendre aussi en compte la manière dont l'objet tape le matériau, ça fait pas le même bruit en fonction de l'angle aussi ;) à cause de la géométrie.

Et puis les trucs qui claquent... ex : gifle...

Frosth
06/10/2005, 21h18
Et tan d'autres parametres tel que la resonance, etc. Mais la on va rentrer dans des trucs pas possible :p

HanLee
06/10/2005, 21h25
Et tan d'autres parametres tel que la resonance, etc. Mais la on va rentrer dans des trucs pas possible :p

Oui c'est clair :D

Cellimo
06/10/2005, 22h55
et a la base, le fait que le son est produit,
c'est que c'est la lame en tapant la pierre qui emet une vibration,
qui se répercute aussi sur la lame, qui elle meme emet un son,
mais cette lame vibre pas autant si elle est tenu fermement ou tenu par une main en gélatine,
donc faudra aussi demander au joueur avec quelle force il tiens l'épée......

lol

CodyX
06/10/2005, 23h53
Et alors il y a bien des retours de force ...pourquoi pas des
inductions de force ? :00000023:

grob1212
07/10/2005, 15h43
Pour tous ceux que le son et la musique intéresse au niveau scientifique, je conseille d'aller jeter un coup d'oeil sur le site de l'IRCAM (http://mediatheque.ircam.fr/).

En tout cas, l'idée est intéressante mais sans vouloir être pessimiste, je ne pense pas qu'elle le soit économiquement parlant. Les calculs envisagés me semblent trop complexes en regard du gain réel escompté : l'oreille n'est pas un organe sensoriel très affuté et les approximations que l'on fait suffisent dans la plupart des cas. Qui plus est, l'attention n'est pas très porté sur ce genre de détail lorsque l'on est immergé dans l'action du jeu.

Enfin... Ceci n'est qu'un avis et peut-être que je me trompe.

Frosth
07/10/2005, 16h17
Je pense que ce systeme serait inutile dans un rts ou meme un rpg, mais un jeu du type Soulcalibur, ou de duel avec des armes, chaque parade aurait son propre son, chaque coup, chaque mouvement, avec des effets visuel sympas, l'experience pourait devenir jouisive... voir plus.

En bref certains types de jeu seraient avantages, d'autre serait genes.


Mais pour les calcul ils ne sont pas si faramineux que cela. Si l'on considere le son dans sa forme la plus basique, ce n'est que 2 nombres qui changent frequaments, les machines actuelles peuvent facilement effectuer ces calculs en temps reel, et je suis sur que les calculs doivent etre optimisables.

PS : Merci pour le site ;)

grob1212
07/10/2005, 17h03
Si l'on considere le son dans sa forme la plus basique, ce n'est que 2 nombres qui changent frequements


Que veux-tu dire par deux nombres ?

blu3dr4g0n
07/10/2005, 17h17
Que veux-tu dire par deux nombres ?

fréquence en hertz et amplitude (la base d'un signal audio)
met un haut-parleur sur une prise électrique et il jouera du 50hz sinusoidal (même son mais avec une puissance d'emission sinusoidale partant de - je sais pas combien de volt à + je sais pas combien de volt ) :) cependant ton HP cramera car il est pas prévue pour (U=R.I, si U=220V, et que R = 10ohms, alors I = 22A soit beaucoup trop pour un HP normal lol :p )

Bref, un signal est un ensemble de sinusoide et d'harmonique. avec une sinusoide et une 10zaine d'harmonique, tu fais un signal carré :D

Physique - elec - traitement du signal (mots clefs)

Mais je peux me tromper ;)

Cellimo
07/10/2005, 18h09
merci professeur ! :D

plus sérieusement je suis aussi de l'avis que ce mécanisme ne serait interessant que dans certains jeux.....

ca reste néanmoins une idée originale

Frosth
07/10/2005, 23h13
Le dragon l33t a raison ! Amen :D

Enfin, a voir a la pratique, car comme toutes choses, ya forcement des problemes cacher quelques parts une fois qu'on cherche a trop trifouiller.

Lightness1024!
08/10/2005, 01h53
arf :00000023:
bon comme très peu ont l'air de se rendre compte des implications du probleme, déja je conseille de lire cet article pour mieux percevoir ce qu'est un son:

http://www.games-creators.org/wiki/Num%C3%A9riser

de plus un son ce n'est pas 2 nombres.
c'est un seul nombre à un moment donné.
mais ca n'est pas suffisant puisqu'il faut beaucoup de moments pour faire un son audible, et ces nombres ne sont à prioris pas facile à déterminer si on veut que ce son soit intelligible et reconnaissable.

l'idée de calculer les sons en temps réel de manière procédurale est certainement déja passée par l'esprit des développeurs ne vous leurrez pas.
L'expérience m'a apprise que toutes les idées que l'on pouvait avoir un jour, d'autres les avaient déja eues, et si on n'en voyait pas d'applications c'est que l'idée est inapplicable.

Autrement dit c'est quasiment mathématiquement irréalisable même avec nos pauvres CPU que de calculer les sons émis par un envirronnement temps réel à l'heure actuelle.
Rien que la place mémoire que ca demanderait est digne des serveurs de cache de google, et la puissance du super calculateur de météo france.

pour vous donner une petite idée, il faudrait prendre en compte la propagation des ondes dans différents matériaux à partir de plusieurs points de départ en applicant les lois d'interaction electrostatiques entre les molécules.
ce qui se traduit mathématiquement par un systeme d'equations différentielles, donc une immense matrice que l'on sait résoudre par méthode de Crout ou autre factorisation LU. (sans parler des problemes d'instabilité numérique de l'IEEE-754)
mais le probleme est qu'apres les meilleures optimisation que l'on peut espérer, la complexité est de l'odre de O(n²) donc bonjour les milliards de milliards de cycles par image...

On peut imaginer un compromis réalisme-temps_processeur en pré-enregistrant les sons, et par décomposition de fourier jouer sur l'amplitude des harmoniques de maniere aléatoire par exemple.
et sur l'amplitude générale de lecture du son en fonction de la violence d'un impact. Ca ne serait pas violent car le calcul du spectre peut etre fait à la compilation des maps, ou au chargement du niveau, et la recomposition avec une FFT inversée de complexité n*log(n).
mais une génération procédurale complete temps réel tient de l'utopie en barre snicker's. :00000010:

ps: ne croyez pas trop que votre FX-57 est puissant, meme si par rapport aux autres il peut l'etre de quelques pourcents, ont peut pas faire grand chose avec au final... Un processeur puissant serait un processeur capable de faire tourner des algorithmes à classe de complexité non déterministe polynomiale (problemes NP-complet) en un temps polynomial.
autrement dit, ce que nous permettent les ordinateurs quantiques :)
mais selon wikipedia seuls des modeles a 5 bits ont pu etre réalisés jusqu'ici..

HanLee
08/10/2005, 15h26
...

Tu es très cultivé :D

grob1212
08/10/2005, 20h10
Bref, un signal est un ensemble de sinusoide et d'harmonique. avec une sinusoide et une 10zaine d'harmonique, tu fais un signal carré


En fait, je posais la question non pas pour savoir ce qu'est le son (j'ai fait des études en automatique et traitement de signal) , mais plutôt pour savoir ce que notre ami Frosth entendait par là... Parce qu'évidemment le son, c'est une onde avec toutes les caractéristiques que tu as si justement cité. Mais dans le cadre de ce topic, on s'intéresse plutôt à la manière d'obtenir le son et non pas à l'onde elle-même. C'est dans ce sens que je rejoins Lightness1024! pour témoigner de la difficulté de cette problématique qui fait intervenir bon nombre de domaines...

Message perso pour blu3dr4g0n : tu peux mettre ton HP en série avec ta machine à laver pour réduire le courant ! :D

Lightness1024!
08/10/2005, 20h57
Tu es très cultivé :D

lol :D j'aime bien faire des étalages de science, ca permet de me mettre au point sur ce que je sais, et de faire peur à ceux qui se rendent pas compte :)
^^

(kel boulz je fais kan meme :00000032: )

deathangel
08/10/2005, 21h31
lol :D j'aime bien faire des étalages de science

comme on dit chez nous, "la culture c'est comme la confiture, moins on en a plus on étale" ;)

non c'est pour déconner, t'as l'air calé sur le sujet en effet.
J'ai aussi fait traitement du signal en cours, et il est possible de reproduire un son par addition de différentes sinusoides.
Ainsi si on peut calculer la sinusoide de chaque élément, épée, mur...et les "additionnant" il serait peut-être possible d'avoir qqch de réaliste

Lightness1024!
08/10/2005, 21h47
pierre deproges si je ne m'abuse..

a propos de la somme des sinusoides, oui, c'est ce qu'on appelle les harmoniques. comme le j'ai dit, c'est excesivement simple de recomposer un son quand on les as. (n*log(n) avec une fft)
Mais avant de les avoir.....

grob1212
09/10/2005, 14h12
Ainsi si on peut calculer la sinusoide de chaque élément, épée, mur...

S'il n'y avait qu'une sinusoïde par élément, la synthèse sonore serait un sujet cloturé depuis le 16ème siècle...

deathangel
09/10/2005, 14h32
quand je dis la sinusoide, ca veut dire que chaque élément vibre à une fréquence précise (lame, poignée, le pan de mur) ce qui forme une sinusoide (à moins que je me plante déjà là dessus :p). Si tu tapes une épée sur un mur, celle ci résonne avec une note unique un peu comme un diapason

HanLee
09/10/2005, 15h40
Ya pas que des sinusoides comme formes de signaux...
Sinusoides c'est bien particulier, c'est quand ça ressemble au sinus ! à l'amplitude près.

Lightness1024!
09/10/2005, 16h56
quand je dis la sinusoide, ca veut dire que chaque élément vibre à une fréquence précise (lame, poignée, le pan de mur) ce qui forme une sinusoide (à moins que je me plante déjà là dessus :p). Si tu tapes une épée sur un mur, celle ci résonne avec une note unique un peu comme un diapason

eh bien justement pas du tout.
le son est l'image exacte de la vibration du matériaux.
(puisque son existence en est la cause directe)

et tous les matériaux ne résonnent pas sur une seule fréquence, heureusement d'ailleurs ta déja entendu une sinusoide ? c'est pas super beau comme son c'est clair et abrutissant, ca peut etre joli comme dans le mix du dj "grady zero - plutonium arts" par exemple mais comme l'a dit grob1212 si c'etait le cas on aurait tous la meme voix a la frequence pret et on serait incapable de prononcer "s" "ch" et d'autres..

en fait l'épée va résonner sur une frequence principale qu'on appelle la fondamentale mais dans les harmoniques il y aura beaucoup beaucoup de "répliques" ce qui forme un spectre tres particulier.
(le spectre est l'enveloppe de l'amplitude des harmoniques (coefficients de la série géométrique de fourier) ou la fonction F[S] : "transformée de fourier")
et avant de trouver ce spectre il faut faire les calculs lourds que j'ai mentionné plus haut basée sur les interactions electrostatiques dans les matériaux. ce qui demandrait la puissance de calcul de 10 000 cray à 1.0Ghz pour faire du temps réel.

grob1212
10/10/2005, 12h58
il faut faire les calculs lourds que j'ai mentionné plus haut basée sur les interactions electrostatiques dans les matériaux. ce qui demandrait la puissance de calcul de 10 000 cray à 1.0Ghz pour faire du temps réel.

Donc aux heureux possesseurs de processeurs quantiques... ... dans quelques dizaines d'années :D

Frosth
11/10/2005, 17h21
Et bien merci :D


Je me coucherai en ayant appris quelque chose aujourd'hui. Merci pour tout ces details que je ne connaissais pas.

bigfoot
11/10/2005, 18h50
Euh je ne dirai pas que le son c'est une fréquence et une amplitude:

2 nombre certes, en stéréo, et 6 pour le 5.1...
En fait y'a que l'amplitude qui compte.

Je veux dire un Haut parleur ne réagit qu'a une variable qui est le courant. Et il (le HP) bouge plus ou moins en fonction de l'intensité de celui ci.

De plus, il est difficile de parler de fréquence pour un signal non périodique.

Je suis d'accord qu'un LA3 c'est une fréquence 440Hz et une amplitude, mais en regardant de cette façon, c'est aussi une fonction sinus avec des harmoniques dépendant de l'instrument.

A la base, on peut tout d'écrire avec une seule variable: l'amplitude. D'ailleurs, quand on échantillonne un son, c'est l'amplitude qu'on mesure, pas la fréquence ni rien d'autre d'ailleurs.

Sinon, pour en revenir au sujet, je ne juge pas un jeu sur le bruit que fait l'épée qd elle touche quelque chose. J'aime bien avoir plusieurs sons différent pour éviter la lassitude, mais c'est surtout pour les voix.

Frosth
11/10/2005, 20h37
En effet ce ne serait qu'un gadget, nous sommes bien d'accord.

Mais un film de kung fu serait il aussi charmant sans les bruits des coups ?
Cela peut donner une atmosphere si cet atout son n'est pas jouer betement comme un atout graphisme. Si le jeu est bon, et qu'en plus il a de bon graphismes / son, la on commence a voir une immersion.

grob1212
12/10/2005, 08h49
En fait y'a que l'amplitude qui compte.

Ah bon ??? Comment réalise-t-on une réverb alors ?


De plus, il est difficile de parler de fréquence pour un signal non périodique.

Et que dit Joseph Fourier à ce niveau (différence entre la transformée et la décomposition en série)




A la base, on peut tout d'écrire avec une seule variable: l'amplitude. D'ailleurs, quand on échantillonne un son, c'est l'amplitude qu'on mesure, pas la fréquence ni rien d'autre d'ailleurs.

Oublierais-tu qu'il est n'est en rien obligatoire d'utiliser une période d'échantillonnage variable (dans ce cas, l'amplitude n'est plus suffisante pour décrire le signal).

De plus, même si la fréquence ne joue pas un rôle explicite dans l'échantillonnage, il faut tout de même rappeler que l'échantillonnage est directement lié aux fréquences contenues dans le signal, ie sa bande passante (voir théorème de Shannon). L'on ne peux donc échantillonner correctement sans cette notion.

bigfoot
12/10/2005, 13h18
On est d'accord que quand je parle d'amplitude il ne s'agit pas du Ak devant:
Ak exp(i.wk.t) ?

Quand je parle d'amplitude, je pense à la valeur de la tension/ pression/ courant, image du son. En la connaissant a tout instant, on peut reproduire le son.
Bon évidemment, il y a une fréquence d'échantillonnage qui doit être supérieure a deux fois la fréquence maximal du signal à échantillonner. Mais dans ce que j'ai dit précédemment, je n'ai pas du tout parler d'échantillonnage.
J'ai simplement voulu dire que le son n'est une variation que d'une variable. Quand j'enregistre ma voix, je stocke simplement des valeurs images d'une tension.
Ensuite je lis les valeurs a ma vitesse d'échantillonnage.

Ce qui m'a gèné dans ce que disait bluedragon: le son c'est une amplitude et une fréquence qui varient très vite.

Non, seule une variable varie vite: et à la base c'est la pression.

Mais je ne veux pas non plus lancer un dialogue de sourd simplement parce que nos points de vu diffèrent.


J'ai pas compris ce que tu veux dire là:

Oublierais-tu qu'il est n'est en rien obligatoire d'utiliser une période d'échantillonnage variable (dans ce cas, l'amplitude n'est plus suffisante pour décrire le signal).

grob1212
12/10/2005, 14h02
Reprenons :) :
Sans parler d'échantillonnage, le son est une amplitude qui est fonction du temps, ce qui indique de manière formelle une infinité de valeurs.

Cette représentation n'est pas aisée, surtout lorsqu'il s'agit d'étudier la nature d'un signal (d'autant plus lorsqu'il est bruité). Donc on utilise la transformée de Fourier pour les signaux à durée limitée et la décomposition en série de Fourier lorsque le signal est périodique. Les représentations temps et fréquences sont duales, elles représentent la même chose dans deux espaces différents.
En conséquence le fait de parler d'amplitudes ou de fréquences qui varient ne me choquent pas plus (personnellement biensur).

Par contre il est vrai que blu3dr4g0n est un peu brouillon dans ses explications.

Lightness1024!
12/10/2005, 17h03
d'apres ce que j'en sais je ne voit pas d'erreurs dans ce que l'un ou l'autre dit seulement grobi tu es plus mathématicien et bigfoot tu es plus physicien :D

TERMINABEN
14/10/2005, 11h51
tres honnetement je pense que la généreation d'un son à partir de données physiques est faisaible, et les temps de calcul de devraient pas etre trop gourmants pour un processeur moderne, il y a quelques années concevoir un moteur physique était du domaine de l'impossible, nous avons bien Havok aujourd'hui. Actuellement, les sons préenregistrés en studio sont modulés pendant le jeux (echo, stéréo, etc ...), autrement dit, chaque échantillon du son est modifé pendant une partie et les jeux tournent tres bien, lors d'une impacte il faut juste créer la période de la courbe, la répéter et la moduler, c'est largement faisable, mais comme pour Havok, il faudra de bons ingénieurs pour faire ca !

grob1212
14/10/2005, 16h16
tres honnetement je pense que la généreation d'un son à partir de données physiques est faisaible, et les temps de calcul de devraient pas etre trop gourmants pour un processeur moderne

Tout ca, c'est une question de modèle. Plus on veut un son réaliste, plus le modèle sera complexe et les temps de calcul s'allongent en conséquence.

On a le même problème avec le rendu réaliste : on dispose de modèles plus ou moins approximatifs qui caractérisent la lumière et sa propagation dans la scène. Cependant les modèles les plus fidèles nécessitent d'utiliser les tirages de Monte Carlo parce qu'il est impossible d'en obtenir une solution analytique valable à l'implémentation. Par conséquent cette solution n'est encore que très peu envisagée. De plus les solutions alternatives, bien que moins réalistes, abondent et il faut avouer que les graphistes rivalisent de créativité pour nous faire oublier le photon mapping...

Pour le son, la question est de savoir si la modélisation physique (son+matériaux+environnement) avec toutes les contraintes matérielles sous-jacentes en vaut vraiment la peine.

Lightness1024!
15/10/2005, 00h19
je plussoie cette terminaison de grob1212

par contre TERMINABEN désolé mais si je comprend ce que tu dis, je suis obligé d'être en désaccord.
Parce que appliquer un effet sur un son, c'est facile.
pourquoi ? parce qu'un DSP optimisé de presque un giga MIPS (plusieurs dixaines meme pour le Xi-Fi) sait appliquer des filtres causaux facilement sur des sample de 48kHz.
donc c'est de la gnognote, du traitement O(n) quoi.

Dans ce cas effectivement trouver des filtres causaux pour modifier le son OK, le Xi-Fi ou meme le vieux EMU-10K1 peuvent le faire super facilement avec 0% de temps CPU central en charge supplémentaire, half life le faisait déja avec EAX alors...

par contre CREER l'allure du son avec aucun enregistrement de départ juste avec les informations sur les chocs et les matériaux, et les points matériels de retenue, les contraintes, les ondes, la propagation, les forces et compagnies ca demande des calculs d'un ordre (ou meme plusieurs) de complexité algorithmique supérieurs aux problemes de physique dynamique ou autre trucs qui peuvent se faire actuellement en temps réel.
on parle pas d'un nombre d'opération trop grand ici, on parle d'un ORDRE trop grand alors c'est meme pas la peine d'y penser.

sauf bien sur si on trouve un modele tres tres approximatif mais pas pour autant trop horrible qui pourrait le faire avec une complexité polynomiale quadratique au pire disons..
:/

TERMINABEN
29/10/2005, 19h03
On peut imaginer que dans un futur proche la tache de générer un son en fonction de parametres précis soit pris en charge par la carte son elle meme, du coup le CPU n'en souffrirait pas.

HanLee
29/10/2005, 22h02
Oui mais de toute façon le problème reviendrait au même.

Parce que complexité polynomiale comme Lightness disait, et donc pour pour n'importe quel processeur (CPU ou quoi que ce soit) yaura un moment où ça coince, à moins qu'on trouve un moyen de bien faire fonctionner des processeurs quantiques...

Ca te résoudrait presque n'importe quel truc dans ta face tien !
\large {\theta(e^{n})} ? Même pas peur !

Lightness1024!
31/10/2005, 15h52
tout à fait.

je crois que ce que terminaben ressent attrait plutot à la génération du son.
Les synthétiseurs actuels construisent des sons en direct avec des routines câblées à paramètres programmables (je penses aux différentes synthèses à base de générateur d'ondes, filtres, enveloppes et compagnie)
mais les paramètres en questions sont données par le musicien apres quelques heures d'essais pour trouver le bon son :D
en l'occurence ici ce qu'il faudrait faire c'est calculer en direct ces paramètres en fonction des matériaux, c'est ca qui est "impossible".
par contre si qqun trouvait un algo d'approximation rapide, alors pourquoi pas!

d'ailleurs en tres gros j'en vois déja un facilement, chaque objet comporte un flag indiquant le matériaux, 0=metal, 1=bois etc... (c'est déja le cas dans half life par exemple).
on connait aussi les dimensions, donc on peut déterminer une période de résonnance à l'aide d'une formule qui viendrait d'un système déja résolu au développement du programme. En trouvant à l'avance les paramètres de synthèse (en studio par essais) qu'il faut donner au synthétiseur pour créer un son de métal de bois de plastique (autant qu'il y a de flags de matériaux), alors voila déja une technique qui permettrait des possibilités multiples et améliorerait la "gaming experience" comme disent les english..

TERMINABEN
03/11/2005, 11h11
Toute courbe périodique est est une composée de plusieurs courbes sinusoidales, je vous liasse le soin de retrouver qui a dit ca ;)
Il est vrai que pour les processeurs d'aujourd'hui, et vous avez raison, la synthétisation d'une telle onde est trop complexe, mais, maintenant que les moteurs physiques sont quasi parfaits, la génération de sons dans un jeu est la prochaine étape à franchir,, et je persiste à dire qu'on y arrivera. :00000031:
D'ailleur je m'amuse déja a programmer ca, je verrais par moi meme ou ca coince :)

grob1212
03/11/2005, 14h11
Toute courbe périodique est une composée de plusieurs courbes sinusoidales, je vous liasse le soin de retrouver qui a dit ca ;)

Inexacte : Fourier a dit qu'il est possible de décomposer une fonction en un ensemble de fonctions sinusoïdales (afin de limiter l'erreur d'approximation par rapport aux fonctions de base). Physiquement, un signal n'est rien d'autre qu'une amplitude évoluant au cours du temps.
Une tension électrique v(t)=0 peut mathématiquement être écrite comme
v(t)=a*sin(t) +a*sin(t+pi), il n'en est pas moins vrai que physiquement, l'énergie dépensée sera nulle sur une période (ce qui ne transparait pas clairement dans la seconde équation...)


la génération de sons dans un jeu est la prochaine étape à franchir,, et je persiste à dire qu'on y arrivera. :00000031:

La réelle problématique est de savoir si le jeu en vaut vraiment la chandelle...

TERMINABEN
03/11/2005, 22h32
Vous n'avez pas l'air de vous intéresser à ce sujet, c'est dommage, si pour vous ce n'est pas la prochaine étape alors quelle est elle ?

olympi
04/11/2005, 01h04
Utiliser correctement les technologies qu'on a déjà, éviter de s'amuser de a ressucer la moelle des vieux os (quake, la seconde guerre mondial, ...) :00000030:

L'inventivité c'est ça qu'il faut réussir à programmer. :00000005:

De plus je ne vois pas ce que cela peut apporter au jeux vidéo, parce que avoir une infinité de son pour taper son gobelins, euh bon avec quatre cinq c'est suffisant, l'intérêt du jeu ne sera pas là. A moins que tu veuille faire "Tamtam Gobelins 2000 : crée toi ta propre batterie en chaire de gobelins !".

Au cinéma par exemple, lorsque un cheval galope, le son ne provient pas d'un vrai galop, mais d'hommes qui frappent des sabots en boit, sur du bois pour recréer un son ressemblant. Cela ne nous dérange pas plus que ça (a part certain bruitage a ch......)

HanLee
04/11/2005, 14h59
En fait c'est que l'intérêt limité est pour la plupart des gens.

Pourquoi ? Parce que notre sens auquel on fait le plus appel c'est surtout la vue !
Ca se remarque surtout en comparant les voyants et les non-voyants. Les non-voyants avoir la possibilité (généralisation) de voir leur est égal, ils ont toujours été habitués à ne rien voir et n'en voient pas l'intérêt, ils vivent très bien comme ça (personnellement, j'trouve qu'il y a un peu de l'hypocrisie quand ils disent ça).

Et quand vous interrogez un voyant, cela lui sera inconcevable de ne plus pouvoir voir (dont moi).

Regardez l'évolution technologique des jeux vidéos, au niveau sonore, et visuel.

Vous remarquerez que l'accent aura toujours été mis sur la partie visuelle, graphique, pour nous en mettre plein les yeux. On veut toujours plus de réalisme, etc.

On a eu besoin du son pour combler un vide, parce que jouer sans le son, on sent tout de suite qu'il manque quelque chose.
Au niveau de l'évolution du plan sonore, on a augmenté la qualité des fichiers musicaux, on a ajouté la spatialisation sonore, et c'est tout ?
Niveau qualité, ben on est déjà quasiment à la perfection, parce que la plupart des gens ne percevraient pas de différence entre la réalité et un enregistrement (pour un fichier son de bonne qualité).
Ensuite, ya le problème que les sons sonnent toujours pareils avec seulement quelques variations, mais ça ne choque pas grand monde, c'est toujours assez cohérent et pourtant... Mais c'est que la plupart des gens ne font pas leur sens auditif comme sens principal si je puis dire, mais cela inconsciemment.

On se fie toujours à notre vue pour se repérer, l'ouïe est accessoire, mais toujours utile (car on entend toujours même quand on ne veut pas, alors que la vue, il faut regarder au bon endroit, pour repérer un danger par exemple).

C'est pour ça que si on veut ça ne présente pas beaucoup d'intérêts pour grand monde.

Moi personnellement, c'est au niveau du toucher, du feed back où je trouve qu'il y a un manque dans les jeux, mais ça ça vient de la technologie.
Ya la Revolution qui va changer un peu notre façon de jouer, ça va changer beaucoup de la manette ou du clavier-souris.

TERMINABEN
04/11/2005, 22h46
bon ok peut etre qu'au niveau du jeu ca ne vous intéresse pas d'avoir des sons générés en temps réel, mais maintenant imaginez un instant la place disque que l'on gagne.
Rien que pour HL² c'est presque 1Go d'éconnomie.
Et ce n'est qu'un exemple ....
Les loading raccourics aussi ....

remram44
04/11/2005, 23h42
Je tombe sur ce post que maintenant. D'après ce que j'ai compris (pas tout lu) tu propose un nouveau système de sonorisation, qui calculerai le son au lieu d'en jouer un depuis un fichier ogg par exemple.

Tu crois vraiment qu'en cas de choc, calculer la direction de l'impact, la force, le centre d'intertie de l'objet, la forme et le type de surface entré en collision, le type de matériau, la température, la pression atmosphérique, l'amortissement, pour calculer une onde qui va se disperser dans les trois dimensions, en rebondissant sur les autres objets (avec encore un matériau, une forme de surface, etc) pour enfin voir ce qui arrive à l'oreille du personnage et le jouer dans les hauts-parleurs fait gagner du temps, car on évite le chargement au départ ?

C'est vraiment n'importe quoi, tu t'imagines la somme de calcul que ça représente ?
Tu n'es pas, je pense, le premier à avoir cette idée. Simplement, c'est beaucoup trop complexe pour un jeu en temps réel.

Je vois ça un peu comme le ray-tracing : c'est beau, mais trop lent pour du temps réel. On le précalcule donc, tout comme les reflets dans la plupart des jeux.

Lightness1024!
05/11/2005, 00h12
c'est ce que je disait.

TERMINABEN
05/11/2005, 08h32
Je ne propose pas, j'énonce les avantages que ca apporterait, donc ce n'est pas n'importe quoi.
On en a déja parlé, les temps de calcul sont trop longs pour les machines d'aujourd'hui, mais je parle d'un concept pour le futur, tu aurais due tout lire.

Lightness1024!
05/11/2005, 15h00
oui, mais le probleme ne vient pas seulement de la puissance, il vient aussi de l'interet.
supposons que nous somme un jour dans le futur ou les ressources sont suffisantes pour faire ce genre d'algo.
ce serait comme concevoir une petite centrale nucléaire pour alimenter un panneau lumineux de signalisation routière.

Ce n'est pas interressant de passer 50% du temps de développement du jeu sur un moteur de synthèse sonore, ce ne serait pas rentable.

remram44
05/11/2005, 16h31
C'est comme pour le ray-tracing : c'est un peu plus beau, mais ça prend énormément de temps.

Et le problème, c'est qu'on ne verra pas la moindre différence (déjà entre ray-tracing et des rendus précalculés sur des textures, la qualité est comparable).

En plus, je pense qu'il vaut mieux utiliser un peu plus de temps de calcul pour le l'affichage ou pour le moteur physique que pour le son...

TERMINABEN
05/11/2005, 22h20
Et pour l'espace disque économisé ca ne vous donne pas envie ?

Sami
06/11/2005, 12h25
Vu le prix des disques durs aujourd'hui non!

HanLee
06/11/2005, 13h11
Non moi ce qui me fait kiffer, c'est qu'on aurait pas besoin d'enregistrer des milliards de son pour avoir du son réaliste ! Tu connais les matériaux, t'as le moteur physique assez décent, donc tu as tes bruitages réalistes, tout ça calculé dynamiquement !

TERMINABEN
06/11/2005, 17h25
Oui exactement c'est aussi un aspect de taille.

HanLee
06/11/2005, 17h43
Ouaip, mais c'est pas vraiment la place que ça occuperait qui me dérangerait car comme dit Sami vu le prix du Go aujourd'hui ;), c'est plutôt le temps que ça prendrait pour obtenir ces fichiers, ou créer un son ressemblant à celui voulu par des artifices divers =)

remram44
06/11/2005, 18h21
Tout ce qui est sur le disque dur n'a pas besoin d'être calculé. Pour économiser 1 Mo de son, vous n'imaginez pas le temps de calcul nécessaire.

Alors après, on pourrait en effet générer ces sons au démarrage du programme, mais bon ça ferai un chargement d'une demi-heure à chaque fois, et en plus l'espace économisé dans le disque dur serait utilisé dans la RAM.

Non, vraiment, c'est surréaliste...

HanLee
06/11/2005, 18h42
Tout ce qui est sur le disque dur n'a pas besoin d'être calculé. Pour économiser 1 Mo de son, vous n'imaginez pas le temps de calcul nécessaire.

Alors après, on pourrait en effet générer ces sons au démarrage du programme, mais bon ça ferai un chargement d'une demi-heure à chaque fois, et en plus l'espace économisé dans le disque dur serait utilisé dans la RAM.

Non, vraiment, c'est surréaliste...

On sait Remram, ça fait 3 pages qu'on en parle, même que l'algorithme s'effectue en temps polynomial.

Là on regarde juste l'utilité pratique, certes utopique pour le moment.

grob1212
06/11/2005, 23h10
Non moi ce qui me fait kiffer, c'est qu'on aurait pas besoin d'enregistrer des milliards de son pour avoir du son réaliste ! Tu connais les matériaux, t'as le moteur physique assez décent, donc tu as tes bruitages réalistes, tout ça calculé dynamiquement !


Et pour calculer dynamiquement, il te faut des paramètres qui caractérisent les matériaux, l'environnement... Je crains que pour avoir une simulation convenable, il ne faille une quantité impressionnante de paramètres pour développer les maillages discrets nécessaires pour ce genre de calcul (on est vraiment loin d'un système du second ordre linéaire pour les automaticiens...). Sans compter que le moteur devrait posséder les caractéristiques de chaque matériaux, ainsi que celles liées au comportement (suivant la forme de l'objet, l'acoustique peut réellement être très différente).

Croyez-moi, pour avoir étudié le traitement de signal appliqué à l'acoustique d'une guitare, c'est l'usine à gaz assurée.

Enfin si vous arriver à créer un moteur capable de restituer un son en gérant toutes les caractéristiques de tout type de matériaux, volume, dans tous les milieux, respect (et n'oubliez pas de déposer votre C.V. chez Yamaha, votre profil pourra les intéresser).

Bon courage quand même.

Wismerhill
08/11/2005, 01h43
Et pour calculer dynamiquement, il te faut des paramètres qui caractérisent les matériaux, l'environnement... Je crains que pour avoir une simulation convenable, il ne faille une quantité impressionnante de paramètres pour développer les maillages discrets nécessaires pour ce genre de calcul (on est vraiment loin d'un système du second ordre linéaire pour les automaticiens...). Sans compter que le moteur devrait posséder les caractéristiques de chaque matériaux, ainsi que celles liées au comportement (suivant la forme de l'objet, l'acoustique peut réellement être très différente).

Croyez-moi, pour avoir étudié le traitement de signal appliqué à l'acoustique d'une guitare, c'est l'usine à gaz assurée.

Enfin si vous arriver à créer un moteur capable de restituer un son en gérant toutes les caractéristiques de tout type de matériaux, volume, dans tous les milieux, respect (et n'oubliez pas de déposer votre C.V. chez Yamaha, votre profil pourra les intéresser).

Bon courage quand même.

EAX de Creative Labs propose ce genre de simulation accélérée par le hardware. La dernière fois que j'avais regardé, il était possible d'envoyer à la carte son la géométrie du niveau. A partir de la position de la source sonore, elle pouvait rendre le son en tenant compte de la géométrie du niveau (occlusion, réverbération) et de la nature des matériaux. Bien sûr, la géométrie devait être simplifiée (comme un mesh de navigation) pour limiter les calculs de réverbérations et la liste des matériaux était limitée.

http://www.soundblaster.com/eax/abouteax/

Lightness1024!
08/11/2005, 02h31
tiens ca me dit qqch ca, j'ai du en entendre parler dans une news !

en effet c'est amusant, mais entre calculer du reverb et générer un son à partir de rien :00000013:

Wismerhill
08/11/2005, 11h45
Comme toujours dans les jeux vidéos, on fait une simplification du modèle. C'est déjà le cas pour la lumière et les ombres, aucun jeu ne fait du vrai ray tracing en temps réel, et pourtant on a des lumières dynamiques, des ombres projetées.

grob1212
09/11/2005, 11h54
EAX de Creative Labs propose ce genre de simulation accélérée par le hardware. La dernière fois que j'avais regardé, il était possible d'envoyer à la carte son la géométrie du niveau. A partir de la position de la source sonore, elle pouvait rendre le son en tenant compte de la géométrie du niveau (occlusion, réverbération) et de la nature des matériaux. Bien sûr, la géométrie devait être simplifiée (comme un mesh de navigation) pour limiter les calculs de réverbérations et la liste des matériaux était limitée.

http://www.soundblaster.com/eax/abouteax/


mais entre calculer du reverb et générer un son à partir de rien


Tout à fait d'accord. Le fait de calculer des réverbs et autres effets n'a rien à voir avec la génération de la source sonore...

Wismerhill
09/11/2005, 13h24
Bien sûr, mais c'est un pas vers la gestion de la physique dans le domaine sonore.