cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 25 févr. 2006 à 14:49
J'étais étonné pour les float >< double, il me semblait que c'était une idée reçue, mais pour le Pentium III en tout cas, tu sembles bien avoir raison:
"This table shows performance relative to a standard 32-bit assignment operation (value 1.00). Larger numbers indicate better performance. A value of 2.0 would be twice as fast as 32-bit assignment. A value of 0.5 would be twice as slow."
" Float operations are typically 1.5 to 2 times faster than double operations. If you can afford the loss of precision, float is the best floating-point type."
Intéressant aussi: les temps de conversions entre types (même page, appendice C)
oplibulartj
Messages postés1Date d'inscriptionmercredi 22 novembre 2000StatutMembreDernière intervention25 février 2006 25 févr. 2006 à 11:57
Bonjour. Je ne pense pas que beaucoup de gens liront ce topic, mais je tenais à dire que j'ai étudié cette source, et que la fonction chargée du remplissage des polygones peut être largement optimisée. Tout d'abord, si on veut à tout prix utiliser des nombres réels, il vaut mieux, pour le calcul des pentes du triangles, utiliser des floats au lieu de double. Deuxièmement, allouer et désallouer un tableau de repères de scanlines à chaque appel de la fonction de remplissage de polygônes est coûteux en temps machine, mieux vaut déclarer deux tableaux globaux, ou au moins les passer par adresse pour les réfractaires aux variables globales. Ensuite, on peut tout simplement se passer des nombres entiers pour ce genre d'algorithmes, en utilisant la méthode du "fixed point math" (google, "fixed point math"). Cette méthode permet d'utiliser des entiers comme si c'était des flottants, en découpant virtuellement les entiers en deux parties (partie fractionaire, partie entière). Ensuite, la fonction de traçage d'une ligne horizontale peut être inclue directement dans la routine de remplissage, on gagne en rapidité. Evidemment, le "fixed point math" peut s'appliquer à tous les calculs 3D. Je reste volontairement vague en ne fournissant pas d'exemples, car je ne suis pas sûr que ce topic intéresse quelqu'un, vue l'ancienneté du post. Si je vois que ma petite prose intéresse quelqu'un, je fournirais un exemple pratique avec SDL, afin que les utilisateurs puissent compiler mon code sous windows, linux, atari, etc ... Bonne lecture (pour ceux qui lisent). Dernier point : Je n'ai pas eu l'idée de faire ces optimisations tout seul, j'ai juste récupéré et synthétisé des infos sur le net. Dernière minute : Pour une bonne compréhension du "fixed point math", je recommande humblement de lire le code source de la bibliothèque allegro.
djulzz
DarkBoss
Messages postés154Date d'inscriptionsamedi 3 août 2002StatutMembreDernière intervention12 décembre 2008 30 sept. 2003 à 18:37
DarkBoss ramèn pè é trankilité sur ce forum !!!
cs_JCDjcd
Messages postés1138Date d'inscriptionmardi 10 juin 2003StatutMembreDernière intervention25 janvier 20094 17 juil. 2003 à 17:14
Pas de grossierete merci !
cs_Arkko
Messages postés192Date d'inscriptionmercredi 26 décembre 2001StatutMembreDernière intervention31 janvier 2007 17 juil. 2003 à 16:50
Hey Haldwin ... TA GEULE !!! c'est bien la concurence ... ca fait des meilleures sources car ils veulent etre meilleure que l'ancienne ...
cs_JCDjcd
Messages postés1138Date d'inscriptionmardi 10 juin 2003StatutMembreDernière intervention25 janvier 20094 17 juil. 2003 à 09:44
Ami ... mais on la toujours ete non ?
Haldwin
Messages postés77Date d'inscriptionlundi 15 avril 2002StatutMembreDernière intervention16 juin 2004 17 juil. 2003 à 09:44
Ce site est visité par de plus en plus d'ados boutonneux en pleins dans leur crise.... Dommage c'etait plus cool avant! Maintenant j'ai l'impression qu'on ne parle plus que performance "moi je suis meilleur que toi!! Mais non c'est moi le meilleur!Va voir ma source..." Navrant d'autant plus que il n'y a pas de gros balezes de la prog sur ce site!! Alors siouplait arretez de vous prendre pour des brutes, soyez humble, merde!
<<-- H@ldwin -->>
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 16 juil. 2003 à 22:11
ouais t'as raison zen, pr la petite histoire, casser = mettre une personne avec le nez devant la stupidité de sa remarque, c pas belge, à la base c français (cf Jean Dujardin dans les très bons sketches de Brice de Nice, à voir absolument! dispo un peu partout sur le net, il y en a 1 + 4)
pr la définition, je vois mal comment l'expliquer autrement, mais tt de suite avec des mots ça fait plus méchant que le terme "casser" en lui-même. on se quittes amis jcd? ;-)
cs_Wett
Messages postés104Date d'inscriptiondimanche 2 mars 2003StatutMembreDernière intervention12 juin 2005 16 juil. 2003 à 19:28
Hum hum je pense que le debat va s'arreter ici :) pas la peine de se foutre sur la figure (normalement l'expression est plus grossiere :p) zen les amis :)
cs_Arkko
Messages postés192Date d'inscriptionmercredi 26 décembre 2001StatutMembreDernière intervention31 janvier 2007 16 juil. 2003 à 17:27
Ouip c'est pas tout le monde qui vient de la belgique ... moi je suis du Québec et les expressions belges et europennes j'en connais seulement quelque unes que j'ai apris sur msn :D !!!
cs_JCDjcd
Messages postés1138Date d'inscriptionmardi 10 juin 2003StatutMembreDernière intervention25 janvier 20094 16 juil. 2003 à 14:46
??? je ne comprends pas ce que tu veux dire !
He oui, je ne suis pas intelligent comme toi !
Alors explique ce que vous appeller cassage ??
(enfin vous ... tu crois que c'est toute la Belgique ...)
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 16 juil. 2003 à 14:40
cs_JCDjcd
Messages postés1138Date d'inscriptionmardi 10 juin 2003StatutMembreDernière intervention25 janvier 20094 16 juil. 2003 à 14:34
Kirua, tu parles tu parles, MAIS tu fais rien !
Alors evite ce genre t'alusion foireuse !
C'etait deux programmes differents !
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 15 juil. 2003 à 19:28
c'est vrai qu'un code comme celui-ci sort du lot, c'est pas tous les jours, quand on voit des fusionneurs / défusionneurs de fichiers tout cons postés en deux sources, ceci détonne. encore bravo.
cs_Arkko
Messages postés192Date d'inscriptionmercredi 26 décembre 2001StatutMembreDernière intervention31 janvier 2007 15 juil. 2003 à 19:01
Je crois franchement que ca mériterais un trophée (mrd je suis pas admin) ... j'espere que les modérateurs sont du meme avis que moi !!
cs_Nicolus
Messages postés16Date d'inscriptionmercredi 18 juillet 2001StatutMembreDernière intervention15 juillet 2003 15 juil. 2003 à 18:57
merci beaucoup ca fait plaisir de voir que mon travail est apprecie par d'autres programmeurs!
pour la peine, je mets l'exe pour ceux qui peuvent pas compiler ou qui ont la flemme ;))
cs_Arkko
Messages postés192Date d'inscriptionmercredi 26 décembre 2001StatutMembreDernière intervention31 janvier 2007 15 juil. 2003 à 05:11
Wow .... C'EST TRES [...] TRES BIEN ! .... ‡/10
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 13 juil. 2003 à 22:29
point de vue math O_o créer un moteur 3D c énorme. en fait je suis étonné que ce ne soient que 90 000 caractères. pr un bête jeu que je suis en trai nde créer et qui utilise OpenGL je suis déjà à 66Ko de sources (commentée allègrement)
bonne continuation, tu pourras en faire qq ch de grand ;-)
cs_Wett
Messages postés104Date d'inscriptiondimanche 2 mars 2003StatutMembreDernière intervention12 juin 2005 13 juil. 2003 à 14:51
Oui, effectivement t'es sacrement baleze!!! Pareil je te mets 10/10! T'as du passer un temps dingue là dessus!
eldered
Messages postés232Date d'inscriptionvendredi 21 mars 2003StatutMembreDernière intervention25 mai 2022 12 juil. 2003 à 21:09
un exe !
cs_Nicolus
Messages postés16Date d'inscriptionmercredi 18 juillet 2001StatutMembreDernière intervention15 juillet 2003 12 juil. 2003 à 20:39
pour JCDjcd : c'est simplement pour eviter un appel de fonction
et pour lenght, j'ai effectivement oublié de vérifier s'il était différent de 0.... oups.
pour Funto66 : merci ça fait plaisir! je vais rajouter des fichiers ASE dans le zip.
Funto66
Messages postés1267Date d'inscriptionmercredi 1 janvier 2003StatutMembreDernière intervention28 février 20074 12 juil. 2003 à 19:52
T'as oublié de mettre les fichers .ASE..... dommage :(
Mais vu la taille du projet, j'ai fait un petit effort et je suis allé en chercher sur le net.
C'est vrai que t'es balèze ! Félicitations !
Je vais m'attarder un peu plus sur le charceur de fichiers ASE...
Allez, pour la peine : 10/10 !
cs_JCDjcd
Messages postés1138Date d'inscriptionmardi 10 juin 2003StatutMembreDernière intervention25 janvier 20094 12 juil. 2003 à 14:00
tu ne pourrais pas faire plutot
//////////////////////
// NormalizeVector3D()
//////////////////////
void NormalizeVector3D(VECT3D *v)
{
double lenght;
25 févr. 2006 à 14:49
"This table shows performance relative to a standard 32-bit assignment operation (value 1.00). Larger numbers indicate better performance. A value of 2.0 would be twice as fast as 32-bit assignment. A value of 0.5 would be twice as slow."
http://www.tantalon.com/pete/cppopt/appendix.htm#AppendixB
" Float operations are typically 1.5 to 2 times faster than double operations. If you can afford the loss of precision, float is the best floating-point type."
Intéressant aussi: les temps de conversions entre types (même page, appendice C)
25 févr. 2006 à 11:57
djulzz
30 sept. 2003 à 18:37
17 juil. 2003 à 17:14
17 juil. 2003 à 16:50
17 juil. 2003 à 09:44
17 juil. 2003 à 09:44
<<-- H@ldwin -->>
16 juil. 2003 à 22:11
pr la définition, je vois mal comment l'expliquer autrement, mais tt de suite avec des mots ça fait plus méchant que le terme "casser" en lui-même. on se quittes amis jcd? ;-)
16 juil. 2003 à 19:28
16 juil. 2003 à 17:27
16 juil. 2003 à 14:46
He oui, je ne suis pas intelligent comme toi !
Alors explique ce que vous appeller cassage ??
(enfin vous ... tu crois que c'est toute la Belgique ...)
16 juil. 2003 à 14:40
en belgique on appelle ça un cassage.
16 juil. 2003 à 14:34
Alors evite ce genre t'alusion foireuse !
C'etait deux programmes differents !
15 juil. 2003 à 19:28
15 juil. 2003 à 19:01
15 juil. 2003 à 18:57
pour la peine, je mets l'exe pour ceux qui peuvent pas compiler ou qui ont la flemme ;))
15 juil. 2003 à 05:11
13 juil. 2003 à 22:29
bonne continuation, tu pourras en faire qq ch de grand ;-)
13 juil. 2003 à 14:51
12 juil. 2003 à 21:09
12 juil. 2003 à 20:39
et pour lenght, j'ai effectivement oublié de vérifier s'il était différent de 0.... oups.
pour Funto66 : merci ça fait plaisir! je vais rajouter des fichiers ASE dans le zip.
12 juil. 2003 à 19:52
Mais vu la taille du projet, j'ai fait un petit effort et je suis allé en chercher sur le net.
C'est vrai que t'es balèze ! Félicitations !
Je vais m'attarder un peu plus sur le charceur de fichiers ASE...
Allez, pour la peine : 10/10 !
12 juil. 2003 à 14:00
// NormalizeVector3D()
//////////////////////
void NormalizeVector3D(VECT3D *v)
{
double lenght;
lenght = sqrt(v->x * v->x + v->y * v->y + v->z * v->z);
v->x /= lenght;
v->y /= lenght;
v->z /= lenght;
}
tu ne pourrais pas faire plutot
//////////////////////
// NormalizeVector3D()
//////////////////////
void NormalizeVector3D(VECT3D *v)
{
double lenght;
LenghtVector3D(v,&lenght);
v->x /= lenght;
v->y /= lenght;
v->z /= lenght;
}
et lenght est-il toujours != de 0 ??