Shaders : avec ou sans réserve ? [Résolu]

Messages postés
112
Date d'inscription
dimanche 6 juin 2004
Statut
Membre
Dernière intervention
19 septembre 2007
- - Dernière réponse : Galmiza
Messages postés
573
Date d'inscription
samedi 16 novembre 2002
Statut
Membre
Dernière intervention
9 avril 2008
- 16 déc. 2006 à 22:18
Bonjour à tous, je fais programme avec DirectX et j'aurai aimé avoir votre avis sur cette question : est-ce que le "tout shader" (à la fois vertex et pixel) est une bonne idée ou vaut-il mieux utiliser les shaders avec réserve ?
    J'ai commencé à introduire des shaders dans mon programme, et je me retrouve avec des objets utilisant des textures et les outils de transformation de directX, et d'autres où les shaders font tout le travail de positionnement dans la scène, de texturage et d'éclairage. Je me suis dis que ce serai peut-être bien de généraliser l'utilisation des shaders à TOUS mes objets pour unifier les différents algorithme de rendu...
    Mais, il ne faudrait pas que ces shaders aient une mauvaise influence sur mon fps, et qu'ils puissent être utilisés en nombre quasi illimité... Qu'en pensez-vous ?

Vince
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
573
Date d'inscription
samedi 16 novembre 2002
Statut
Membre
Dernière intervention
9 avril 2008
3
Merci
Je fais tout 100% shaders depuis assez longtemps, aucun problème de performances.
Même pour faire un éclairage bidon, j'utilise les shaders.
Je n'ai jamais atteint la limite de taille ou de nombre.
Jamais non plus eu le temps de faire des gros projets avec ...

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 208 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Galmiza
Messages postés
112
Date d'inscription
dimanche 6 juin 2004
Statut
Membre
Dernière intervention
19 septembre 2007
0
Merci
Je te remercie Galmiza, je vais donc généraliser l'utilisation des shaders...
Bonne journée

Vince
Commenter la réponse de eplanet
Messages postés
546
Date d'inscription
vendredi 13 février 2004
Statut
Membre
Dernière intervention
9 janvier 2008
0
Merci
Les shaders ne sont limités que par la puissance de ta carte graphique! En fait un shader reprogramme le pipeline de ta carte graphique de A à Z  et est éxécuté par la carte graphique. Donc c'est tres tres puissant puisque tu soulages le cpu de tout calcul sophistiqué comme pour l'eclairage, les ombres, le multitexturing, etc....
Commenter la réponse de dletozeun
Messages postés
573
Date d'inscription
samedi 16 novembre 2002
Statut
Membre
Dernière intervention
9 avril 2008
0
Merci
En fait tout le pipeline n'est pas reprogrammé, mais uniquement la phase de transformation des vertex et passage coordonnées 3D à 2D (vertex shader), ainsi que la coloration des pixels (pixel shader).
La carte calcule toute seule quels pixels sont à afficher (rasterization) sur le backbuffer et applique les filtres antialiasing, filtrage linéaire, bilinéaire, anisotropique etc sans intervention de notre part.

http://www.mangue.org/wiki/Direct3D_Le_pipeline_de_rendu

Lorsqu'on utilise pas explicitement des shaders, DirectX fait quand même appel aux fonctionnalités de la carte donc par exemple l'éclairage est calculée par la carte.
Donc le CPU ne travaille pas moins. On peut en outre limiter le dialogue CPU->GPU.
Les shaders permette de manipuler les vertex et les pixels à souhait pendant la phase de rendu.

Cependant, depuis un vertex shader on a accès qu'aux propriétés du vertex en cours... c'est donc encore très limité comme technique.
Idem pour le pixel.

Waw, je viens de trouver un excellent pdf sur l'histoire des cartes vidéos.

http://web.univ-pau.fr/~bjobard/Cours/SIA/Assets/Cours/Cours1_Evolution_cartes_graphiques.pdf

Mais bon... les géométries shader et les shaders 4.0 ne sont même pas abordés.
Commenter la réponse de Galmiza