begin process at 2012 05 27 16:12:54
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

DirectX

 > EXEMPLES D'UTILISATION DES PIXELS SHADERS 2.0 AVEC DIRECTX 9.0

EXEMPLES D'UTILISATION DES PIXELS SHADERS 2.0 AVEC DIRECTX 9.0


 Information sur la source

Note :
6 / 10 - par 1 personne
6,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :DirectX Classé sous :pixel, shader, directx, effets, texture Niveau :Initié Date de création :02/12/2005 Date de mise à jour :03/12/2005 22:47:07 Vu / téléchargé :41 817 / 1 784

Auteur : Galmiza

Ecrire un message privé
Site perso
Commentaire sur cette source (10)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Voici quelques exemples d'utilisation des pixel shaders.
Ce programme initialise succintement direct3D et ses objets, et montre comment créer et charger dans la mémoire vidéo des pixels shaders.
Neuf (F1 -> F9) effets graphiques montrent la puissance des shaders.

Un pixel shader est un programme executable par la carte graphique. Après avoir déterminé les pixels à modifier sur le backbuffer suite au rendu d'une face ou d'un sprite, la carte graphique appelle pour CHAQUE pixel le pixel shader. Celui-ci contrôle donc intégralement la couleur de ces pixels !

Je vous laisse analyser les codes en assembleur et leurs commentaires. Sachez juste qu'un registre assembleur est un vecteur de 4 floats, chacune des composantes est accessible dans l'ordre par .x .y .z et .w ou .r .g .b .a (respectivement équivalents). Les ri sont les registres utilisables dans le code, les ti sont les registres envoyés aux pixels shaders par les vertex shaders ou par les fonctions comme le draw du sprite, les si correspondent aux slots pour les textures (SetTexture(3, pTexture) dans le code en C++. La texture sera accessible par le pixel shader via le slot s3).

F1: texture, pixel = pixel aux coordonnées uv du backbuffer à la couleur de celui de la texture aux mêmes coordonnées texture uv
F2: blur, pixel = moyenne de 4 pixels qui l'entourent (pas forcement les voisins immédiats, la coordonnées x de la souris modifie la distance du pixel aux 4 autres)
F3: texture coordinates, pixels = couleur équivalente aux coordonnées de la souris ('rg'ba == 'xy'zw)
F4: niveaux de gris, pixel = 0.299 * R + 0.587 * G + 0.114 * B sur chacune de ses composantes rgb du pixel (de la texture aux même coord uv)
F5: idem, mais dépend de la distance du pixel au curseur
F6: mix de textures, la position x du curseur modifie l'importance d'une texture par rapport à l'autre
F7: saturation de couleur : interpolation linéaire saturée (coef pas dans 0-1) entre couleur du pixel et son gris
F8: saturation de lumière, plus la souris est proche du pixel, plus celui-ci est eclairé
F9: noir et blanc, la position x du curseur modifie le niveau de comparaison de la couleur pour determiner noir ou blanc


 Conclusion

Ce programme ne fonctionne que sur les ordinateurs possédant directX 9 et une carte vidéo à shader programmable 2.0 (exemple ati radeon 9600 ou sup).
Si la compilation échoue malgré la compatibilité de votre carte vidéo, c'est à cause de la version du SDK de DirectX, je n'ai pas la dernière. Aidez-vous du debugger pour connaître les modifications (très légères généralement par exemple nombre de paramètres d'une fonction directX) à apporter pour pouvoir compiler correctement.

Merci de laisser des commentaires !
N'hésiter pas non plus à proposer des effets graphiques que je posterai aussi vite que possible.
Les effets ne se font qu'en une passe (1 seul appel de pixel shader). Je fais une version à plusieurs passes et je mets à jour le source si ça ne le fait pas trop gonfler.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

03 décembre 2005 21:06:52 :
Modification de la capture d'écran qui était un affreuse : mélange des différents rendus. Elimination de rendus trop pourris, ajouts de nouveaux rendus plus interessants ou du moins impressionnants. Meilleure rédaction des descriptions.
03 décembre 2005 22:47:08 :
Désolé, j'avais oublié de renommer le exe.

 Sources du même auteur

Source avec Zip Source avec une capture COLLISION DE RECTANGLES 2D
Source avec Zip Source avec une capture 2D HARDWARE AVEC DIRECTX 9
Source avec Zip Source avec une capture MOTEUR 3D EN C++ AVEC DIRECTX 8.1 (GESTION SOURIS, CLAVIER, ...

 Sources de la même categorie

Source avec Zip Source avec une capture MP3 DX9 JOUER par f_l_a_s_h_b_a_c_k
Source avec Zip Source avec une capture EQUINOX VISUAL SON METER par f_l_a_s_h_b_a_c_k
Source avec Zip Source avec une capture FLEUR EN DELIRE! par f_l_a_s_h_b_a_c_k
Source avec Zip Source avec une capture DIREXCT X 9 D3D par f_l_a_s_h_b_a_c_k
Source avec Zip BLOP DIRECT X par f_l_a_s_h_b_a_c_k

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture ANALYSE DE LA TEXTURE D'UNE IMAGE : FILTRE DE GABOR par Pistol_Pete
Source avec Zip CHARGEMENT DES TEXTURES EN OPENGL par Jackyzgood
Source avec Zip Source avec une capture MULTITEXTURING ET SHADER par vosgien88
Source avec Zip Source avec une capture BUMPMAPPING AVEC SHADERS par vosgien88
Source avec Zip Source avec une capture EDITEUR DE MAP 2D ISOMÉTRIQUE par F0ra

Commentaires et avis

Commentaire de Galmiza le 02/12/2005 17:59:25

Je ne l'ai pas dit explicitement mais le programme ne fonctionnera que si vous avec DirectX 9.0 ou supérieur et une carte graphique programmable version minimale 2.0 pour les pixel shaders.

Commentaire de Galmiza le 05/12/2005 11:38:28

Vous êtes plus de 300 à avoir survolé cette source, si elle ne vous plait pas ou même si elle vous plait, n'hésitez pas à laisser un commentaire ! Allez un p'tit commentaire pour me faire plaisir :).
Dîtes-moi si l'exe tourne chez vous et postez (si vous le désirez) le nom de votre carte graphique.
Faîtes-moi part des éventuelles erreurs rencontrées lors de la compilation de la source.

Merci

Commentaire de Saros le 05/12/2005 16:45:11

L'exe tourne très bien
Lors de la compilation, il me dit que la Fonction Draw :
m_pSprite->Draw(m_ppTextures[0], // will be send into slot 0
NULL, // point
&D3DXVECTOR2(1.0f,1.0f), // scale
NULL,
0.0f,
NULL, // position
0xFFFFFFFF );
ne prend pas 7 paramètres...
Par ailleurs il ne me fait pas d'autres erreurs de compilation.

Commentaire de Galmiza le 05/12/2005 20:09:39

Merci pour le commentaire !

Le problème de Draw vient d'une différence de version entre mon SDK de directX et le tien.
Draw ne prend plus (ou ne prenait pas encore) 7 paramètres, regarde dans MSDN la doc sur la fonction Draw pour ta version de SDK.
Ou plus simplement regarde l'aide "DirectX9_c.chm" du répertoire "\Doc\DirectX9" là où tu as installé DirectX SDK.
DirectXGraphics -> Reference -> DirectD3 Extension (D3DX) C/C++ Reference -> Interfaces -> ID3DXSprite -> Draw
Tu auras les paramètres de la fonctions Draw, donc leur nombre, mais aussi des explications sur les valeurs qu'ils doivent/peuvent prendre.

Encore merci ;)

