<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Posté à l'origine par HURRICAN:
Allez, le bus AGP (qui n'est qu'une copie du DMA existant dans les Amiga et les Atari ST), il sert à rien, tout est fait dans la carte. C'est bien pour çà que les cartes PCI sont si lentes. Tu m'expliques, ou plutôt tu expliques à tout le monde, pourquoi ton rasterize est si lent avec un bus PCI ? Pourtant tu affirmes que 80% du temps pris c'est la carte 3D !<HR></BLOCKQUOTE>
Je t'explique ça tout de suite:
C'est tout à fait cohérent avec ce que j'ai dit: une carte PCI est plus lente parce que justement elle doit avoir toutes les textures en VRAM pour être utilisées par le rasterizer, contrairement au bus AGP. Donc les textures doivent être transférées par le bus: et transférer une texture en 1024x1024 32 bits accompagnée des textures de highlighting, bumpmapping et lighting, toutes en 1024x1024 8 bits c'est autre chose que de transférer des vertices. Demande à n'importe qui fait de la 3D si c'est la géométrie du modèle ou ses textures qui prennent le plus de place... et en plus si tu mipmappes tes textures, tu multiplies par 2 la place en VRAM nécessaire.
Les jeux ayant pas loin de 100Mb de textures maintenant (et mipmappée en plus), c'est pour ça qu'il y a une telle différence entre le bus AGP et les bus PCI.
<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Allez, va, on dira aussi que le RamDac n'a rien à voir là dedans, et que les échanges de données avec le processeur sont négligeables.<HR></BLOCKQUOTE>
Oui, les échanges processeur-carte 3D ne concernent quasiment que les vertices qui sont des données très très petites, comparées aux textures.
Je ne considère pas les textures comme des données véritablement échangées entre le processeur et la carte, car dans la plupart des cas, elles ne sont pas générées en temps réel.
ex: typiquement aujourd'hui, tu as jusqu'à 20000 triangles par images, ce qui donne environ 5000 vertices (avec strip et et vertex buffers) et des vertices (x,y,w,u,v,a,r,g,b,u2,v2...) de type "float" on arrive à:
5000x8x4/1024=156Kb/frame
à 50FPS, ça nous fait environ 8Mb/s ce qui est un débit ridicule pour un bus AGP ou PCI.
Par contre, les textures, ça ça nécessite autre chose que 8Mb/s, d'ou l'intéret du bus AGP.
<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Quand à Maya, c'est bien connu, comme PhotoShop il fait de la 2D. Je vois même pas pourquoi ils conseillent de prévoir des cartes 3D rapides. Surement pour rasterizer.<HR></BLOCKQUOTE>
sauf que c'était pas du tout mon point: je voulais dire que Maya pouvait plus tirer parti de l'altivec que Quake, car il a bien plus de calculs mathématiques.
<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Juste un dernier mot. John Carmack lorsqu'il a sorti Doom, a dit qu'il ne tournerait jamais sur Amiga, à cause du mode d'affichage BitPlane au lieu du mode chunky des PC. "Ca prendrait trop de temps de calcul pour convertir de chunky en BitPlane" avait il dit. 8 jours après que le code source ait été rendu public, il y avait des versions nécessitant un simple 68030 qui
était livrées. En tout et pour tout la conversion prenait 10 à 15% du temps, l'affichage 2% et le reste était du calcul....<HR></BLOCKQUOTE>
Excellente remarque, mais malheureusement plus du tout valable, mais alors plus du tout!
A l'époque de Doom, on faisait du rendu en 320x240 avec des textures 8 bits, bref très peu de données à traiter, donc dans un tel cas, effectivement le rasterizing (ou l'affichage) ne demandait pas trop de calcul et par conséquent, le temps de calcul était plus important.
Mais aujourd'hui, les proportions sont complètement inversées d'ou le 80% en temps de rasterizing.