IMAGES ET EFFETS HLSL / SHADERS DIRECTX 9

BumpMANN Messages postés 330 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 26 janvier 2009 - 18 sept. 2007 à 15:30
unionx Messages postés 190 Date d'inscription dimanche 17 avril 2005 Statut Membre Dernière intervention 18 mars 2009 - 19 déc. 2008 à 16:55
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/44113-images-et-effets-hlsl-shaders-directx-9

unionx Messages postés 190 Date d'inscription dimanche 17 avril 2005 Statut Membre Dernière intervention 18 mars 2009
19 déc. 2008 à 16:55
bonjour, j'ai bien aime ce que tu as fait et je me demande si tu peux me donne un lien vers un tutorial de HLSL en francais pour les debutants, merci.
cs_ZJP Messages postés 6 Date d'inscription lundi 15 septembre 2003 Statut Membre Dernière intervention 9 avril 2008
9 avril 2008 à 19:41
@BUMPMANN
Bonjour,
Très impresionné par ton exemple .Je suis a la recherche d'une lib qui permetrait de faire la même chose a un buffer en memoire a la place d'un "Picture Box". Objectif : Utiliser les shaders dans un moteur DX7 ou autre. Genre Call_shader_DLL(Adr_du_buffer,largeur,hauteur,nbpixel,"shader_machin.fx")
Je suis prêt a investir dans telle lib.

Zali Jean-Pierre. zjp@laposte.net
BumpMANN Messages postés 330 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 26 janvier 2009
20 sept. 2007 à 21:59
Ah, et pour le projet en 8.0, désolé mais vous pouvez la compiler facilement avec n'importe quoi, il suffit de mettre les sources dans un projet dll et de rajouter d3d9.lib d3dx9.lib pour peu que vous n'ayez jamais codé avec directx ou ouvert le fichier projet avec notepad.
BumpMANN Messages postés 330 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 26 janvier 2009
20 sept. 2007 à 21:57
Alors d'abord, merci pour le lien pour le redist SP1 de visual studio, je ne le connaissais pas. Je met le lien a jour.

Ensuite plusieurs choses :

1/ Ma dll a bien été compilée en release et non pas en debug, je ne ferais pas cette erreur.
2/ Il n'y a PAS besoin du pack developpeur de directx (sdk) si vous voulez juste utiliser la dll (la recompiler, en revanche, si), mais bien juste les redistribuables. Ce sont des versions récentes du directx 9.0c: En général, dans le cas d'un produit ou d'un jeux qui en utilise une, il fournit le redist qui est installé silencieusement lors de l'installation. Il n'y a pas besoin de télécharger ou installer tout directx, mais seulement quelques packages suffisent lorsqu'on possede deja le directx 9.0c de base. Là, evidemment je l'ai pas mis dans le zip.
3/ Pour fournir une dll vraiment exploitable, il faudrait compiler avec vc6... a partir de vs2003, il faut les dlls bizarre. Désolé, mais la j'ai pas le courage de le télécharger juste pour ca. Si malgré tout c'est trop embetant d'installer les packages récents de directx, il faudrait aussi le recompiler avec le premier directx 9... Et du coup apporter quelques modifications au code aussi.
jibob Messages postés 59 Date d'inscription mardi 10 mai 2005 Statut Membre Dernière intervention 4 juillet 2013
20 sept. 2007 à 19:57
Il apparait que cette DLL a été compilée avec le patch SP1 de VISUAL STUDIO 2005 (celui pour Vista).
Les dépendances certaines de sont les suivantes
msvcp80.dll
msvcr80.dll
d3d9_31.dll

Le projet de la DLL est au format 8.0 ce qui m'empêche personnellement de le recompiler (version limitée aux projets 7.0 et 7.1)
Le lien correct pour obtenir la version 8 du runtime SP 1 de VISUAL STUDIO
http://www.microsoft.com/downloads/details.aspx?familyid=200B2FD9-AE1A-4A14-984D-389C36F85647&displaylang=fr

