Aller au contenu

[CG] shader 3.0


Messages recommandés

ba on verra,j'imagine deja half life 2 avec des graphisme pareil voir pire sur un ecran 22 pouce en 1600x 1200 en 120 hz :-D:-D:-D

Half Life 2 n'est pas autant beau que Far Cry et en plus il ne supporte pas les PS/VS3.0

:francais:

HL2 ca va surtout être le gameplay et l'ambiance et aussi l'histoire (sans oublier l'interaction avec le décor :-D )

Lien vers le commentaire
Partager sur d’autres sites

  • Réponses 96
  • Créé
  • Dernière réponse
Half Life 2 n'est pas autant beau que Far Cry et en plus il ne supporte pas les PS/VS3.0

:yes:

Certes, Half Life 2 n'utilisera pas les Shaders 3.0 (normal, vu la forte somme d'argent qu'ATI a investi dans Valve... ) mais le moteur de HL2, à savoir le Source Engine, peut exploiter les Shaders 3.0 et d'ailleurs le jeu Vampires Bloodlines utilisera les Shaders 3.0....

Lien vers le commentaire
Partager sur d’autres sites

les PS3, ca change quoi?

Pour moi, ya rien d'interessant, et je prefere l'implémentation graphique d'ati (tout comme en x86, je prefere le netburst au K7)

Les PS2 apportait les structures de controle... les PS3 apportent quoi ?

Les Shaders 3.0 apportent essentiellement plus de souplesse aux développeurs.

Par exemple, le nombre d'instructions maximales d'un shader passe de 96 à 65535 instructions pour les Pixel Shaders et de 256 à 65535 instructions pour les Vertex Shaders. Autre nouveauté, les Shader Models 3.0 exploitent dorénavant la précision de calcul en FP32.

Il s'agit donc surtout d'un certain nombre de limitations qui tombent avec les Shaders 3.0 et les développeurs peuvent avoir un plus grand contrôle sur le fonctionnement des shaders.

Je ne comprends pas pourquoi pas mal de gens pensent que les Shaders 3.0 sont "inutiles". Pourtant, à la sortie de la Radeon 8500, l'avantage d'ATI était le support des Pixel Shaders 1.4 alors que la Geforce4 ne gérait que les Pixel Shaders 1.3. Le gain réel par rapport aux PS 1.3 était faible également, mais cela n'a pas empêché nombre de personnes de prendre une ATI rien que pour ça.

Maintenant, la situation est inversée, l'avantage est à nVidia cette fois, et on essaye de nous faire croire qu'il vaut mieux prendre une ATI parce que le gain des Shaders 3.0 est faible :chinois:

Avec un peu de recul, on sait désormais que le support des PS 1.4 était loin d'être inutile, et même nVidia utilise maintenant les PS 1.4 dans Far Cry avec les GeforceFX.

Lien vers le commentaire
Partager sur d’autres sites

AlexisP> C'est quoi cette photo sur ton avatar ? :chinois:

Donc si j'ai bien compris, c'est plus facile pour les développeurs de développer (je me répette :cheat: ) et ça apporte un petit gain de performance, c'est bien ça ?

Et la qualité d'image entre SM2.0 et SM3.0 est la même ?

Lien vers le commentaire
Partager sur d’autres sites

mais cela n'a pas empêché nombre de personnes de prendre une ATI rien que pour ça.

Heu... Ils n'ont pas été très fins si c'était juste pour ça, vu le peu que ça rapporte quand même.

Jcrois que les gens s'en fichent totalement que cela arrange les développeurs, ce qu'ils veulent, ce sont des résultats.

Si c'est de l'ordre de plusieurs dizaines de % de différences, il n'y aura pas photo.

Si c'est pas le cas... :chinois:

Lien vers le commentaire
Partager sur d’autres sites

+1 :D

je ne suis ni pro-nvidia ni pro-ati, je cherche juste des performances au meilleur prix!

vu que la majorité des consommateurs veulent des perfs et des prix bas, et c'est grace a cela que nous suivons avec passion chaque épisode de la guerre commerciale ATI-NVIDIA que l'on nomme si joliment concurrence! :chinois:

remerciez donc le ciel qu'on ait 2 sociétés a faire des CG sinon la seule aurait tout pouvoir sur les prix...

Lien vers le commentaire
Partager sur d’autres sites

AlexisP> C'est quoi cette photo sur ton avatar ?  :p

Donc si j'ai bien compris, c'est plus facile pour les développeurs de développer (je me répette  :gne: ) et ça apporte un petit gain de performance, c'est bien ça ?

Et la qualité d'image entre SM2.0 et SM3.0 est la même ?

Héhé :-D

Oui la qualité d'image est quasi-identique et invisible à l'oeil nu, mais après il reste à voir ce que les développeurs en ferront : vu que c'est plus simple de programmer avec les PS 3.0 et puisque les cartes deviennent de plus en plus puissantes, il ne fait aucun doute que de nombreux développeurs un brin flemmards vont concentrer leurs efforts côté effets spéciaux sur la version Shaders 3.0 et sous-exploiter la version Shaders 2.0, et ce n'est pas le gros chèque signé par nVidia qui les en dissuadera...

:mad2:

Lien vers le commentaire
Partager sur d’autres sites

C'est ça, en perf, ca change rien, voire meme ca handicape (legerement)

Ca apporte plus d'instructions et le FP32 bref pas grand chose... ca change que coté developpeur quoi... Ca va leur permettre de coder encore plus mal... suffit de voir la scene demo-ASM face aux jeux fait par des professionels...

Lien vers le commentaire
Partager sur d’autres sites

AlexisP et Neo_13> Vous dites deux choses complêtements différentes là :yes: AlexisP tu dis que les développeurs vont exploiter les SM3.0, car c'est plus simple pour eux, et Neo_13 tu dis qu'ils développeront moins bien...

Je suis complêtement embrouillé :francais:

Mais vous pensez qu'il serait mieux d'investir, pour le long terme (2 ans), sur du SM2.0 ou du SM3.0 ?

:francais:

Lien vers le commentaire
Partager sur d’autres sites

AlexisP et Neo_13> Vous dites deux choses complêtements différentes là :yes: AlexisP tu dis que les développeurs vont exploiter les SM3.0, car c'est plus simple pour eux, et Neo_13 tu dis qu'ils développeront moins bien...

Je suis complêtement embrouillé :francais:

Mais vous pensez qu'il serait mieux d'investir, pour le long terme (2 ans), sur du SM2.0 ou du SM3.0 ?

:francais:

disons que plus on facilite la vie aux developpeurs moins ils se font chier pour developper et avec des amchines de guerre on arrive a peine a faire tourner certains jeux,donc de ce point de vu la ils developperont encore moins bien!

mais d'un autre coté,pour les jeux qui son fait par des types qui codent pas avec leur pieds ca leur fera gagner du temps!

Lien vers le commentaire
Partager sur d’autres sites

Je crois que Neo pense que les développeurs sont de purs fainéant dès qu'il s'agit d'optimiser :8 (y'en a quand même qui font de l'excellent boulot, mais... pas tous :transpi:).

MASHA : à mon avis, SM2.0 ou 3.0, ça changera pas grand chose, c'est pas comme DX9 ou DX10.

moi je pense qu'il a pas tort le Neo :p

Lien vers le commentaire
Partager sur d’autres sites

Dans FarCry, la video soit disant PS3.0 montre des effets de Paralax Mapping...Il est possible de créer cet effet avec les PS2.0...comme l'explique très bien cet article du non moins exellent Onversity :

Farcry est un jeu exploitant les plus récents développements dans le domaine de la 3D (commercialement parlant s'entend) avec le succès qu'on lui connaît. Or avec l'arrivée imminente de la nouvelle génération de cartes graphiques, NVidia et ATI font les yeux doux à Crytek auteur de Farcry. ATI pour l'intégration de la technologie 3Dc et NVidia pour que Farcry utilise leur SM 3.0 (Shader model 3.0 = Pixel et vertex shader 3.0). Dans ce dernier cas, on a pu voir des vidéos et screenshots des pixel shader 3.0 dont dispose la série GeForce 6800, et le résultat est intéressant, mais contrairement à ce que croient certains internautes, il s'agit uniquement de parallax mapping et non de displacement mapping. Ce mini-article se propose de faire le point sur certaines définitions.

Les vertex shader sont des unités de calcul intégrées au processeur 3D prenant en charge des calculs de géométrie. La géométrie dans un jeu 3D concerne avant tout la forme des objets et personnages. Les pixel shader sont des unités de calcul destinées à faire un travail sur les textures. D'un point de vue pratique leur principal travail consiste à produire des effets visuels.

Le displacement mapping consiste à générer et modifier de la géométrie. Cette technique permet de générer des reliefs réels et pas des effets visuels de relief (impression de relief) comme le bump mapping. Le parallax mapping, qui se nommait précédemment offset bump mapping, est une amélioration de la technique de bump mapping. En gros le bump mapping consiste à associer une texture contenant des couleurs à une texture contenant des valeurs de hauteur décriant des reliefs. Le parallax mapping amplifie le résultat du bump mapping en lui donnant un effet visuel très proche du displacement mapping. De fait on dit parfois que le parallax mapping est une simulation par effet visuel du displacement mapping, mais ce n'en est pas une ! Alors que le displacement mapping sera généré par des vertex shader, le parallax mapping n'est généré que par les pixel shader.

La photo ci-dessous montre le jeu Farcry avec un patch utilisant les pixel shader 3.0 de la GeForce 6800. Il s'agit bien de parallax mapping et non de displacement mapping. Si vous n'êtes pas encore convaincus je vais vous donner un autre argument. Imaginez des centaines de galets décrits par de la géométrie, cela alourdirait considérablement le travail du processeur 3D, alors que le parallax peut dans ce cas faire quasiment la même chose en coûtant bien moins cher en terme de travail à accomplir. Le displacement mapping est encore hors de portée même pour la nouvelle génération de carte graphique du moins pour décrire une plage complète de galets.

source:

http://www.onversity.com/cgi-bin/progactu/...mots&P=last#090

Sinon, pour les différences réelles entre PS2.0 et PS3.0 :

Différence entre pixel shader 2.0 et pixel Shader 1.1, 1.4

Pixel shader 1.1 : La première carte graphique à avoir utilisé les pixels shaders 1.1 était la GeForce 3. Bien qu'on puisse trouver des traces de pixels shaders dans les Radeon 1 et même les GeForce 2 (à l'état embrionnaire), on considère que l'histoire des pixels shaders commence avec la GeForce 3 et DirectX 8.0 qui en établissait les spécifications. Les pixels shaders 1.1 sont dont la première technologie permettant véritablement la programmation d'effets de rendu et donc d'opérations mathématiques complexes sur les couleurs.

Pixel shader 1.4 : Il apporte avant tout une souplesse d'utilisation qui étend les possibilités du pixel shader 1.1 comme le nombre simultané de textures pouvant être gérées par le shader. C'est ATI qui proposa la première carte (Radeon 8500) intégrant totalement les pixels shaders 1.4. C'est DirectX 8.1 qui en établissait les spécifications. Il existe des versions intermédiaires 1.2 et 1.3, mais elles sont très semblables à la version 1.1. Donc les deux étapes à retenir pour les pixels shaders version 1 sont 1.1 et 1.4.

Pixel shader 2.0 : Deux différences essentielles sont à noter face aux anciennes versions. La première concerne la taille des shaders (programmes). On dit que le pixel shader 2.0 permet de gérer des shaders longs. Bien que le nombre d'instructions maximum que peut contenir un shader varie d'une carte graphique à une autre (sur ce point les constructeurs ont tendance à augmenter les spécifications définies par DirectX), l'ordre de grandeur entre les pixels shaders 1.1, 1.4 et 2.0 est de plusieurs dizaines à plusieurs centaines. A partir d'une centaine on peut déjà réaliser des shaders basés sur des algorithmes mathématiques très complexes permettant des simulations sophistiquées d'effets de lumière sur des matières aussi diverses que l'eau ou la mousse de l'écorce des arbres. La seconde différence se situe dans l'utilisation de nombres flottants (ou réels), au lieu de nombres entiers. C'est important pour le pixel shader 2.0 d'en disposer car plus un shader est long (autrement dit plus un programme a d'instructions) plus il risque de générer des calculs intermédiaires. Or l'ordinateur ne calcule pas avec une précision infinie, ce qui fait qu'à chaque opération mathématique, il y a un risque d'une petite perte de précision. Evidemment plus il y a de calculs plus cette perte va s'accumuler. Si les problèmes de précision pouvaient être tolérés avec les pixel shader 1.1 et 1.4 dans la mesure où il ne pouvait gérer que de petits shaders, il n'en plus de même pour les pixels shaders 2.0, d'où l'introduction des nombres flottants. Il faut donc bien se rendre compte que l'utilisation des nombres flottants va de pair avec l'augmentation de taille des shaders que le processeur graphique peut gérer. Cela est encore plus vrai si on sait qu'un processeur comme le R350 (ATI 9800) intègre une technologie nommée F-buffer qui permet de gérer des shaders de taille infinie !

Pixel shader 3.0 et avenir du pixel shader

Bien que les spécifications ne soient pas encore fixées, beaucoup de développeurs parlent de l'intégration d'instructions permettant un contrôle plus avancé des shaders. Les shaders s'exécutent actuellement de manière assez linéaire. Avec les pixels shaders 3.0, il sera possible, grâce au branchement conditionnel (if then else), de dire au processeur graphique d'exécuter telle ou telle partie de programme en fonction de valeurs de calculs. D'un point de vue pratique, cela va permettre par exemple d'intégrer des variations dans des motifs répétitifs.

OpenGL et pixel shader 2.0

En OpenGL les pixels shaders se nomment les fragments shaders. En version 1.5, il n'y a pas de gestion des fragments shaders de type pixel shader 2.0. Toutefois les constructeurs mettent à la disposition des développeurs OpenGL des extensions (fonctions spécifiques à un constructeur) qui leur permettent de les utiliser. Toutefois ces extensions n'étant pas compatibles entre elles, cela implique de devoir écrire un 'path' différent pour chaque carte graphique. Il faudra attendre encore quelques mois pour voir la version 2.0 d'OpenGL.

Fillrate et pixel shader 2.0

Le fillrate c'est quoi ? : Le fillrate c'est la quantité de pixels que peut produire/envoyer à l'écran le processeur graphique, mais celui-ci varie en fonciton de l'utilisation. Le fillrate absolu dépendant de la fréquence du GPU, de son architecture. On distingue aussi le fillrate en mode single-texturing et multi-texturing, mais : dans le cas où on utilise des shaders c'est le mode single-texturing qui nous intéresse. On utilise pour cela la formule :

    Fillrate absolu = Fréquence du microprocesseur * nombre de pipes

Un pipe étant une unité de production de pixel. La FX5900Ultra dispose de 4 pipes et a une fréquence de 450 MHz (soit 1800 MPixel/s) et la 9800Pro de 8 pipes à 380 MHz (soit 3040 Mpixel/s).

Le fillrate des pixels shaders 2.0 : Quand on utilise les pixels shaders 2.0, le fillrate dépend de ce que fait le shader (le programme). Toutefois en généralisant le principe de fonctionnement d'un shader 2.0 on peut se faire une idée. Un shader va contenir des instructions vectorielles (instructions manipulant les trois composantes couleurs) et des instructions scalaires (instructions manipulant généralement la valeur de transparence). Ces instructions travaillent / appellent un certain nombre de textures. Le fillrate d'une carte graphique utilisant les pixels shaders 2.0 dépend du fillrate absolu, divisé par une variable qui correspond aux capacités de l'architecture du processeur graphique à manipuler les instructions et les textures définies par le shader.On obtient la formule suivante :

    Fillrate pixel shader = Fillrate absolu / X

Déterminons X pour la 9800Pro contre FX5900Ultra : La 9800Pro sait calculer simultanément une instruction vectorielle avec une instruction scalaire ou une texture. Comme le nombre d'instructions vectorielles dépasse normalement le nombre d'instructions scalaires et le nombre de textures utilisées, la valeur X pour la 9800Pro est égal au nombre d'instructions vectorielles. Pour la FX5900 c'est plus complexe. Cette carte ne sait pas gérer simultanément les instructions vectorielles, scalaires et de texturing. X sera donc égal au moins à la somme de toutes les instructions utilisées. Donc X sera toujours plus grand pour la FX5900Ultra que pour la 9800Pro. Mais même égale l'équation du fillrate pixel shader sera toujours favorable à la 9800Pro ! (pour voir un exemple détaillé de ce calcul lisez l'article de Damien Triolet - voir ci-dessous).

Remerciements

Ce long mini-article fait suite à la parution d'un article fait par Damien Triolet du site TT-hardware. Son article, qui faisait réfèrence lui-même au test comparatif pixel shader 2.0 basé sur le jeu Tomb Raider du site beyond3D, expliquait de manière détaillée les raisons des faibles performances des cartes FX5900 en pixel shader 2.0 comparé aux ATI 9800. Son article contient une telle richesse d'informations que je trouvais dommage qu'il ne puisse être compris par un grand nombre de lecteurs. J'ai donc pris contact avec lui et après l'avoir harcelé de questions j'écrivais mon propre article visant à présenter les éléments de base du pixel shader 2.0. Je tiens donc à remercier Damien pour son aide précieuse :).

