home *** CD-ROM | disk | FTP | other *** search
/ Falcon 030 Power 2 / F030_POWER2.iso / ST_STE / MAGS / TOXIC_14.ARJ / toxic_14 / TOXIC_14.D_2 / ALGORITH.MES / ALGORITH.ZIP / PARTIE_3.MIN < prev    next >
Text File  |  1996-12-24  |  69KB  |  562 lines

  1. SV:s@③H④ B_②gT GOMessageL ⑧@du 17/O9/96 ⑨Aa 22:54DAMDS de ⑧patapom pour ALGORITHMESEAB`②gGR⑨Bef:]ODIN\ (17/O9 ⑨Aa 17:3③H8)
  2. Non ⑨Kca suffit pas p③Hasskeu Z n'est pas li③Hn⑨Beaire! Alors ke 1/Z l'e③Hst... C comme si tu supposais ke, si Z est lin⑨Beaire alors U et V l'⑨Betaient alors l⑨Aa je vois m⑨Ceme plus l'inter⑨Cet d'interpoler U/Z et V/Z ⑨Aa moins de vouloir g⑨Cacher des cycles koi...VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du 17/O9/96 ⑨Aa 19:42DAMDS de ⑧Geek pour ALGORITHMESEAB`②gGref: cyrix
  3. g fait 2 chtites boucles en asm histoire de tester... pr le moment elles sont vides.
  4. donc j'ai : mov ecx,nombre_au_pif
  5. boucle1: dec ecx
  6. jnz boucle1
  7. et une 2eme: mov ecx,meme_nombre_o_pif
  8. dec... et pis jnz.
  9. alors POURQUOI la 1ere prend elle 2x - de tps que la 2eme????VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du 17/O9/96 ⑨Aa 17:38DAMDS de ⑧ODIN pour ALGORITHMESEAB`②gGR⑨Bef:]SYNTAX\ (15/O9 ⑨Aa 19:51)
  10. meuh non!!
  11. u/z & v/z avec z interpole suffit !!
  12. u est egalement interpole mais suivant umax=u*zmax
  13. voila et graphiquement ca donnera une hyperbole...VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du 15/O9/96 ⑨Aa 22:36DAMDS de ⑧E.T pour ALGORITHMESEAB`②gGR⑨Bef:]SYNTAX\ (15/O9 ⑨Aa 19:51)
  14. c'est exacte. tu multiplie bien 1/z par n. mais egalement u/z et v/z③H.
  15. donc t'as tout compri③Hs.
  16. slt a+VAB`②gT @AvancerGZ ] Suite  ③H\Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du 15/O9/96 ⑨Aa 19:51DAMDS de ⑧SYNTAX pour ALGORITHMESEAB`②gGR⑨Bef:]E.T\ (13/O9 ⑨Aa 23:15)
  17. Hi! mais oui c.t. ca! je suis rassure!
  18. bon je recapitule le map corrige pour   voir si j'ai bien pige:
  19. a chaque group de n pix on a le u de depart,on calcule le u suivant par correction,et on interpole n pix entre les 2 parle pas (usuiv-udep)/n.
  20. oui mais alors le pas 1/z il fo le multiplier par n vu k'on l'utilise tous les n,non?
  21. voila. a+VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du 15/O9/96 ⑨Aa OO:O1DAMDS de ⑧ODIN pour ALGORITHMESEAB`②gGR⑨Bef:]ODIN\ (14/O9 ⑨Aa 21:57)
  22. pour en finir avec le true map, la methode la + simple a retranscire sur un motorola qui n'accepte pas les float donc necessite d'avoir bcp de bits de precision est la methode a 2 divs.
  23. en la boucle se compose telle qu'elle:
  24. x=x+pasx
  25. y=y+pasy
  26. xf=x/z
  27. yf=y/z
  28. avec evidemment z=z+pz calcule pour que xmax/zmax donne la largeur de la pic..
  29. donc on voit tout de suite que z ne prendra pas des valeurs a dormir debout..VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④@AQ ⑧`]NGRLCTFEBLG\⑨.@Contact:GCHARLES-HENRI
  30. @]⑧]N*L    Envoi
  31. ①④ B_②gT GOMessageL ⑧@du 15/O9/96 ⑨Aa OO:O5DAMDS de ⑧ODIN pour ALGORITHMESEAB`②gGgenre z=0.00000001, argh !!
  32. bon y'a 3 interpolations alors qu'avec 1 div, 2 muls y'en a qu'une pour z car dans u=i/z, i est juste incremente a chaque fois c'est tout...
  33. mais on peut avoir des z franchement chiant a gerer (8 bits de precision sont ridicules !!), et passer sur des divs 32 bits en 68020, oucchh!!!
  34. sinon je sais pas si j'ai bien capte la methode de e.t. ou synthax ou j'sais plus mais il avait pas des interpolations dans sa texture ?? bcoz z'en ai plus..VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du 14/O9/96 ⑨Aa 22:47DAMDS de ⑧TRANTOR pour ALGORITHMESEAB`②gGR⑨Bef:]CREATEUR\ (12/O9 ⑨Aa 11:O8)
  35. effacer-recopier avec des 'rep' de 4Ko ?
  36. heu, tu peux filer la methode la ?
  37. je vois pas comment un rep peu prendre
  38. 4Ko !!! Explik please...
  39. Un novice en optimization...VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du 14/O9/96 ⑨Aa 21:57DAMDS de ⑧ODIN pour ALGORITHMESEAB`②gGR⑨Bef:]Geek\ (12/O9 ⑨Aa O:22)
  40. y'a des blems avec les CYRIX?
  41. ca commence a m'enerver tout ces trucs chelou je sens que je vais m'acheter un intel et pi voila, hum ...
  42. pourtant j'ai des tests nortons qui disent qu'un p120 tourne a 300N alors qu'un p120+ va pratiquement 2* plus vite...
  43. aller donne vos avis tout, je veux savoir la veritie sur les CYRIX !!VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du 13/O9/96 ⑨Aa 23:15DAMDS de ⑧E.T pour ALGORITHMESEAB`②gGR⑨Bef:]SYNTAX\ (13/O9 ⑨Aa 2O:54)
  44. heu pour ton probleme. du nombre de cycle pris par le fmul, t'as bien pense a   mettre qqueschose dans les registres du copro, because une instruction executee sur un registre copro libre genere un exeption.
  45. ca peut peut etre venir de ca!!!
  46. a+VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du 13/O9/96 ⑨Aa 22:15DAMDS de ⑧TRILOGY pour ALGORITHMESEAB`②gGQuel est l'algo utilis⑨Be dans RAR.EXE ???VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du 13/O9/96 ⑨Aa 2O:54DAMDS de ⑧SYNTAX pour ALGORITHMESEAB`②gGR⑨Bef:]CREATEUR\ (1O/O9 ⑨Aa 23:19)
  47. Hi! j'suis d'a③Hccord pour le cache miss  code mais regardez mon code:
  48. mov ecx,100
  49. RDTSC
  50. push eax
  51. loop: fmul ; dec ecx ; jg short loop
  52. etc...
  53. ben ca me donne +③H de 6000 cycles!
  54. c dingue...VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du 13/O9/96 ⑨Aa 12:O6DAMDS de ⑧Geek pour ALGORITHMESEAB`②gGR⑨Bef:]Geek\ (12/O9 ⑨Aa 18:46)
  55. pfiou laissez tomber je m'etais plante..g refait le test et mon cyrix aime pas trop les reels....
  56. a part ca y'a t'il kk1 ki code sur cyrixici???VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du 12/O9/96 ⑨Aa 18:46DAMDS de ⑧Geek pour ALGORITHMESEAB`②gGR⑨Bef:]CREATEUR\ (12/O9 ⑨Aa 11:O8)
  57. c bizarre kan meme car une fois sous tp j'avais fait un truc du style mem[⑨$a000:j*320+i]:=i+j div bidule ki etait plus  lent que que faire une div reelle!!?
  58. donc sur cyrix fodrait coder qu'av③Hec des entiers?VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du 12/O9/96 ⑨Aa 12:1ODAMDS de ⑧Zappy pour ALGORITHMESEAB`②gGR⑨Bef:]CREATEUR\ (12/O9 ⑨Aa 11:O8)
  59. Ca depend des PC on dirait...c'est pas quelques HBL chez moi.VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨Bepondeu③HrGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du 12/O9/96 ⑨Aa 11:O8DAMDS de ⑧CREATEUR pour ALGORITHMESEAB`②gGR⑨Bef:]Geek\ (12/O9 ⑨Aa O:22)
  60. Bah c'est le pb des cyrix:tout ce qu'on dit ici est bon pour le pentium...deja le pentium pro,c'est un peu different,le pentium avec le MMX aussi...
  61. Pour le Cyrix,je crois que c'etait son gros point faible,les flottants....
  62. (m'enfin t'inquiete pas,on gagne qq hbl a effacer-recopier au③H fpu,c'est tout...moi je reste avec mes petits "rep" de 4ko,ca marche partout normalement).VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du 12/O9/96 ⑨Aa OO:22DAMDS de ⑧Geek pour ALGORITHMESEAB`②gGR⑨Bef:]Geek\ (12/O9 ⑨Aa O:17)
  63. argh mon modem ki raccroche...
  64. du coup j'abrege.
  65. donc on faisait des muls par copro, sur p100 on en casait environ.... je sais + trop 15000 ds la vbl je crois alors qu'on mettait aisement 90000 entieres!
  66. donc comment esse kon init le copro?
  67. ya til des docs ou books... ou on puissetrouver le timing des instructions fpu?VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du 12/O9/96 ⑨Aa OO:17DAMDS de ⑧Geek pour ALGORITHMESEAB`②gGref:]COPRO\
  68. g dl fpu.zip sur eden... un prg ki est  cense prouver ke le fild q fistp q est +rapide ke le rep movsd.... mais moi g uncyrix et le copro est presque 2x + lent...? c normal ca? kelk1 a fait des tests copro sur cyrix?(p166+?)
  69. sinon pour initialiser le copro est ce qu'1 simple finit suffit?
  70. avec mogar on avait un code du style:VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④@AQ ⑧`]NGRLCTFEBLG\⑨.@Contact:GCHARLES-HENRI
  71. @]⑧]N*L    Envoi
  72. ①④③H④ B_②gT GOMessageL ⑧@du 11/O9/96 ⑨Aa 22:51DAMDS de ⑧E.T pour ALGORITHMESEAB`②gGR⑨Bef:]CREATEUR\ (11/O9 ⑨Aa 12:54)
  73. heu j'ai un doute la!!!
  74. d'apres toi ca va plus vite de taper 4  fois un code plutot que d'y mettre un   rept 4!!!
  75. oups. scuse j'ai pige. tu veux dire qu'en ecrivant 4 fois le code tu peux deplacer certaines instructions pour qu'elle se pa③Hrallelisent mieux... okok.
  76. sinon autre question a la mode (enfin   en ce qui me concerne) comment on gere  les collisions dans un truc style descente???VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du 11/O9/96 ⑨Aa 22:53DAMDS de ⑧E.T pour ALGORITHMESEAB`②gGm'est dans l'idee qu'avec un bsp on doitpouvoir savoir assez vite si on est dansou hors des couloirs, m'enfin c'est pas terrible.
  77. ③Hcas plus simple (peut etre) dans③H quake..comment font ils???
  78. si qqu'un a une tite idee qui tient la rout③He...
  79. a+VAB`②gT @AvancerGZ③H ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du 11/O9/96 ⑨Aa 12:54DAMDS de ⑧CREATEUR pour ALGORITHMESEAB`②gGR⑨Bef:]Zappy\ (11/O9 ⑨Aa O:O6)
  80. Yep,dans une doc y conseille de derouler 4 fois maximun(et pas un rept 4...endr,mais de le faire a la main pour profiter a fond du pipeline...).VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du 11/O9/96 ⑨Aa OO:O6DAMDS de ⑧Zappy pour ALGORITHMESEAB`②gGR⑨Bef:]CREATEUR\ (1O/O9 ⑨Aa 23:19)
  81. Ouais, j'ai deja eu un mov a 62 cycles, huhu..
  82. Syntax: la boucle qui va plus vite que  le code deroule, ca n'a rien d'etonnant sur un Pentium. Pensez-y pour le mapping.. la boucle qui repete du 3/2 n'est PASle plus rapide..VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du 11/O9/96 ⑨Aa OO:O2DAMDS de ⑧ODIN pour ALGORITHMESEAB`②gGR⑨Bef:]Zappy\ (9/O9 ⑨Aa O:26)
  83. Je suis pas d'accord, franchement le petit expose "mapping corrige" a bcp avance et ne repete pas les meme cho③Hses...VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du 1O/O9/96 ⑨Aa 23:29DAMDS de ⑧E.T pour ALGORITHMESEAB`②gGR⑨Bef:]SYNTAX\ (1O/O9 ⑨Aa 21:O8)
  84. heu ouaip.
  85. enfin si tu corrige tous les 8 pixels   ben tu divise par 8 (enfin tu decales quoi!!!)
  86. en ce qui concerne ton test de cycles,  faut toujours le mettre dans une boucle,car les cache miss des datas ne sont pas les plus grave. le pire c'est les caches miss du code. donc si c'est la premiere fois que tu entre dans ton code, ben  c'est regle davance pour le nombre de cycles...VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du 1O/O9/96 ⑨Aa 23:19DAMDS de ⑧CREATEUR pour ALGORITHMESEAB`②gGR⑨Bef:]ODIN\ (8/O9 ⑨Aa 23:42)
  87. Bah faut lire③H ta bal...je t'ai dis que c'etait pour les effets 2d...
  88. Pour RDST? bah deja cette instruction prends un certain temps(qui n'a pas l'air constant ?!?) de plus c'est peut-etre pas FILD qui prends 40 cycle,mais FILD [MEM]..si MEM n'est pas dans le cache,tu tombes rapidement a des 40 cycles,meme pour un bete MOV...
  89. A note que l'on peu aussi tester le nombre de cache miss,de saut de cache non prevu,etc,etc...c'est prevu en hard!VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du 1O/O9/96 ⑨Aa 21:O8DAMDS de ⑧SYNTAX pour ALGORITHMESEAB`②gGR⑨Bef:]E.T\ (8/O9 ⑨Aa O:O6)
  90. Hi! bizarre...je viens de tester avec   RDTSC les tps d'execution de qques in-
  91. structions fpu.c monstrueux!
  92. j'obtient 60 cycles pour 1 simple FLD!
  93. ca deconne ou koi? pareil pour le FMUL! mon PC marche bien,QUAKE est super fluide en 320*200 (P90)! comprends po.
  94. par ailleurs 1 boucle avec dec/Jcc va   + vite apparemment que la boucle mise a plat!
  95. bon z'allez encore me dire ke j'debarquemais le coup du fpu,c louche...
  96. au fait E.T.,kan tu mappe lineairement  apres ta div tu utilise (U2-U1)/l com-  me pas c ca?VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O9/O9/96 ⑨Aa 11:35DAMDS de ⑧SYNTAX pour ALGORITHMESEAB`②gGR⑨Bef:]E.T\ (8/O9 ⑨Aa 22:34)
  97. hi! add eax,mem prend 2 cycles et tu le
  98. parallelise avec add ecx,edx ki en prendqu'un (on s'en fout pour les reg,hein)
  99. donc le tout prend 2 cycles,
  100. car le add ecx,edx attend le dernier cycle du add eax,mem pour s'executer.ouf.a+
  101. au fait merci pour l'explikation du map
  102. corrige c nettement + clair maintenant!VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O9/O9/96 ⑨Aa O2:2ODAMDS de ⑧Zappy pour ALGORITHMESEAB`②gGR⑨Bef:]CREATEUR\ (6/O9 ⑨Aa 17:33)
  103. Deja, aurais-tu des backups des contributions au club depuis...le debut?
  104. En relisant les messages qui restent, je me suis rendu compte qu'on repetait 50 fois les memes trucs, par exemple au sujet du mapping corrige.
  105. 'fin bref..VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O9/O9/96 ⑨Aa OO:25DAMDS de ⑧Zappy pour ALGORITHMESEAB`②gGR⑨Bef:]ODIN\ (8/O9 ⑨Aa 23:36)
  106. Ah mais de toute maniere tu ne pourras pas trouver de linearite en faisant ③Hces differences! J'ai parle d'une APPROX③HIMATION!
  107. En analyse numerique classique, il y a 2choses bien differentes quand on essaye d'approcher une courbe donnee avec un polynome: les polynomes d'interpolation, qui passent reellement par tous les points cherches, et les polynomes d'approximation, qui, evidemment, se contentent d'approcher approximativement la courbe ideale. (...) Effectuer le mapping corrigeVAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O9/O9/96 ⑨Aa OO:26DAMDS de ⑧Zappy pour ALGORITHMESEAB`②gGsans aucune erreur, on s'en fout, personne ne verra jamais la difference. D'autant que 1/Z, c'est la projection employeeparce que c'est la plus simple! Mais c'est pas la seule! Pourquoi on mapperait pas en x^2? Je sais pas quel rendu ca peut avoir mais ce sera toujours mieux que du lineaire je③H suppose..VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O9/O9/96 ⑨Aa OO:16DAMDS de ⑧Zappy pour ALGORITHMESEAB`②gGR⑨Bef:]TIE FIGHTER\ (8/O9 ⑨Aa 22:58)
  108. Oui, je pense aussi que c'est mieux!
  109. C'est comme le PUSH Mem, moins interessant que le MOV eax,Mem suivi d'un PUSH Eax.VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O9/O9/96 ⑨Aa OO:14DAMDS de ⑧Zappy pour ALGORITHMESEAB`②gGR⑨Bef:]E.T\ (8/O9 ⑨Aa 22:33)
  110. Tes 4 add prennent 3 cycles..
  111. D'une maniere generale pour vos questions sur le parallelisme et les cycles, il y a toujours l'instruction RDTSC (opcode0f31h) qui renvoie dans EDX:EAX le nombre de cycles executes depuis l'allumage du Pentium.VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O9/O9/96 ⑨Aa OO:O4DAMDS de ⑧GODS pour ALGORITHMESEAB`②gGR⑨Bef:]Zappy\ (8/O9 ⑨Aa 2:27)
  112. ouai mais t'es pas tres clair. le but du jeu est de passer de (i,j) a (u,v).
  113. tu peux pas comme tu as l'air de l'expliquer partir de coordonne 3D, enfin si mais juste pour les points ecran de ton poly c'est tout... apres on va da③Hns l'autre sens, ecran -> texture.
  114. ecrivez de petits listing lors de vos explications, ca rend les choes tout de suite plus comprehensible...
  115. Odin.VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]③HN#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O9/O9/96 ⑨Aa OO:O3DAMDS de ⑧Zappy pour ALGORITHMESEAB`②gGR⑨Bef:]ODIN\ (8/O9 ⑨Aa 23:42)
  116. Createur fume trop.
  117. Elle tourne en 6-7 sur un P100 avec Burst Cache.
  118. Tout ce qu'on peut raisonnablement dire de la Contrast c'est que:
  119. 1) elle est jolie.
  120. 2) elle rame.
  121. Un peu comme Quake *8)VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O8/O9/96 ⑨Aa 23:42DAMDS de ⑧ODIN pour ALGORITHMESEAB`②gGsinon pour ceux qui ont la CONTRAST pourrait-il indique la fluidite de la demo (nombre de vbls en gros) ainsi que la config qu'il ont ?
  122. car createur m'a dit qu'elle tournait a la vbl sur son p90 et j'ai un pote qui a un p150+ et ca tourne en 2 vbls avec qq saccade en 3, kan la boulles avec les tores arrivent par exemple...
  123. alors kom je risque d'acheter mon PC dans le meme magasion, bein ca serait coup que je me fasse couilloner meme si c'est pas cher...VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O8/O9/9③H6 ⑨Aa 23:14DAMDS de ⑧ODIN pour ALGORITHMESEAB`②gGR⑨Bef:]E.T\ (7/O9 ⑨Aa 22:43)
  124. Wooow, que de reponses !
  125. heeu, en fait, j'me suis trompe, huhu!
  126. y'avait un truc tout con que je faisais qui me calcule deux fois la meme valeurs, donc en fait, j'ai "que" 2 muls, et 1 divs par point.
  127. pour une scan line, j'ai les deux extremetis X (x0,x1) , deux extremites Z (z0,z1), et 2 points dans une map.
  128. j'interpole Z betement, comme le disais Zappy, c'est normalement une grossierre erreur, le Z interpole ecran est totalement faux (et oui 1/10-1/9 n'est pas egal a 1/9-1/8 qui n'est pas egal a 1/8-1/7VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O8/O9/96 ⑨Aa 23:18DAMDS de ⑧ODIN pour ALGORITHMESEAB`②gG...) mais on s'en fiche c'est juste pour retrouver je dirais "la forme mathematique des projections" dans un syteme arbitraire, c'est tout... hum...
  129. bon et puis a chaque pixel i je divise par le z interpole je lui soustr③Hait une constante (comme b dans y=ax+b par exemple) et je multiplie par egalement une constante pour passer dans le systempe de coordonnes de la map, U a son propre facteur et V aussi, par contre I/Z sert pour les deux, si V est exprime par rapport a la meme chose,X1-X0 ici..
  130. mais moi je le recalculais 2* I/Z, ca servait a rien, c'etait idiot, huhu !VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O8/O9/96 ⑨Aa 23:24DAMDS de ⑧ODIN pour ALGORITHMESEAB`②gGLe code GFA pour afficher des murs en true map donne ceci :
  131. x0=xe(0)
  132. y0=ye(0)
  133. x1=xe(1)
  134. y1=ye(1)
  135. x1=x1-x0
  136. y1=y1-y0
  137. yp=y1/x1
  138. y1=ye(3)
  139. z=ze(1)
  140. pz=(ze(0)-ze(1))/x1
  141. aol=x0/z
  142. fact=largeur texture/((x0+x1)/ze(0)-aol)for i=x0 to x0+x1VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O8/O9/96 ⑨Aa 23:26DAMDS de ⑧ODIN pour ALGORITHMESEAB`②gGu=i/z
  143. u=u-aol
  144. u=u*fact
  145. v=0
  146. color motif|(u,v)
  147. for a=y0 to y1
  148. plot i+159,a+127
  149. next a
  150. z=z+pz
  151. y0=y0+py
  152. y1=y1-py
  153. next i
  154. voila et ca va bcp plus vite qu'un raycasting (utilise dit-on dans DOOM)...VAB`②gT @AvancerG③HZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O8/O9/96 ⑨Aa 23:28DAMDS de ⑧ODIN pour ALGORITHMESEAB`②gGpour rajouter V ca ferait fact2 a calcule pour un truc du genre par point:
  155. V=U-aol2
  156. V=V*fact2
  157. V=V+origine
  158. voila voila...
  159. sinon pour le coup d'avoir un pas pour un pas pour une valeur, soit :
  160. x=a
  161. a=a+b
  162. b③H=b+c
  163. j'y est reflechi et franchement je vois pas du tout, exemple:VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O8/O9/96 ⑨Aa 23:32DAMDS de ⑧ODIN pour ALGORITHMESEAB`②gGvous avez un poly de X constant qui part dans le fond vers l'horizon bein mathematiquement ca correspondra a un truc du genre : 10/1, 10/2, 10/3, 10/4, 10/5, 10/6, 10/7, ...
  164. bein suffirait de savoir comme calcule ca sous la forme ecrite precedemment pour pouvoir optimiser le true map.
  165. donc j'ai fais la difference entre chacun tout simplement et sur les nouvelles valeurs trouves je les ai repasse a la moulinette pour refai③Hre leur difference. calcul qu③H'il est d'ailleurs possible de continuer a l'infini...
  166. bein je suis aller jusqu'a m'enfoncer 4* dans les differences des differences VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O8/O9/96 ⑨Aa 23:35DAMDS de ⑧ODIN pour ALGORITHMESEAB`②gGdes differences des differences... et je n'ai jamais trouve aucune linearite..
  167. y'avait juste un moment toutes les valeurs trouve etait du style 0.3333, 0.444, 0.3333, 0.55555, 0.33333, un truc chelou de ce genre, bon alors a la rigueur on arrondi a 0.35 et pi voila, m'enfin bonjours les erreurs de calculs a l'arrive! et comme fallait deja creuse pour arriver a ca, pour retrouver les valeurs de depart ca fera un truc du genre:
  168. x=a
  169. a=a+b
  170. b=b+c
  171. c=c+d
  172. d=d+eVAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O8/O9/96 ⑨Aa 23:36DAMDS de ⑧ODIN pour ALGORITHMESEAB`②gGenfin voila, donc 2 muls 1 div/pt, sinon j'ai entendu parle de 3 muls, ca me paraiterait etonnant m'enfin bon...
  173. en attendant ③Hles 4 add ..VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O8/O9/96 ⑨Aa 22:58DAMDS de ⑧TIE FIGHTER pour ALGORITHMESEAB`②gGR⑨Bef:]E.T\ (8/O9 ⑨Aa 22:33)
  174.  Je suis pas trop calle sur le pentium, mais je te conseille plutot de faire
  175.  mov edx,mem
  176.  truc-pour la v-pipe..
  177.  add eax,edx ,
  178. Pour agrandir le sujet.. parrallelisme, qq'un sait t-il comment on③H pourrait faire un compilo qui parrallelise, et ca de maniere transparente, ex: si y 4 proco, faire en sorte que ca aille plus vite ? Je sais qu'il y a les threads, mais c'est pas transparent ca ...VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O8/O9/96 ⑨Aa 22:33DAMDS de ⑧E.T pour ALGORITHMESEAB`②gGR⑨Bef:]Zappy\ (8/O9 ⑨Aa 12:46)
  179. concernant les performance du pentium   j'ai une question.
  180. add reg,mem
  181. prend 2 cycles mais se paralellise.     mais bloque t-elle un pipe???
  182. bref:
  183. add eax,mem
  184. add ebx,ecx
  185. add edx,ecx
  186. add esi,ecxVAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O8/O9/96 ⑨Aa 22:34DAMDS de ⑧E.T pour ALGORITHMESEAB`②gGest ce que ca prend 2 cycle ou 2,5 cycles?
  187. bref est ce que add edx,cx passe dans lememe pipe que add eax,mem, bref.....
  188. je crois que j'ai ete clair ce coup ci. hehe.
  189. j'espere que qqu'un sait ca!!!VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O8/O9/96 ⑨Aa 22:24DAMDS de ⑧LEONHARD pour ALGORITHMESEAB`②gGR⑨Bef:]Zappy\ (8/O9 ⑨Aa 12:47)
  190. hello...
  191. je vois qu'on parle du mmx. je connais un peu j'etais a la presentation d'intel.en fait c'est tres bien pour faire du traitement du signal, c'est a dire pour des merde genre player d'avi ou autre. pour ce qui est de la 3d (affichage) c'est une GROSSE③H DAUBE... en gros tout fonctionne en entier 16 ③Hbits... alors 16 bits pour les calculs c'est chaux... par contre une instrucion PMADD fait a*b+c*d et e*f+g*h en 1 cycle, et elle est pairable, donc 0.5 cycle en se demerdant. par contre a,b,c,d etc sont des 16bits...VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O8/O9/96 ⑨Aa 21:54DAMDS de ⑧PSC pour ALGORITHMESEAB`②gGpuisje faire une rot 3D
  192. genre terre soleil avec une seule matrice et une rotationVAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O8/O9/96 ⑨Aa 12:46DAMDS de ⑧Zappy pour ALGORITHMESEAB`②gGR⑨Bef:]E.T\ (8/O9 ⑨Aa 12:21)
  193. Hehe, oui, le copro est rapide et peu y pensent.
  194. Tout au copro, tant que ca marche, je   pense que c'est le mieux pour l'instant.3 cycles? C'est rien du tout. Ta methodeest de loin meilleure qu'une table - je ne signalais ca qu'en passant, les tables en ce moment j'evite..
  195. A la limite, le seul reproche qu'on peutlui faire en poussant un peu, c'est son avenir incertain quand le MM③HX sera la.  J'ai pas lu quelque part que le MMXVAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O8/O9/96 ⑨Aa 12:47DAMDS de ⑧Zappy pour ALGORITHMESEAB`②gGbossait en entier ou je sais pas koi?
  196. 'fin bref, on s'en tape pour l'instant.VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O8/O9/96 ⑨Aa 12:15DAMDS de ⑧E.T pour ALGORITHMESEAB`②gGR⑨Bef:]Zappy\ (8/O9 ⑨Aa 2:15)
  197. yo.
  198. bon tu fut limpide et clair, ce qui n'est sans doute pas une de mes qualite, mais j'emet quelques reserve qd a ton mapping co③Hrrige.
  199. tut le monde a l'air de dire que 2 mul  et 1 div ca bouffe plein de temps, mais en ce qui me concerne, ca prend 3 cyclesen tout et pour tout, because je fais tout au copro, le 2 muls prennent 1 cycle chacune, et la division s'execute pdt que je mappe lineairement 8 ou 16 pixels, ce qui veut dire qu'elle ne prends rien du tout.VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O8/O9/96 ⑨Aa 12:19DAMDS de ⑧E.T pour ALGORITHMESEAB`②gGresultat.
  200. c'est plus precis par ce sue c'est au copro, c'est pas plus lent parce que y a aucune risque de cache miss.
  201. la seule difference reside dans l'interpolation qui se fait tout en flottant et pour③H toute les valeurs. le probleme est ③Hdonc le nombre de registre, m'enfin ca c'est pas nouveau, et les operations qui sont un peut plus lente car elle se traite une seule a la fois.
  202. voila. c'est la methode que j'utilise.  elle vaut ce qu'elle vaut.
  203. elle est surment un peut plus lente qu'en accedant a une table, mais elle a VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O8/O9/96 ⑨Aa 12:21DAMDS de ⑧E.T pour ALGORITHMESEAB`②gGl'avantage d'etre beaucoup plus precise.et si dans quake vous pressez F11 vous verez ce que vous n'obtiendrez jamais avec une table.
  204. voila je suis pas la pour vendre mes tapis, donc comme l'eu dit chevalier laspales ... c'est vous qui voyez...
  205. a+VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O8/O9/96 ⑨Aa O2:18DAMDS de ⑧Zappy pour ALGORITHMESEAB`②gGR⑨Bef:]E.T\ (8/O9 ⑨Aa O:O9)
  206. C'est clair, si, mais uniquement une fois qu'on a compris!
  207. Par exemple, on peut se demander pourquoi on interpolerait 1/Z lineairement, vu que c'est tout sauf lineaire (tu l'as dit, c'est hyperbolique).
  208. Proposons une autre approche:
  209. En mapping lineaire, on passe de U1 a U2grace a un pas constant. Le but du jeu en mapping corrige est de realiser la meme chose suivant un increment hyperbolik.V③HAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O8/O9/96 ⑨Aa O2:23DAMDS de ⑧Zappy pour ALGORITHMESEAB`②gGUne idee serait de considerer non pas une texture 2D, mais une texture 3D, et deplaquer cette derniere sur un poly 3D, tout se ferait lineairement puisque le nombre de dimensions est le meme d'un cotecomme de l'autre.
  210. En partant la dessus, on peut considererque U1 et U2 ne sont que les coordonneesPROJETEES de cette texture 3D. On calcule alors Z1*U1 et Z2*U2 pour obtenir U1E et U2E, coordonnees "X" dans un espace 3D puisque la formule de projection est Xproj=Xespace/Zespace. (et donc Zespace*Xproj(=Zespace*U) est bien egal a Xespace). Bien. Il est donc legitime, maintenanVAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O8/O9/96 ⑨Aa O2:27DAMDS de ⑧Zappy pour ALGORITHMESEAB`②gGd'interpoler LINEAIREMENT de Z1*U1 a Z2*U2 puisque ca represente seulement des Xdans l'espace..
  211. Pour realiser la projection, et retomber sur des coordonnees U et V classiques (mais projetees, cette fois, donc n'etant pas espacees par un pas constant), il suffit de diviser par Z, comme d'habitude. Ce Z, on peut lui aussi l'interpoler lineairement, puisque c'est une coordonnee 3D.
  212. Il en resulte que pour realiser du mapping corrige, il suffit donc de calculer au prealable Z1*U1 et Z2*U2, puis deVAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O8/O9/96 ⑨Aa O2:31DAMDS de ⑧Zappy pour ALGORITHMESEAB`②gGfaire 2 interpolations lineaires et une DIV par point.(pour le U!)
  213. Pour U&V ca fait donc 2 DIV. 
  214. La methode d③He ET donne 2 mul et 1 Div au lieu③H de 2 Div. Laquelle est meilleure? La sienne! Ces 2 methodes sont les memes. Les formules sont les memes en les transformant un peu. La sienne est issue d'un petit travail visant a supprimer le DIV par Z et a le remplacer par un MUL par 1/Z, plus avantageux. Ce calcul conduit a interpoler 1/Z lineairement. C'est FAUX theoriquement, mais ca donne en pratique les memes valeurs pour U et V queVAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O8/O9/96 ⑨Aa O2:34DAMDS de ⑧Zappy pour ALGORITHMESEAB`②gGla methode proposee plus haut. Et voila.2 mul/1 div, c'est mieux que 2 div, memesi y'a une operation en plus.
  215. Bon... allons un peu plus loin. Pour calculer 1/z a partir de z, on peut aussi utiliser une table, ce qui transforme le div en mul, ce qui donne 2 mul/pt, et donc c'est "ma" methode qui redevient avantageuse. JE SAIS! Une table, c'est un acces ram, c'est un cache-miss possible a 40 cycles, c'est pas beau! Mais il ne faut pas non plus etre aveugle et appliquer betement les formules qu'on vous donne... la correction de perspective ne sertVAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O8/O9/96 ⑨Aa O2:37DAMDS de ⑧Zappy pour ALGORITHMESEAB`②gGa RIEN dans toute la partie ou la courbe 1/Z est quasiment lineaire.. Elle se divise en gros en 3 morceaux:
  216. . un premier plus ou moins vertical et lineaire: on s'en fout, pour nous les polys sont derriere l'observateur, rien a foutre.
  217. .une seconde hyperbolique ou la correction est utile.
  218. .une troisieme presque lineaire, qui correspond de surcroit aux polys eloignes, souvent petits et/ou caches par d'autres. La correction ne sert a rien pour eux.VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O8/O9/96 ⑨Aa O2:39DAMDS de ⑧Zappy pour ALGORITHMESEAB`②gGBref: la correction est utle sur un faible domaine, ce qui limite fortement la taille d'une eventuelle table.
  219. Mieux: on vous a prouve par la pratique que la correction tous les pixels etait inutile. De meme, stocker toutes les valeurs de 1/z est inutile. On peut stocker uniquement une valeur tous les...16 Z, allez. La table obtenue n'est vraiment par bien grosse et tient constamment dans le cache vu qu'on y fait appel constamment. Et je ne vous cache pas qu'un acces ram bien pense, dans le cache, c'est 0.5 cycle. Je dis qu'on peut commencer a envisager de coder la chose....VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨B③HepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O8/O9/96 ⑨Aa O2:44DAMDS de ⑧Zappy pour ALGORITHMESEAB`②gG
  220. Encore d'autres idees:
  221. Au lieu de faire une interpolation lineaire de U et V on peut tout simplement essayer de faire une interpolation quadratique, voire cubique.
  222. En clair, au lieu de:
  223. u=u+pas
  224. Faire:
  225. u=u+pas
  226. pas=pas+inc  (quadra)
  227. Ou:VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O8/O9/96 ⑨Aa O2:47DAMDS de ⑧Zappy pour ALGORITHMESEAB`②gGu=u+pas
  228. pas=pas+inc
  229. inc=inc+inc2  (cubique)
  230. Ce qui ferait 1 add ou 2 en plus, et pasdes mul ou③H div. Idem, on peut les faire tous les N pixels egalement.
  231. Tout le probleme est d'approximer 1/z grace a un poly de degre 2 (quadra) ou 3 (cubique). Bon. J'ai essaye que la quadra, et il en resort que c'est impossible d'approximer totalement la courbe avec unbete poly de degre 2. Mais, comme je l'ai dit avant, il suffit d'approximer la partie de courbe qui nous interesse! EtVAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O8/O9/96 ⑨Aa O2:5ODAMDS de ⑧Zappy pour ALGORITHMESEAB`②gGca, c'est faisable..
  232. Pour le moment je bloque quand meme sur un point delicat: le calcul de inc2, inc et pas! C'est bien joli de savoir qu'en theorie ca marche, mais en pratique j'ai pas obtenu beaucoup de resultats (j'avoue que c③Ha me passionne pas trop le mapping corrige! Je trouve meme que ca n'a aucun interet, huhu)
  233. Par ailleurs l'approximation ne sera..qu'une approximation justement. Avec un poly de degre 3 on obtient de meilleurs resultats, et pour un add en plus, hein, ca va. Mais le probleme est le meme, leVAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O8/O9/96 ⑨Aa O2:52DAMDS de ⑧Zappy pour ALGORITHMESEAB`②gGcalcul des increments.
  234. Oh..c'est sans doute trouvable sans tropde difficultes, on avait meme etabli des formules avec Patapom un jour, et on les avait verifiees en C, ca avait l'air de marcher.. mais le papier est reste chez lui, huhu, demandez les lui!
  235. Vala vala, affaire a suivre.VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O8/O9/96 ⑨Aa O2:11DAMDS de ⑧Zappy pour ALGORIT③HHMESEAB`②gGR⑨Bef:]Crac\ (7/O9 ⑨Aa 14:52)
  236. Je trouve que vous vous compliquez t③Hout de meme beaucoup la vie.
  237. Tracer suivant les lignes de Z constant est un sujet qui a effectivement deja 
  238. ete aborde ici meme. Je crois bien que  ca a meme deja ete code dans une demo 
  239. par Rixed.
  240. Malheureusement je suis a peu pres sur  que ca pose beaucoup plus de problemes  que ca n'en resoud. Ne serait-ce que    pour eviter les fameux points noirs que cette methode produit. De plus, si caVAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O8/O9/96 ⑨Aa O2:15DAMDS de ⑧Zappy pour ALGORITHMESEAB`②gGpouvait avoir un interet sur des becanesmoins puissantes qu'un gros Pentium (je parle d'un interet pratique, niveau vitesse. Ca a TOUJOURS un interet theorique,meme si personne s'en sert...), il me semble que ca n'en a plus aucun aujourd'hui: d'une part parce qu'un mul, ca prend plus trop de temps et ca en prendra de moins en moins, d'autre part - et surtout- parce que tracer des polys autrement qu'horizontalement est un suicide pur et simple au niveau des cache-miss. Je vousrappelle le nombre de cycles perdus par cache-miss par rapport a un mul, ou c'est bon?VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O8/O9/96 ⑨Aa OO:O6DAMDS de ⑧E.T pour ALGORITHMESEAB`②gGR⑨Bef:]SYNTAX\ (7/O9 ⑨Aa 23:52)
  241. bon si j'ai bien compris, j'ai ete aussiclair que le trou du cul de dark vador.
  242. tentons une autre approche.
  243. tu prends u1=0 z1=100
  244. et u2=256 z2=200
  245. soit l=256 (l est la longueur du segment)
  246. soit pu1=(u2-u1)/l=1 ok?
  247. soit pu2=(u2/z2-u1/z1)/l=0.005
  248. enfin pz=(1/z2-1/z1)/l=???VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O8/O9/96 ⑨Aa OO:O9DAMDS de ⑧E.T pour ALGORITHMESEAB`②gGdonc pu1 est le pas du u calculer de facon lineaire.
  249. pu2 et pz eux vont servir au mapping corriger
  250. pour le lineaire t'aura
  251. u=u1;
  252. for(i=0;i<l;i++)
  253. [
  254.   u+=pu1;
  255. ]
  256. voila pour le cal③Hcul est lineaireVAB`②gT @AvancerGZ ]③H Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O8/O9/96 ⑨Aa OO:12DAMDS de ⑧E.T pour ALGORITHMESEAB`②gGpour le corrige
  257. us=u1/z1
  258. zs=1/z1
  259. for(i=0;i<l;i++)
  260. [
  261.   u=us/zs;
  262.   us+=pu2;
  263.   zs+=pz;
  264. ]
  265. voila la meme chose en corrige. t'essaye les 2 exmples tu regarde a difference  (en rajouttant un putpixel(i,u) par exemple et tu veras que dans un cas t'as une droite et dans l'autre ben t'as pas une droite. voila.VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O7/O9/96 ⑨Aa 23:52DAMDS de ⑧SYNTAX pour ALGORITHMESEAB`②gGR⑨Bef:]E.T\ (7/O9 ⑨Aa 22:4O)
  266. Hi! ouh la...z'allez me dire ke je suis nul etc mais bon:
  267. (u/z)/(1/z)=(u/z)*z=u donc ou est l'in- teret?
  268. ou alors y'a z et z...le u/z,c kel z?
  269. sinon 1/z,on interpole z lineairement?
  270. pfou,ke de ③Hz!
  271. a+VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O7/O9/96 ⑨Aa 22:4ODAMDS de ⑧E.T pour ALGORITHMESEAB`②gGR⑨Bef:]ODIN\ (6/O9 ⑨Aa 23:14)
  272. en ce qui concerne le mapping corrige   tu peux au moins arriver a 1 seul div et2 muls par point pour la bonne et simpleraison que tu divise tes coordonnees de mapping par la meme valeur a savoir 1/z.enfin bon passons la theorie. j'm'en vais t'expliquer comment je mappe ca ira plus vite.
  273. passons outre les problemes mathematique, pour mapper corrige i faut interpoler de facon hyperbolique (je crois que c'est le terme.!!!) enfin suivant 1/z...VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O7/O9/96 ⑨Aa 22:43DAMDS de ⑧E.T pour ALGORITHMESEAB`②gGprenons donc le prb a l'envers a une certaine coordonnee on va vouloir u et v   qui sont tes coordonnees dans ta texture. le probleme c'est qu'on veut pas interpoler u et v lineairement. on interpole donc u/z et v/z.
  274. jusque la c'est clair??? au lieu de calculer le pas pour u et v tu le calcule pour u/z et v/z.
  275. le bleme est donc de recuperer u et v   lorsqu'on a u/z et v/z. faut bien evidement multiplier par z!!! mais quel z???VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O7/O9/96 ⑨Aa 22:47DAMDS de ⑧E.T pour ALGORITHMESEAB`②gGben un z corrige lui aussi ce qui veut  dire qu'il faut egalement interpoler 1/zok?
  276. donc a un point donne on a u/z v/z et   1/z. voila ben pour retrouver u et v on fait:
  277. u = (u/z)/(1/z)
  278. v - (v/z)/(1/z)
  279. on y arrive...
  280. soit 2 divisions. mai③Hs l'observateur agueri remarquera qu③H'on divise deux fois par la meme chose en l'occurence 1/z.
  281. donc on calcule z'=1/z et...VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O7/O9/96 ⑨Aa 22:5ODAMDS de ⑧E.T pour ALGORITHMESEAB`②gGoh miracle
  282. u = (u/z) * z'
  283. v = (v/z) * z'
  284. et voila le travail. 2 muls et 1 division pour mapper correctement 1 pixel.
  285. heureuseument comme on est des blaireaux,on va pas corrige tous les pixels, parce que sinon demain on y est encore. on  corrige donc tout les n pixels (4,8 ou  16). dans quake, c'est tout les 16 pixels. entre chaque pixel corrige, ben tu mappe lineairement.VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O7/O9/96 ⑨Aa 22:51DAMDS de ⑧E.T pour ALGORITHMESEAB`②gGvoila. je sais pas si j'ai ete bien clair, m'enfin ca t'aura peut etre eclaire.VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O7/O9/96 ⑨Aa 14:53DAMDS de ⑧Crac pour ALGORITHMESEAB`②gGR⑨Bef:]ODIN\ (6/O9 ⑨Aa 23:14)
  286. Sinon, de totue facon, il parait qu'"E.T" a r⑨Becup⑨Ber⑨Be l'algo de Quake, et qu'il l'a impl⑨Bement⑨Be.VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O7/O9/96 ⑨Aa 14:38DAMDS de ⑧Crac pour ALGORITHMESEAB`②gGR⑨Bef:]ODIN\ (6/O9 ⑨Aa 23:14)
  287. Pour le mapping corrig⑨Be, finalement, comme le disais quelqu'un il y a quelque temps, la solution serait de tracer suivant des lignes obliques.
  288. On voit que si le triangle est horizontal (donc y=f(z): z constant sur une ligne de balayage) il suffit de changer le pas de l'interpolation lin⑨Beaire de la ligne de balayage. Donc, si on veut faire du 3/2, on modifie le code de trac⑨Be toutes les N lignes.
  289. Imaginons maintenant le cas o⑨Au le triangle est vertical. (x=f(z) ou z=f^-1(x): z constant pour un x donn⑨Be) Il suffiraitVAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O7/O9/96 ⑨Aa 14:43DAMDS de ⑧Crac pour ALGORITHMESEAB`②gGde tracer verticalement au lieu de le faire horizontalement.
  290. De ces deux cas, on en d⑨Beduit qu'il suffit de trouver la direction de la ligne de projection o⑨Au z est le plus invariant p③Hossible (je dis pas invariant, car je me demande si elle existe: si c'est vraiment une droite, et pas une courbe).
  291. A partir de l⑨Aa, il suffira tout simplement de tracer suivant cette direction. Ca devient un peu plus compliqu⑨Be pour la recherche de la position du d⑨Bebut du trac⑨Be ⑨Aa l'⑨Becran, car on incr⑨Bemente x ET y d'une valeure diff⑨Berente de 1.
  292. Autre probl⑨Aeme: ne pas laisser de trous. L⑨Aa, il devrait suffir de calculer VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O7/O9/96 ⑨Aa 14:49DAMDS de ⑧Crac pour ALGORITHMESEAB`②gGjudicieusement les incr⑨Bements de bords en x et y. Bien evidemment, on ne peut plus vraiment parler du 3/2, car on repasse desfois plusieurs fois au m⑨Ceme endroit. (moi, par exemple, ca me contrarie un peu pour ma routine qui le fait en transparence)
  293. Voila, on arrive ⑨Aa la derni⑨Aere contradiction du mapping r⑨Beel.
  294. Le fait de tracer un triangle est d⑨Bej⑨Aa ⑨Aa l'origine quelque chose de faux, donc fau③Hdra pas s'⑨Betoner si on d⑨Beborde de la texture. Solution probable: ne pas tracer un triangle, mais une approximation de la forme ⑨Aa tracer par des s⑨Beries de segments (nouveau segment toutes les N VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O7/O9/96 ⑨Aa 14:52DAMDS de ⑧Crac pour ALGORITHMESEAB`②gGlignes). Il faudrait donc recalculer la pente de bord du triangle toutes les N lignes.
  295. Voila l'analyse que j'en fait pour l'instant dans l'absolu.
  296. Bien evidemment, puisque c'est moi qui propose cette m⑨Bethode, ce sera ⑨Aa moi de l'impl⑨Bementer: soyez patient, si vous voulez que je vous en donne les conclusions je suis pas en trop bonne position pour me lancer la dedans avec la rentr⑨Bee et mon d⑨Bem⑨Benagement.
  297.               CracVAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O7/O9/96 ⑨Aa O2:O3DAMDS de ⑧CREATEUR pour ALGORITHMESEAB`②gGR⑨Bef:]Crac\ (6/O9 ⑨Aa 22:1O)
  298. Bah moi vu queje suis sur PC donc j'accepte les articles theoriques(genre tri,bsp,algo de mapping et co) et les articles 100% pc....
  299. Enfin bon,si ya que moi et toi que ca dit,on va laisser tomber....allez les gars,bougez vos fesses,on en a rien a foutre si ya des fautes d'orthographe et des conerie du genre...a la limite,si ya que les gens du club qui on le diskmag,c'est pas grave...des volontaires?VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①③H③H④ B_②gT GOMessageL ⑧@du O6/O9/96 ⑨Aa 23:14DAMDS de ⑧ODIN pour ALGORITHMESEAB`②gGsalut,
  300. quelqu'un avait parle y'a qq mois d'une methode pour faire du mapping corrige avec 2 muls/pt, c'etait pas un canular?
  301. car, personnellement j'en suis a 2 muls et 2 divs par point et je vois vraiment pas comment faire moins...
  302. mais je ne demande qu'a apprendre, donc si une ame charitable pouvait pour une fois nous faire un expose clair, ca serait tres cool...VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O6/O9/96 ⑨Aa 22:1ODAMDS de ⑧Crac pour ALGORITHMESEAB`②gGR⑨Bef:]CREATEUR\ (6/O9 ⑨Aa 17:33)
  303. On limite ca au PC, au le FAlcon est autoris⑨Be ?
  304. Car sinon, je resors mes bon vieux articles que j'avais fait pour HTC et fauCONtact.
  305. (note pour patapom: gueule pas, ca fait au moins 1 semaine que j'ai pas allum⑨Be mon falcon)VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O6/O9/96 ⑨Aa 17:33DAMDS de ⑧CREATEUR pour ALGORITHMESEAB`②gGR⑨Bef:]E.T\ (3/O9 ⑨Aa 23:44)
  306. Bon voila,les contrib ici etant de bon niveau,je me demande si vous pourriez pas les reunir dans un diskmag...ceci est un projet...donc que les personne interesse me mette un message en bal ou ici,avec le sujet de l'article qu'ils veulent ecrire....
  307. Enfin voila,si ya plus de 10 articles interessant je veux bien faire une interface....
  308. Ca vous dis?VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O3/O9/96 ⑨Aa 23:44DAMDS de ⑧E.T pour ALGORITHMESEAB`②gGR⑨Bef:]Geek\ (3/O9 ⑨Aa O:51)
  309. quake est bien en Z buffer, sauf qu'en ce qui concerne les decors, ben y a pas de test de pixel...
  310. c'est uniquement ensuite pour inserer les objets dans le decor fixe qu'il utilisent le Z buffer.VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪♪Ve:sH B_②gT GOMessageL ⑧@du O3/O9/96 ⑨Aa 22:58DAMDS de ⑧Crac pour ALGORITHMESEAB`②gGR⑨Bef:]E.T\ (2/O9 ⑨Aa 22:44)
  311. Le mapping corrig⑨Be en Z, j'y ai un peu r⑨Befl⑨Bechi, dans l'optique de garder une boucle de base ⑨Aa 3/2, en recalculant 1 ligne toutes les N, mais finalement, ce que j'en pense, c'est que dans la plupart des cas, ca fait pas beau. Le cas d'un triangle vertical montre qu'on peut pas faire comme ca, puisque toutes les coordonn⑨Bes y en projection on le m⑨Ceme Z. C'est en X, que ca varie.
  312. Ensuite, il y a des m⑨Bethodes plus lentes mais plus exactes dont certains parlent et que j'ignore.
  313.                 CracVAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O3/O9/96 ⑨Aa 22:5ODAMDS de ⑧Crac pour ALGORITHMESEAB`②gGR⑨Bef:]E.T\ (2/O9 ⑨Aa 22:44)
  314. Oui, bien evidemment, c'est exactement ce que fait mon clipping, sauf que j'utilise le cone (d③He base car⑨Bee) au mom③Hent du clipping 2D, en ayant gard⑨Be les coordonn⑨Bees 3D.
  315. Il faut maintenant que je voie si c'est vraiment plus rentable de tester si un coin du triangle sort de l'⑨Becran ⑨Aa partir de la projection 2D, ou de sa coordonn⑨Bee 2D. Je pense que le test sur la coordonn⑨Bee 2D est bien plus rapide, une simple comparaison, et tr⑨Aes peu de triangles sont dehors, en temps normal, c'est pourquoi, jusqu'⑨Aa ce qu'on me prouve le (...)VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O3/O9/96 ⑨Aa 22:53DAMDS de ⑧Crac pour ALGORITHMESEAB`②gGcontraire, je pense qu'il est pr⑨Bef⑨Berable de faire ce genre de m⑨Belange clipping 2D/clipping 3D.
  316. (test pour savoir si on sort de l'⑨Becr③Han ⑨Aa partir des coordonn⑨Bees 3D: 3 muls et une addition: savoir si on est du cot⑨Be positif ou n⑨Begatif du demi espace d⑨Belimit⑨Be par le plan en question du cone)
  317.        Voila ce que j'en pense.
  318.                  CracVAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessag③HeL ⑧@du O3/O9/96 ⑨Aa OO:51DAMDS de ⑧Geek pour ALGORITHMESEAB`②gGR⑨Bef:]E.T\ (2/O9 ⑨Aa 22:45)
  319. du z-buffer ds quake? OU?
  320. a part ca zoomez sur un perso (f11) 
  321. et admirez le clipping gauche super foireux.VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O3/O9/96 ⑨Aa OO:O3DAMDS de ⑧STEF2 pour ALGORITHMESEAB`②gGR⑨Bef:]E.T\ (2/O9 ⑨Aa 22:44)
  322. salut a tous....
  323. S'il y avait une ame charitable qui voudrait bien me remettre en bal ou ici l'algo (pas en asm hein! juste l'algo de la boucle principale ds le la③Hnguage le plus smple possible..) du mapping avec correction ca serait cool...car la discution dessus remonte a loin...
  324.  Merci d'avance..VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O2/O9/96 ⑨Aa 22:44DAMDS de ⑧E.T pour ALGORITHMESEAB`②gGR⑨Bef:]Crac\ (3O/O8 ⑨Aa 22:24)
  325. heu si je peux me permettre de le dire.
  326. si tu clippe dans le cone au lieu de clipper en 2D, ben ton probleme de deformation de mapping n'existe plus!!!③H (heu le cone, c'est la pyramide pour moi...)
  327. et si tu mappes en corigeant le Z (ce qui ne prend pas autant de temps que ce que l'on pense generalement), ben t'evite de te prendre la tete a chercher des methodes plusqu'etrange....
  328. enfin voila mon avis....VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④@AQ ⑧`]NGRLCTFEBLG\⑨.@Contact:Gpippin!
  329. @]⑧]N*L    Envoi
  330. ①④ B_②gT GOMessageL ⑧@du O2/O9/96 ⑨Aa 22:45DAMDS de ⑧E.T pour ALGORITHMESEAB`②gGdans quake, pour ne citer que lui, il   n'ont pas fait dans la dentelle.
  331. mapping corrige+Z buffer en voila le travail...
  332. c'est biensur un avis personnel...VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O1/O9/96 ⑨Aa 13:37DAMDS de ⑧DUMBO pour ALGORITHMESEAB`②gGR⑨Bef:].ribbon\ (31/O8 ⑨Aa O:O1)
  333.   Oui c'est bien ca. Le lightsource 
  334. c'est que pour les armes qui flottent
  335. dans l'air. N'empeche que c'est tres
  336. bien foutu quand meme.VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du O1/O9/96 ⑨Aa 11:56DAMDS de ⑧NONSENSE pour ALGORITHMESEAB`②gGR⑨Bef:]ONC\ (28/O8 ⑨Aa 23:46)
  337. j'ai teste le phong quadratique.
  338. (cf imphobia 10 ou 11)
  339. je n'ai pu le faire que su③Hr un carre.caril faut 3 points pour tracer une ③Hligne horizontale.en fait,c'est pas trop precismais ca rend mieux qu'un gouraud,et puis avec seulement 2 add ,c mieux que du vrai phong.(en rapidite).
  340. le pb,c qu'il fo calculer le 3eme point de preference au milieu de la ligne.et puis faire des precalculs avant la boucle.par rapport au phong(methode double mapping facon jmagic),j'ai pas fait encore de comparaisons encore parce que j'ai pas trop optimise mes sources.VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du 31/O8/96 ⑨Aa O7:O9DAMDS de ⑧Zappy pour ALGORITHMESEAB`②gGR⑨Bef:]Crac\ (3O/O8 ⑨Aa 22:24)
  341. J'ai jamais essaye le Phong quadratique mais il me semble que ca existe sous le nom d'optimisation de Bishop. Je crois  qu'on en avait deja parle dans ce club, mais j'ai un peu oublie...
  342. Si quelqu'un fait des backups des msgs  du club....VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du 31/O8/96 ⑨Aa OO:O1DAMDS de ⑧.ribbon pour ALGORITHMESEAB`②gGR⑨Bef:]DUMBO\ (3O/O8 ⑨Aa 19:57)
  343. Ds AQuakeG ya pas de gestion des lightsources!! du - pour les d⑨Becors.paske les armes ke porte le joueurs (genre la HACHE,ou le fusil ⑨Aapompe) sont quant ⑨Aa eux lightsourc⑨Bes.
  344. Pour ce ki est des d⑨Becors,ou des armes,et armures ki jonchent le sol,elles sont JUSTE MAPPEES!! C tout! ni + ni -!
  345. Si il rame sur DX2 (mm en 320x200) C du au fait ke les scenes font 1 nombre DINGUE de faces!!
  346.                   Voila!VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du 3O/O8/96 ⑨Aa 22:25DAMDS de ⑧Crac pour ALGORITHMESEAB`②gGR⑨Bef:]Crac\ (3O/O8 ⑨Aa 21:55)
  347. Pour avoir la premi⑨Aere page de mon message qui suit, faites 9+suite.VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du 3O/O8/96 ⑨Aa 21:55DAMDS de ⑧Crac pour ALGORITHMESEAB`②gGR⑨Bef:]Phong\ (suite, grr, [supr] est ⑨Aa cot⑨Be de [home])
  348. Donc, je disais que du coup, on ne voit que les premiers pixels de la "texture", et bien ⑨Bevidemment de taille ⑨Benorme (puisque le triangle avant d'⑨Cetre clipp⑨Be 2D est gigantesque).
  349. 1b) La solution que je propose est donc de se la jouer un peu plus fin, en faisant le clipping 2D, quand on recalcule la position dans la texture, en utilisant les coordonn⑨Bees 3D du triangle. (enfin, j'ai ⑨Becrit les formules, mais pour l'instant je me contente de ne pas modifier la position sur la texture, c'est ce quiVA③HB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du 3O/O8/96 ⑨Aa 22:OODAMDS de ⑧Crac pour ALGORITHMESEAB`②gGfait le moins moche ...)
  350. 2) Vient maintenant le probl⑨Aeme o⑨Au 2 normales d'un triangle n'ont pas le m⑨Ceme signe en Z. (ce sont des choses qui arrivent quand c'est pas l'objet qui tourne, mais l'observateur, quoique ca arrive aussi quand c'est l'objet qui tourne, mais celle qui a un Z n⑨Begatif ne l'est pas de beaucoup)
  351. 2b) La solution que je fais, c'est qu'⑨Aa l'inverse de ce que proposais patapom (dans son article), je ne change pas la r⑨Bef⑨Berence de la texture, mais je fais rotaer les normales, d'une rotation inverse de ce qui fa③Hudrait pour aller sur leVAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du 3O/O8/96 ⑨Aa 22:O5DAMDS de ⑧Crac pour ALGORITHMESEAB`②gGvecteur lumi⑨Aere. Une fois ceci fait, je regarde si la somme des Z des 3 normales est positif ou n⑨Begatif. S'il est n③H⑨Begatif, j'utilise ce que j'appelle la texture compl⑨Bementaire du phong. Le point qui est au centre est le point pour une normale (0,0,-1), celui qui est au milieu ⑨Aa gauche (1,0,0), et celui com⑨Aetement ⑨Aa droite (0,0,1) (la, j'ai pleins de candidats sur la texture qui lui correspondent, mais c'est pas grave, car la somme des Z des 3 normales est <0, donc tr⑨Aes peu probable qu'on s'en approche) Bon j'esp⑨Aere que vous avez compris ⑨Aa quoi ressemble cette texture "inverse". Ensuite, dans ce cas o⑨Au c'est <0 je fais une op⑨BerationVAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du 3O/O8/96 ⑨Aa 22:1ODAMDS de ⑧Crac pour ALGORITHMESEAB`②gGque je vous d⑨Becrirais plus tard et que j'appellerai yoplaboum.
  352. Bon, si la somme est >0, il reste donc le pb o⑨Au certaines normales ont le z<0. Pour toutes ces normales, je recalcule l'emplacement sur la texture grace ⑨Aa une table que j'appelle table d'inversion. Si la texture fait 256*256. un point plac⑨Be en 10,0 (avec l'otigine au centre) sera plac⑨Be en 1③H18,0. C'est ⑨Aa dire, si je trac③He un cercle de rayon 64, qui correspond aux z=0, je me place donc exactement de l'autre cot⑨Be du cercle.
  353. L'op⑨Beration yoplaboum consiste ⑨Aa faire subir l'inversion par la table de toutes les coordonn⑨Bees. Voila, cette op⑨BerationVAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du 3O/O8/96 ⑨Aa 22:13DAMDS de ⑧Crac pour ALGORITHMESEAB`②gGsemble commpliqu⑨Be, mais c'est la seule que j'ai trouv⑨Be et qui est satisfaisante, car sinon, ⑨Aa la lisi⑨Aere du z=0 pour la normale, ca fait un gros caca.
  354. hop, fini pour le phong avec mapping.
  355. Parlons maintenant de ce qu'appelle createur le phong quadratique. Je sais pas trop de quoi il parle, mais j'y ai r⑨Befl⑨Bechi depuis qq jours, en voyant ⑨Aa quel point ca faisait moche, le mapping par distortion quand un triangle est trs⑨Ae tr⑨Aes proche de l'observateur.
  356. Je me suis dit, aui dit quadratique, dit 2nd degr⑨Be, donc polynom⑨Be de degr⑨Be 2. JE me suis dit, faisons un DL de d⑨Begr⑨Be 2VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du 3O/O8/96 ⑨Aa 22:17DAMDS de ⑧Crac pour ALGORITHMESEAB`②gGde la fonction f(x,y) qui renvoit l'intensit⑨Be d'un point en fonction de x et y les coordonn⑨Bees des projections. Du coup, 2 additions par point, normalement.
  357. On aurait f0(x,y) qui approxime f(x,y)
  358. f0(x,y)=a+bx+cy+dx^2+exy+fy^2
  359. Et hop, je commence ⑨Aa chercher la fonction f(x,y) (la vraie). Au bout de 3 page de calculs, je l'obtiens, du moins sans d⑨Bevelopper toutes les sous fonctions.
  360. De la, je me dit, cherchons les d⑨Beriv⑨Bees premi⑨Aeres et secondes par rapport ⑨Aa x et y. Cependant, croyez moi, j'en suis ⑨Aa 8 pages de calculs, et j'ai toujours pas de facon explicite la d⑨Beriv⑨Bee premi⑨Aere par rapport ⑨Aa x, d'o⑨Au ma fatigue. (...)VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du 3O/O8/96 ⑨Aa 22:22DAMDS de ⑧Crac pour ALGORITHMESEAB`②gGCe soir, alors que j'⑨Betais au beau milieu de la mer m⑨Bediterrann⑨Beenne ⑨Aa 200m des c⑨Cotes en petit maillot de bain, il m'est venu une id⑨Bee: et si je faisais comme pour les courbes de bezier (enfin, pas bezier, la courbe cracounet qui passe par N points): je fixe plusieurs valeurs de passage de ma fonction. 6 inconnues dans mon polyn⑨Come f0(x,y), donc 6 points de passage (par exemple les 3 coins du triangle, et les milieux des 3 cot⑨Bes). Voila, ce qui fait un syst⑨Aeme ⑨Aa 6 inconnues et 6 ⑨Bequations. Donc inverser une matrice 6*6. nb de mul et div: 36*k  Surement mieu que la formule horrible obtenue apr⑨Aes avoir calculer toutes les d⑨Beriv⑨Bees deVAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du 3O/O8/96 ⑨Aa 22:24DAMDS de ⑧Crac pour ALGORITHMESEAB`②gGde la vraie fonction f(x,y).
  361. Enfin bon, voila o⑨Au j'en suis.
  362. Dites moi ce que vous pensez des 2 solutions que j'apporte aux 2 probl⑨Aemes du phong par mapping, et de ma solution pour le phong quadratique, de la vraie, si vous la connaissez.
  363. Voila, c'est fini, j'attends vos r⑨Beponses.
  364.             CracVAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du 3O/O8/96 ⑨Aa 21:48DAMDS de ⑧Crac pour ALGORITHMESEAB`②gGR⑨Bef:]Phong\
  365. Moi, j'ai envie de parler un peu de phong. Ca fait quelque mois, que je suis la dessus, et je dois avouer que la technique qui consiste ⑨Aa faire du mapping pose certains probl⑨Aemes (je ne dit aucunement que de faire du mapping, c'est pas bien, c'est toujours ce que je fais) quand on veut faire autre chose qu'une d⑨Bemo.
  366. Voila d⑨Bej⑨Aa 2 probl⑨Aemes:
  367. 1) quand on fait le clipping 3D du z min, ca fait super moche. Car on coupe avec un z le plus petit possible, ce qui fait que la projection x et/ou y est gigantesque, et du coup on ne voit que lesVAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du 3O/O8/96 ⑨Aa 19:57DAMDS de ⑧DUMBO pour ALGORITHMESEAB`②gGR⑨Bef:]SYNTAX\ (29/O8 ⑨Aa 21:O6)
  368.   Exact Quake est en vrai 3d, et meme
  369. en lightsource si on en croit les reflets de la lumiere sur les armes qui
  370. tournent sur elles-meme. M'enfin c'est
  371. vrai qu'on peut se demander si les
  372. machines 'standard' pour utiliser quake
  373. sont sorties... Sur un p100 c'est tout
  374. juste jouable (l'action est tres tres
  375. rapide, ca demande une fluidite minimum)en 320x200, alors sur un dx2, c'est plusque comique...VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du 29/O8/96 ⑨Aa 21:O6DAMDS de ⑧SYNTAX pour ALGORITHMESEAB`②gGR⑨Bef:]Zappy\ (29/O8 ⑨Aa 2:55)
  376. Hi! zzzzavez vu QUAKE !!!????
  377. j'me balade a la FNAC et la QUAKE tournea donf sur 1 petit ecran en 320*200
  378. (j'me dis c pour ke ca marche sur leur
  379. "petit" pc)
  380. et pi je demande a un gars:sur quelle   machine ca tourne,la?
  381. l'autre:euuuuuuuuuuhhhhhh (il cherche)
  382. un PENTIUM 120......ok...merci...
  383. notez bien:si zavez qu'un P120 fo resteren 320*③H200 sinon ca rame...
  384. enfin on peut rien leur reprocher vu comme c b⑨Co...y'a de la vrai 3d ds l'air...VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du 29/O8/96 ⑨Aa O2:55DAMDS de ⑧Zappy pour ALGORITHMESEAB`②gGR⑨Bef:]ODIN\ (27/O8 ⑨Aa 23:43)
  385. Desole, c'etait pas tres clair. *8)VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①*④ B_②gT GOMessageL ⑧@du 28/O8/96 ⑨Aa 23:46DAMDS de ⑧ONC pour ALGORITHMESEAB`②gGRef: cui ki ve
  386. G un pb en asm PC...
  387. au debut de mon prog, j'ajuste la memoire allou⑨Be par le programme grace a la fonction 4A de l'int 21, ceci pur pouvoir ensuite allouer de la memoire.
  388. Le probleme c'est que sur un vieux .COM tout simple, tout baigne, mai③Hs pas sur celui-ci, le fag carry est mis, et l'interruption me renvoit 7 dans ax, j'ai regard⑨Be dans mon bouquin asm mais l'explication de cette erreur est plutot floue, et je ne sais pas ce qui la provoque. quelqu'un as une idee de la cause probable??VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④ B_②gT GOMessageL ⑧@du 27/O8/96 ⑨③HAa 23:43DAMDS de ⑧ODIN pour ALGORITHMESEAB`②gGR⑨Bef:]Zappy\ (1O/O8 ⑨Aa 5:35)
  389. Non, t'as pas compris non plus alors..
  390. J'essaie d'expliquer une extension d'optimisation dut au triangle...
  391. Mais ⑨Kca marche que pour des petits motifs m'enfin c'est ce que tu veux apparemment...
  392. tu n'a③Hs plus un MOVE.B 0(An),(An)+, en motorla evidemment, et un stosb et j'sais pas trop quoi pour un point, mais juste un recopiage de sprite a l'ecran...
  393. enfin bon, tu fais ce que tu veux...VAB`②gT @AvancerGZ ] Suite  \Y @Son r⑨BepondeurGZ ] Envoi \Y T @RevenirG ] Retour \ ⑧@IntervenirG ]N#L     Envoi \ ♪♪♪①④