J'ai DirectX 9.0c complétement installé et fonctionnel, mais il semble qu'il soit nécessaire d'installer le PACK DEVELOPPEUR de DIRECTX juste pour que cette DLL puisse se charger.
Le lien (en espagnol, désolé) suivant explique que les DLL énumérées ne servent qu'au débug.
http://www.emudesc.net/foros/nintendo-64/12705-coloquen-todos-pluguins-pack-de-texturas-quienes-tengan-6.html

Le projet me parait néanmoins interessant, c'est pourquoi je prie l'auteur d'adapter son projet à la réalité d'un projet publié sur vbfrance à savoir:
1) désactiver le débug avant la compilation, ce qui éliminera les dépendances d3d9_*.dll et évitera à de simple testeurs de se lancer dans une usine à gaz.
2) et ainsi fournir une DLL exploitable, car ceci est destiné à des habitués de VB.
3) convertir si possible son projet en projet version 7.0 ou 7.1 afin qu'il soit exploitable par ceux qui ne souhaitent pas se noyer dans un patch pour Vista.
Merci d'avance.
BumpMANN Messages postés 330 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 26 janvier 2009
18 sept. 2007 à 22:49
J'ai aussi compilé la dll avec visual studio 2005, et cette saloperie a besoin de certaines dlls. Je crois qu'elles sont déjà installées sur des pc a jours (windows xp avec service pack, vista...) sinon, elles sont disponible ici:

http://www.microsoft.com/downloads/details.aspx?displaylang=fr&FamilyID=32BC1BEE-A3F9-4C13-9C99-220B62A191EE

(et désolé pour tous ces posts, ça commence a faire beaucoup)
BumpMANN Messages postés 330 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 26 janvier 2009
18 sept. 2007 à 22:45
La dll est disponible dans le zip, et les sources de cette dll sont aussi dans le zip.

Mais je crois que vb fait aussi cette erreur lorsque la dll appelée a elle même une dll manquante, et c'est donc possible qu'il te manque un directx récent.

Il est possible de télécharger la dernière version du redistribuable de directx (a ce jour) ici:
http://www.microsoft.com/downloads/details.aspx?displaylang=fr&FamilyID=cb7397f3-0949-487b-9247-8fee451bf952
ramzi_achich Messages postés 7 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 27 mars 2009
18 sept. 2007 à 22:35
Merci une erreure est produite :
"Imagefx.dll est introuvable"
BumpMANN Messages postés 330 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 26 janvier 2009
18 sept. 2007 à 20:16
voilà!

- Ajout de swap chains pour partager les textures et buffers
- Possibilité de reprendre le dernier rendu (Render to surface...)
- Ajouté deux fonctions pour séparer rendu et affichage (ifx_PreRender et ifx_PostRender)
- Ajout d'un support de viewport
- Ajout d'un exemple supplémentaire: un programme de dessin
- Rajouté encore quelques commentaires
BumpMANN Messages postés 330 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 26 janvier 2009
18 sept. 2007 à 15:30
Finalement je bosse encore sur ce projet: j'ai ajouté un Render to texture, pour récupérer le résultat dans une texture et donc la réutiliser (J'ai fait ça dans le but de faire un programme de dessin, mais ça peut très bien convenir a un motion blur ou autres effets de ce genre), du coup j'ai rajouté deux fonctions pour séparer le rendu dans la texture et le rendu a l'écran (le rendu a l'écran est un simple affichage de la texture, en T&L), je suis en train d'utiliser des viewports pour cibler le rendu, si on veut juste redessiner un bout de la texture (Utile encore pour mon programme de dessin, inutile de recalculer toute l'image a chaque fois), et enfin je compte rajouter des swaps chains pour partager les textures entres les différents affichages.

Je ferai la maj une fois ça fait ^^
Rejoignez-nous