Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2095 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2  3  4  5  6
Auteur Sujet :

programmation de demos sur anciennes machines

n°309144
bjone
Insert booze to continue
Posté le 14-02-2003 à 11:06:54  profilanswer
 

Reprise du message précédent :

chrisbk a écrit :

hum, alors, heuh, bon :
 
http://site.voila.fr/chrisbk/boaf.zip
 
Il faut le dos4gw, le mettre dans c:\windows (et pas dans le rep de la demo) et mettre la "demo" a la racine (sinon parfois ca bricole)
 
Heuh, Sinon, rigolez pas trop hein :D Quand j'ai commis ca je faisais du C que depuis 6 mois et du graphique depuis 4, alors indulgence, pleaz ! :D
 
Ca marche sous 98/XP/2000 par contre y'avait pas de timer donc ca risque d'aller plutot vite (ca tournait sur mon 133, a l'epoque)
 
bjone : le dl passe tjs pas [:spamafote]


 
sinon c'est sympa qd-même.
ça manque de régulation des animations qd-même...
je m'étais bien amusé avec le bump par emboss.. c marrant comme truc.

mood
Publicité
Posté le 14-02-2003 à 11:06:54  profilanswer
 

n°309147
chrisbk
-
Posté le 14-02-2003 à 11:10:56  profilanswer
 

BJOne a écrit :


 
sinon c'est sympa qd-même.
ça manque de régulation des animations qd-même...
je m'étais bien amusé avec le bump par emboss.. c marrant comme truc.


 
ben ouais ca speed a mort :D On voit presque pas que le fond se reflete finement sur la boule a pique :/ (mon superbe envmap a deux franc :sweat:)
 
le bump stait trop bien, la grand classe cet effet :D
 
 
J'ai finalement pu dl ton truc, ca marche superbe :D (sauf parfois le feu qui bricole, mais bon, c t pas le principal, hein ? :D)
 
Bon, c pas le tout, j'ai un déménagement a préparer, moi, ++ :O
 


Message édité par chrisbk le 14-02-2003 à 11:11:53
n°309151
bjone
Insert booze to continue
Posté le 14-02-2003 à 11:15:04  profilanswer
 

bon bah maintenant va falloir je retourne sous dos pour recompiler le truc que j'avais fait en VESA 2.0 avec watcom et voir si ça compile toujours...

n°309152
bjone
Insert booze to continue
Posté le 14-02-2003 à 11:16:03  profilanswer
 

chrisbk a écrit :


 
J'ai finalement pu dl ton truc, ca marche superbe :D (sauf parfois le feu qui bricole, mais bon, c t pas le principal, hein ? :D)


 
pas d'ironie siouplait :D

n°309158
chrisbk
-
Posté le 14-02-2003 à 11:28:13  profilanswer
 

BJOne a écrit :


 
pas d'ironie siouplait :D


 
je ne me permettrais pas, surtout face a un type qui a regardé mon basard sans pouffer de rire :jap: :D

n°309162
bjone
Insert booze to continue
Posté le 14-02-2003 à 11:31:04  profilanswer
 

:jap:

n°309164
lorill
Posté le 14-02-2003 à 11:33:39  profilanswer
 

moi j'ai un super pong en asm x86, mais j'ai paumé les sources.
y'avait un algo top gainial pour le service (en fait on devait faire 5 dans un sens, 5 dans l'autre, et au final on a un truc aléatoire, même apres avoir essaye plein d'algos basiques différents)

n°309170
Vic le vik​ing
Posté le 14-02-2003 à 11:42:18  profilanswer
 

harkonnen, je vois ce qu'est un rotozoom, mais je ne vois pas comment ca peut etre programmé ! tu pourrais pas m'expliquer le principe, et me dire ce que tu veux dire par "table de sinus de 0 a 2*pi en ajoutant pi/4 pour avoir les cosinus" ?
 
tout ceci est vraiment très complexe :sweat:
je pensais pas que coder une démo était si complexe, je nage vraiment dans tout ce jargon abscons...


---------------
Bougredane et bougre d'andouille ne font qu'un !
n°309174
kadreg
profil: Utilisateur
Posté le 14-02-2003 à 11:47:47  profilanswer
 

vic le viking a écrit :

tu veux dire par "table de sinus de 0 a 2*pi en ajoutant pi/4 pour avoir les cosinus" ?


 
C'est de operations de trigo de base.
 
sin (x) = cos (x + pi/4);
 
Et puis normalement, il me semble que la table de 0 à PI/2 suffit en jouant avec les autres transfo tigo,nométriques comme :  
cos (x + Pi) = - cos (x)
 
(en fait, c'est un post pour mettre un [:drapo]
 


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°309177
chrisbk
-
Posté le 14-02-2003 à 11:48:45  profilanswer
 

Citation :

"table de sinus de 0 a 2*pi en ajoutant pi/4 pour avoir les cosinus"


 
au lieu de calculer les sinus/cosinus directement via les instructions du CPU, tu les precalcule dans une table.
genre :
 

Code :
  1. for (int i=0;i<256;i++)
  2. cos[i] = cos (2pi * (i/256.0f))


 
comme ca tu as tous les cos de 0..2PI . Donc quand tu a besoin d'un cos au lieu de le calculer tu va le chercher dans cette table
 
Avec les CPU moderne il vaut mieux utiliser les instrs CPU, ce genre de table a de sales effets sur le cache

mood
Publicité
Posté le 14-02-2003 à 11:48:45  profilanswer
 

n°309202
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 14-02-2003 à 12:15:07  profilanswer
 

vic le viking a écrit :

harkonnen, je vois ce qu'est un rotozoom, mais je ne vois pas comment ca peut etre programmé ! tu pourrais pas m'expliquer le principe, et me dire ce que tu veux dire par "table de sinus de 0 a 2*pi en ajoutant pi/4 pour avoir les cosinus" ?


 
Le principe du rotozoom est diaboliquement simple, mais il fallait y penser. Cet effet a été imaginé par Chaos du groupe Sanity (un dieu du code).
 
Pour faire un rotozoom, il te faut une texture (qui correspondra à l'image que tu zoomeras) et une zone mémoire correspondant à la taille de l'écran (qui sera ensuite copiée dans la mémoire vidéo).
 
Dans un but d'optimisation, il est préférable que la taille de la texture soit un multiple de 2, ça permet de faire des décalages au lieu des multiplications/divisions. Une texture de 256*256 est parfaite, mais ce sont des dimensions arbitraires.
 
Tu vas donc faire une boucle de 0 à 256 dans laquelle tu vas "passer" sur la texture source, pixel par pixel. A chaque passage, tu recopies les pixels pointés par la droite de balayage dans la zone écran.
 
A chaque itération de la boucle, tu fais tourner la droite de balayage et tu l'obliges à lire plusiseurs fois le même pixel en fonction d'une variable (facteur de zoom). Ce qui donnera l'illusion d'une image zoomée. Pour faire tourner la droite, tu utilises une matrice de rotation toute simple.
 
Pour les sinus et cosinus, je te renvoie aux posts de kadreg et chrisbk, leur explication est correcte.
 

n°309782
bjone
Insert booze to continue
Posté le 14-02-2003 à 17:35:25  profilanswer
 

bin alors c'est fini ?

n°309822
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 14-02-2003 à 18:08:47  profilanswer
 

BJOne a écrit :

bin alors c'est fini ?


laisse lui le temps de tout assimiler :d
 :bounce:


---------------
J'ai un string dans l'array (Paris Hilton)
n°309951
*syl*
--&gt; []
Posté le 14-02-2003 à 20:43:14  profilanswer
 

Allez UP, c'est intéressant à lire [:cupra]

n°310034
Vic le vik​ing
Posté le 14-02-2003 à 22:40:15  profilanswer
 

Harkonnen a écrit :


laisse lui le temps de tout assimiler :d
 :bounce:  


j'ai rien compris, rien compris du tout !!!  :cry:  :cry:  :cry:


---------------
Bougredane et bougre d'andouille ne font qu'un !
n°310043
chrisbk
-
Posté le 14-02-2003 à 23:03:43  profilanswer
 

vic le viking a écrit :


j'ai rien compris, rien compris du tout !!!  :cry:  :cry:  :cry:  


 
ben pourtant, c'est simple :??: Bon, je résume :O
 
tu fais un raster, tu le blitte avant la vbl (tips, passe par la 0xa0000 si tu vois ce que je veux dire ;), si t'as du tps machine de rab tu fais un emboss avec effet de feu, le track en b-spline (ou approxime avec une transfo de fourrier) et voila !
 
Des questions ? [:ddr555]

n°310047
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 14-02-2003 à 23:07:42  profilanswer
 


[:rofl]


---------------
J'ai un string dans l'array (Paris Hilton)
n°310055
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 14-02-2003 à 23:19:47  profilanswer
 

vic > voici un petit source qui pourra t'aider. je t'épargne, il est en C et pas en assembleur ;)
il fonctionne en mode 13h

Code :
  1. ... on initialise ...
  2. ... on modifie l'angle et/ou le coefficient de zoom ...
  3. // on calcule le vecteur balade
  4. xx = cos(alpha)*scale;
  5. yy = sin(alpha)*scale;
  6. // pour toutes les lignes horizontales de l'ecran
  7. for(y=0;y<200;y++){
  8.    //on sauve les coordonnees du premier pixel de la ligne a afficher
  9.    _u = u;
  10.    _v = v;
  11.    // affichage d'une ligne horizontale
  12.    for(x=0;x<320;x++) {
  13.      
  14.       // on se balade dans la texture
  15.       u = u + xx;
  16.       v = v + yy;
  17.       // on affiche le point actuel de la texture a l'ecran
  18.       putpixel(x, y, texture[u][v]);
  19.    }
  20.    // on se place sur le premier pixel de la prochaine ligne a afficher en se deplacant selon un vecteur perpendiculaire au vecteur utilise pour tracer les lignes
  21.    u = _u - yy;
  22.    v = _v + xx;
  23. }
  24. ... et on boucle ...
  25. xx et yy : ce sont les coordonnees du vecteur balade
  26. u et v : ce sont les coordonnees du pixel courant dans la texture
  27. _u et _v : coordonnees du premier pixel de la ligne courante (pour pouvoir changer de ligne a la fin)
  28. x et y : coordonnees du pixel courant a l'ecran
  29. texture : tableau contenant la texture (je note texture[x][y] le pixel de coordonnees (x;y) dans la texture)
  30. putpixel(x,y,c) : fonction qui affiche un pixel de couleur c aux coordonnees (x;y) a l'ecran


Message édité par Harkonnen le 14-02-2003 à 23:31:57

---------------
J'ai un string dans l'array (Paris Hilton)
n°310061
bjone
Insert booze to continue
Posté le 14-02-2003 à 23:31:16  profilanswer
 

chrisbk a écrit :


 
ben pourtant, c'est simple :??: Bon, je résume :O
 
tu fais un raster, tu le blitte avant la vbl (tips, passe par la 0xa0000 si tu vois ce que je veux dire ;), si t'as du tps machine de rab tu fais un emboss avec effet de feu, le track en b-spline (ou approxime avec une transfo de fourrier) et voila !
 
Des questions ? [:ddr555]
 

 
 
[:the one]

n°310066
bjone
Insert booze to continue
Posté le 14-02-2003 à 23:37:48  profilanswer
 

Harkonnen a écrit :

vic > voici un petit source qui pourra t'aider. je t'épargne, il est en C et pas en assembleur ;)
il fonctionne en mode 13h

Code :
  1. ... on initialise ...
  2. ... on modifie l'angle et/ou le coefficient de zoom ...
  3. // on calcule le vecteur balade
  4. xx = cos(alpha)*scale;
  5. yy = sin(alpha)*scale;
  6. // pour toutes les lignes horizontales de l'ecran
  7. for(y=0;y<200;y++){
  8.    //on sauve les coordonnees du premier pixel de la ligne a afficher
  9.    _u = u;
  10.    _v = v;
  11.    // affichage d'une ligne horizontale
  12.    for(x=0;x<320;x++) {
  13.      
  14.       // on se balade dans la texture
  15.       u = u + xx;
  16.       v = v + yy;
  17.       // on affiche le point actuel de la texture a l'ecran
  18.       putpixel(x, y, texture[u][v]);
  19.    }
  20.    // on se place sur le premier pixel de la prochaine ligne a afficher en se deplacant selon un vecteur perpendiculaire au vecteur utilise pour tracer les lignes
  21.    u = _u - yy;
  22.    v = _v + xx;
  23. }
  24. ... et on boucle ...
  25. xx et yy : ce sont les coordonnees du vecteur balade
  26. u et v : ce sont les coordonnees du pixel courant dans la texture
  27. _u et _v : coordonnees du premier pixel de la ligne courante (pour pouvoir changer de ligne a la fin)
  28. x et y : coordonnees du pixel courant a l'ecran
  29. texture : tableau contenant la texture (je note texture[x][y] le pixel de coordonnees (x;y) dans la texture)
  30. putpixel(x,y,c) : fonction qui affiche un pixel de couleur c aux coordonnees (x;y) a l'ecran




 
oui mais il faut lui dire que là tu raisonnes en virgule flottane... font donc mettre des floats partout.
 
sinon pour booster sa race, il faut passer un virgule fixe ce qui donne:
 

Code :
  1. ... on initialise ...
  2. ... on modifie l'angle et/ou le coefficient de zoom ...
  3. // on calcule le vecteur balade  
  4. long xx = (float)cos(alpha)*scale*0x010000; // shift de 16 bits on multiplie par 65536 (histoire de pas foutre des casts de partout, pi là c'est pas une section critique)
  5. long yy = (float)sin(alpha)*scale*0x010000;
  6. // pour toutes les lignes horizontales de l'ecran  
  7. for(y=0;y<200;y++){
  8.   //on sauve les coordonnees du premier pixel de la ligne a afficher  
  9.   _u = u;
  10.   _v = v;
  11.   // affichage d'une ligne horizontale  
  12.   for(x=0;x<320;x++) {
  13.      
  14.      // on se balade dans la texture  
  15.      u = u + xx;
  16.      v = v + yy;
  17.      // on affiche le point actuel de la texture a l'ecran  
  18.      putpixel(x, y, texture[(u+0x8000)>>16][(v+0x8000)>>16]);  // on repasse de la virgule fixe à une coordonnée entière, le +0x8000 représentant +0.5 afin d'avoir un arrondi au plus près  
  19.   }
  20.   // on se place sur le premier pixel de la prochaine ligne a afficher en se deplacant selon un vecteur perpendiculaire au vecteur utilise pour tracer les lignes  
  21.   u = _u - yy; 
  22.   v = _v + xx; 
  23. }
  24. ... et on boucle ...


 
enfin je fais le malin, mais je me suis ptet planté :D


Message édité par bjone le 14-02-2003 à 23:40:49
n°310069
bjone
Insert booze to continue
Posté le 14-02-2003 à 23:40:16  profilanswer
 

hé merde, y manque le ET logique pour avoir la répétition :(
 
ça va sortir de la texture !!!

n°310074
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 14-02-2003 à 23:41:51  profilanswer
 

t'as oublié le ET ! bonjour l'overflow !
 
edit: grilled !


Message édité par Harkonnen le 14-02-2003 à 23:43:04

---------------
J'ai un string dans l'array (Paris Hilton)
n°310084
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 14-02-2003 à 23:47:38  profilanswer
 

pour vic : le ET (que j'ai aussi oublié d'ailleurs) te permet de répeter la copie de texture une fois arrivé à la fin. si il n'était pas présent, tu arriverais à la fin de la texture sans revenir au début et tu aurais une bouillie infame de pixels.
 
c'est une sorte de modulo


---------------
J'ai un string dans l'array (Paris Hilton)
n°310087
bjone
Insert booze to continue
Posté le 14-02-2003 à 23:49:38  profilanswer
 

enfin c'est toi qui l'a oublié à la base  :kaola: :lol:  

n°310091
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 14-02-2003 à 23:52:52  profilanswer
 

BJOne a écrit :

enfin c'est toi qui l'a oublié à la base  :kaola: :lol:  


mon source était plus un algo qu'un véritable source pret à l'emploi :)
c'est pour ça que j'ai pas utilisé de virgule fixe. le pauvre, une chose à la fois :d


---------------
J'ai un string dans l'array (Paris Hilton)
n°310092
bjone
Insert booze to continue
Posté le 14-02-2003 à 23:55:09  profilanswer
 

d'ailleurs hark & chris quelles étaient vos pratique pour l'arrondi au plus près ?
 
passke le +0x8000 fait que 0.5 est arrondi vers 1.0, on pourrait considérer +0x7fff pour que 0.5 soit encore arrondi vers 0 :D (remarque type de sodomite matheux, je plus qui avait sorti ça comme vanne dans un tomic :D)
 
par contre, fut une époque dans une routine de triangle en ombrage de gouraud, j'avais ajouté un xor/or/and je sais plus histoire d'avoir un bruit dans l'ombrage lorsque il y a des pixels entre deux niveau de dégradé...


Message édité par bjone le 15-02-2003 à 00:00:17
n°310093
bjone
Insert booze to continue
Posté le 14-02-2003 à 23:56:34  profilanswer
 

Harkonnen a écrit :


mon source était plus un algo qu'un véritable source pret à l'emploi :)
c'est pour ça que j'ai pas utilisé de virgule fixe. le pauvre, une chose à la fois :d


 
ouais, maintenant fo mettre du code asm optimisé pentium (1 l'authentique), ou les instructions seront éxécutées par paire dans les deux pipelines  :D (je proposes, je vous laisse faire  :sol: )

n°310096
chrisbk
-
Posté le 15-02-2003 à 00:00:51  profilanswer
 

Citation :

d'ailleurs hark & chris quelles étaient vos pratique pour l'arrondi au plus près ?


 
 
je confesse tout, aucune [:ddr555]
 

n°310100
bjone
Insert booze to continue
Posté le 15-02-2003 à 00:03:38  profilanswer
 

chrisbk a écrit :

Citation :

d'ailleurs hark & chris quelles étaient vos pratique pour l'arrondi au plus près ?


 
 
je confesse tout, aucune [:ddr555]
 
 


 
en fait à la base c'était une question à la con histoire de me la péter  :whistle:

n°310104
chrisbk
-
Posté le 15-02-2003 à 00:06:08  profilanswer
 

BJOne a écrit :


 
en fait à la base c'était une question à la con histoire de me la péter  :whistle:  


 
 
ban :O :D

n°310109
bjone
Insert booze to continue
Posté le 15-02-2003 à 00:08:17  profilanswer
 


 
nonnnnnnnnnnnnnnnnnnnnnnn  :cry:  :p

n°310111
chrisbk
-
Posté le 15-02-2003 à 00:11:28  profilanswer
 

BJOne a écrit :


 
nonnnnnnnnnnnnnnnnnnnnnnn  :cry:  :p  


 
je plaisante, je pars demain pour 5 mois, c'est super vive la joie, je vous aime, ouais, supair ! :D

n°310113
bjone
Insert booze to continue
Posté le 15-02-2003 à 00:12:00  profilanswer
 

ce qui m'éclate avec ce rotozoom, c'est que quand je le regarde maintenant, je trouve ça d'une simplicité.... à la limite charger l'image qui est dans un format à la con est plus compliqué.
 
par contre à l'époque comment ça me faisait mal au cerveau  [:sisicaivrai]

n°310114
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 15-02-2003 à 00:12:13  profilanswer
 

chrisbk a écrit :

Citation :

d'ailleurs hark & chris quelles étaient vos pratique pour l'arrondi au plus près ?


 
 
je confesse tout, aucune [:ddr555]
 
 


pour un rotozoom, +1
 
par contre, pour un phong, j'y allais bourrin : je créais mes tables en double précision et lors du passage en virgule fixe, j'ajoutais à un point une valeur moyenne comprise entre 0 et 0.5 calculée à partir de la valeur des pixels environnants.
avantage : les dégradés étaient plus smooth vers l'intérieur du polygone, mais l'inconvénient saute aux yeux : les bords étaient pourris !
 
mais vu que les rétroprojo des parties étaient pourris aussi, ça se voyait pas [:ddr555]


---------------
J'ai un string dans l'array (Paris Hilton)
n°310115
bjone
Insert booze to continue
Posté le 15-02-2003 à 00:12:52  profilanswer
 

chrisbk a écrit :


 
je plaisante, je pars demain pour 5 mois, c'est super vive la joie, je vous aime, ouais, supair ! :D


 
mairde du coup le tomic va se retouver "on hold"  :sweat:

n°310116
chrisbk
-
Posté le 15-02-2003 à 00:14:03  profilanswer
 

BJOne a écrit :

ce qui m'éclate avec ce rotozoom, c'est que quand je le regarde maintenant, je trouve ça d'une simplicité.... à la limite charger l'image qui est dans un format à la con est plus compliqué.
 
par contre à l'époque comment ça me faisait mal au cerveau  [:sisicaivrai]  


 
ben ouais [:spamafote]
 
Le format le plus a la con que j'ai vu, et bien, j'en suis pas peu fier, c'est moi qui l'a fait (mon premier exporteur max). J'avais plus de code pour le loader de fichier que le moteur en lui meme, c'etait grandiose :D :D

n°310118
chrisbk
-
Posté le 15-02-2003 à 00:15:04  profilanswer
 

BJOne a écrit :


 
mairde du coup le tomic va se retouver "on hold"  :sweat:  


c'est malin de faire des tomics comme ca quand je pars, aussi :O
 
 
mais bon, vais bien trouver un acces au net, qqpart, en bon informaticien que je suis je me vois mal vivre sans [:ddr555]


Message édité par chrisbk le 15-02-2003 à 00:15:33
n°310120
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 15-02-2003 à 00:17:15  profilanswer
 

chrisbk a écrit :


c'est malin de faire des tomics comme ca quand je pars, aussi :O
 
 
mais bon, vais bien trouver un acces au net, qqpart, en bon informaticien que je suis je me vois mal vivre sans [:ddr555]


t'inquietes pas, s'il le faut je mettrais ce topic en topic annonce :d


---------------
J'ai un string dans l'array (Paris Hilton)
n°310121
bjone
Insert booze to continue
Posté le 15-02-2003 à 00:20:05  profilanswer
 

chrisbk a écrit :


 
ben ouais [:spamafote]
 
Le format le plus a la con que j'ai vu, et bien, j'en suis pas peu fier, c'est moi qui l'a fait (mon premier exporteur max). J'avais plus de code pour le loader de fichier que le moteur en lui meme, c'etait grandiose :D :D


 
:lol: ça tombe bien je suis en plein dedans :D
 
j'ai choisi ça:
 
Format Bml: (BJOne model)
          Offset
          +00: BML_Signature (long) 'BML1',ou plut?t '1LMB'
          +04: Nombre de vertexs (long)
          +08: Nombre de facettes (long)
          +12: Rayon de la sphere d'envellope,?chelle (float)
          +16: Vertexs (6 floats par vertex)
               X,Y,Z: Coordonn?es 3D (3 floats)
               NX,NY,NZ: Vecteurs Normaux pour l'ombrage de Gouraud
               et l'environnement-mapping (3 floats)
       
    +16+vsize*6*sizeof(float):
 
     Format BML3 : (Rendu hw D3D - indexs 16 bits uniquement)
 
   DWORD: Nombre d'indexs
   WORD....  Indexs
 
   DWORD: Nombre de matériaux
 
   Par matériau:
   {
    // propriétées matériau
    DWORD Flags;   // Attributs
       float AMBIENT[3]; // R,V,B
    float DIFFUSE[3];
    float SPECULAR[3];    
    float SpecularPower;
    float Opacity;
 
    DWORD: Nombres de listes de Triangle Strips
 
      Par Strips:
       DWORD: Index de base  
       DWORD: Nombre d'indexs
       
    DWORD: Nombre de listes de Triangles Fans
 
      Par Fans:      
       DWORD: Index de base
       DWORD: Nombre d'indexs
 
    Triangles Indépendants
 
    DWORD: Index de base
    DWORD: Nombre de triangles (indexs/3=>triangles)    
   }
   ////
 
   DWORD Nombres de volumes de collision
 
   Par volume de collision
   {
    float [8][3]; // les vertexs de la bounding box
 
    DWORD Nombres de triangles pour l'enveloppe de collision
 
       Par triangle de collision:  
         WORD [3] Sommets
   }
 
en fait j'ai pas encore implémenté l'export des coodoonée de textures, honte à moi...
 
la présence de fan est là pour des raisons historique (je suis passé d'un moteur dos en rendu software en moteur d3d full-hardware) donc j'avais expérimenté de faire un max de strip puis de fans et ensuite de triangles indépendants séquences pour maximizer l'utilisation du cache post-T&L.
 
mais en fait le fait d'éclater la géomtrie en plusieurs strips/fans + triangles indépendants, ça génére relativment trop d'overhead cpu que de faire une seule liste de triangle indépendants...

n°310129
bjone
Insert booze to continue
Posté le 15-02-2003 à 00:26:09  profilanswer
 

chrisbk a écrit :


 
ben ouais [:spamafote]
 
Le format le plus a la con que j'ai vu, et bien, j'en suis pas peu fier, c'est moi qui l'a fait (mon premier exporteur max). J'avais plus de code pour le loader de fichier que le moteur en lui meme, c'etait grandiose :D :D


 
le miens batterait-il le tiens ?  :D  
 
(désolé de faire dériver le tomic en fait)

n°310130
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 15-02-2003 à 00:32:08  profilanswer
 

:non: ne polluez pas ce merveilleux tomic hein !  :)  
 
prochaine leçon : les shade bobs :)
 
http://www.oldskool.org/demos/explained/htmlpictures/shadebob.gif
 
good night :hello:
bon voyage chrisbk :)


---------------
J'ai un string dans l'array (Paris Hilton)
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  6

Aller à :
Ajouter une réponse
 

Sujets relatifs
j'y connais rien en programmationBesoin d'aide en Programmation Perl
Une question de newbie en programmation...[JAVA] programmation d'un bot de moteur de recherche
programmation du // pour un afficheur LCD en CChoisir un language de programmation : Lequel ? (vos avis)
Programmation sous Excelcherche bon site sur la programmation mac en francais
Programmation : problème de tableauxet de for assez complexe...Hardware, software et langages de programmation
Plus de sujets relatifs à : programmation de demos sur anciennes machines


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)