source :

http://www.onversity.com/cgi-bin/progactu/...smots&P=N200309

Sinon, a part ces deux petits articles, je ne sais pas si HL² utilisera les PS3.0 ou non, mais ca m'étonnerais beaucoup, vu le partenariat qu'ils ont signés avec ATi...

Pour DOOM III, il est impossible qu'il utilise les PS2.0 ou 3.0 car c'est un moteur Open(Carmack)GL (les PSx.x sont réservés à DirectX)...donc au mieux, il utilise les extensions ARB2...

source :

http://www.presence-pc.com/article-95-1.html

Lien vers le commentaire
Partager sur d’autres sites

Au fait la config mini dixit Carmack, c'est une Radeon 7500...

Bizarre que Carmack parle en fonction des cartes ATI, étant donné qu'ils sont en partenariat avec Nvidia et que les ATI gèrent moins bien l'OpenGL que les Nvidia... et c'est même lui qui disait que les Nvidia tourneront mieux sur DooM III que les carte ATI...

Lien vers le commentaire
Partager sur d’autres sites

Je ne pense pas m'être trompé de génération...Mais il est vrai que coté GeForce il faut mieux avoir une GF3...Sinon, cette config n'a rien d'étonnant...c'est une config relativement courante...Y'a encore beacoup de gens qui ont une carte DX7...

Sinon, faut aussi se rapeller que la config mini théorique de Quake3 était une RagePro ou une Intel I740, config qui était déjà bien défraichie lors de la sortie du jeu...

Une Radeon 7500 permettra juste de jouer en 800*600 tout au minimum à 24/25fps

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.


×
×
  • Créer...