Commentaire de rei3 le 06/12/2005 12:41:44

Ah bah sur ma GF 7800GTX ca troune nikel :p

Commentaire de simpat le 06/01/2007 12:20:33

C'est vraiment super.
Est-ce qu'il est possible d'utiliser ls pixels shadow sur une vidéo ?? Faire une sorte d'effet d'eau, ce genre de choses ??

Commentaire de tit_toinou le 30/12/2007 22:02:27

Salut,
sur ma ATI X1950 Pro ca tourne :)
J'adore les effets 5,6 et 8 !
J'en reveux..
A quand les prochains ?

Commentaire de bimbo09 le 23/08/2008 19:07:17

ou dois-je placer ce fichier ?
merci

Commentaire de tungte le 04/02/2009 03:52:39

Désolé, j'avais oublié de renommer le exe c le quel quand doit changer
g telecharger le zip que doit faire merci

Commentaire de mrZodiac le 12/07/2009 20:34:49

salut j"ai télécharger le zip et je ne sais pas quesque je vais faire
stp aider moi ou je vais lé mettre

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Pixel shader [ par Galmiza ] Salut,Je suis très étonné de voir qu'il n'y a pas de boucles dans les pixels shader.Ex:; A simple pixel shader; This uses the ps 2.0 instruction set a texture plane [ par azkab ] bonjour,bon j ai un petit souci, j ai les coordonnées x,y d une ligne et je veux lui affecter une texture, sauf que cette texture doit s afficher hori DirectX probléme de coordonnées de texture [ par chauty ] Bonjour,J'ai créé un script pour 3d Studio qui me crée un fichier txt avec les coordonnées des vertices, les normales et les coordonnée de textures (j Pixel Shader [ par NoRabbit ] Hello,j'ai testé quelques tutoriaux sur les pixels shader avec opengl mais ça ne veut pas fonctionner. En fait, ma carte (ou mes drivers ? j'ai téléch Help!! Cube 3D + texture [ par lee137 ] Bonsoir! En fait j'essaye de faire une cube 3D qui tourne, avec sur chaque face une texture. En effet je suis débutante en programmation 3D et je pen pbl effets audio (directx 9) [ par greg_greg ] salut Je voudrais réaliser des effets audio en C++. J'ai trouvé des exemples grace a sdk directx 9. Le fichier exe fonctionne parfaitemen Sprite qui ne s'affice pas help!! [ par olivierpot2 ] Bonjour à tous,Je débutes avec c++/directx, et j'essaye d'afficher une image toutes bêtes. Apparement l'initialisation de directX et ok, mais rien ne Lightmap avec directx [ par supergrey ] Bonjour, je cherche a faire des lightmap avec directx...Apparemment il faut créer une texture contenant les ombres avec un logiciel de modélisation co Copier une texture vers une autre en mémoire systeme ? [ par supergrey ] Bonjour, j'ai repris une source qui crée une dll directx 9, en gros c'est pour un hook. Donc un programme qui utilise directx charge des textures et m directx [ par tarchor ] Sa va faire un ans que je joue a CSS et depuis que j'au restaurer mon ordi jai un probleme avec directx. Quand je joue il me ferme CSS et me mettent :


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,842 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales