quelqu'un a reussi a faire il filtre de flou avec les 1.1, un effet sepia ?
car j'ai des codes qui le font mais c'est toujours ps 1.4 ...
merci
quelqu'un a reussi a faire il filtre de flou avec les 1.1, un effet sepia ?
car j'ai des codes qui le font mais c'est toujours ps 1.4 ...
merci
Pour le blur tu procèdes come expliqué dans le pdf, en remplaçant texld par tex. Y besoin d'aucun code spécifique aux ps1.4 pour faire ça.
Pour le sepia, il faudra que tu t'en tires sans "dependant read" sur une texture 1D. Ca doit pas être si sorcier, je pense que tu peux t'en tirer avec simplement une bonne équation (genre tu calcules ton niveau de gris, et t'interpoles ensuite sur une couleur donnée avec ça. c'est pas exactement du sepia mais c'est le même genre).
Sinon tu verras, une fois que t'auras un peu manipulé tout ça tu trouveras toi-même comment faire les effets recherchés.
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
pour un effet de flou j'ai fait ca qui ne marche pas
je pense que c def c0, 0.2f, 0.2f, 0.2f, 1.0f qui pose pb ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 def c0, 0.2f, 0.2f, 0.2f, 1.0f tex r0, t0 tex r1, t1 tex r2, t2 tex r3, t3 tex r4, t4 add r0, r0, r1 add r2, r2, r3 add r0, r0, r2 add r0, r0, r4 add r0, r0, c0
pour les autres effets je me debrouillerai moi meme apres avoir tout lu de ce site :http://www.shaderx.com/direct3d.net/...r/shader3.html
tex ne prend qu'un argument :
tex t0
tex t1
...
Et ensuite tu utilises donc tx au lieu de rx. Sauf pour les registres de destination evidemment.
Quant à ton def c0, je ne pense pas qu'il aime le 'f' derriere tes valeurs (enfin j'ai jamais essayé alors pourquoi pas...). En tout cas tu peux l'enlever.
Compile ton shader avec psa.exe fourni dans le SDK Dx, il te dit à quel endroit se trouve l'erreur si erreur il y a.
A noter que pour faire un effet de flou de cette manière il faut placer ta texture dans les 4 premiers stages (Device->SetTexture(0, Tex); Device->SetTexture(1, Tex); Device->SetTexture(2, Tex); Device->SetTexture(3, Tex)) avec des coordonnées de texture légèrement décalées (d'un texel). Enfin j'ai jamais fait non plus donc vaudrait mieux que tu cherches un ptit explicatif sur le net
Sinon mon conseil c'est de potasser un peu + ça en détail avant de poster à tout va (pas que ça me dérange de répondre, c'est juste un conseil).
Happy coding !
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
ok , j'ai du mal à comprendre comment fonctionne la logique du code.
en fait je fais mes shader une 1ere fois dans MFCPixelShader et ca me dis deja les erreur, mais pas la ligne précisemment.
Je vais continuer à potasser merci ...![]()
hey tu as le dx sdk ?
il y a un effet de flou dans les samples (depth of field, soit flou différent suivant la distance) et a ma connaissance il y a une technique qui n'utilise que les PS1.1.
LeGreg
Mon site web | Mon blog | Mes photos | Groupe USA
> BONJOUR, JE SUIS NOUVEAU SUR CE FORUM
> presse la touche caps lock, stp
> OH.. MERCI C EST BEAUCOUP PLUS FACILE COMME CA
Meme reponse que sur l'autre forum![]()
Le flou se fait en moyennant les pixels voisins. La preparation se fait dans le vertex shader.
ps.1.1
def c0, 0.5, 0.5, 0.5, 0.5
tex t0
tex t1
tex t2
tex t3
lrp t1, c0, t1, t0
lrp t2, c0, t2, t3
lrp r0, c0, t1, t2
Voir aussi chapitres 19 et 20 de mon bouquin: N&B, Sepia, pique, embossage, etc.
ok merci, je regarde la doc du sdk pour trouver ce que t'as dis. Sinon j'ai testé ton filtre laurent, juste le code des PS , ca ne fonctionne pas, je suis obligé d'utiliser un complément en vertex shader ? et c'est quoi ce complément?
un code que en pixel shader qui fait un flou en fonction de la distance c'est pas possible ? :/
je lis toute une doc sur les PS la pour comprendre comment ca marche...
legreg j'ai pas trouvé ton exemple "deph of view" dans les sample, tu pourrai me dire dans quel exemple il est ?
Cemoi > Le shader fonctionne bien si tous les canaux de texture sont la et correctement decales : Le complement, c'est donc ce qu'a explique Loulou, ajuster les textures... Sinon, regarde le chapitre "convolutions en pixel shaders" dans mon book, pages 352 a 358. Il y a les explications detaillee et le code du vertex shader.
Sinon je crois que le depth of view sample est arrive avec DX9. Si tu tournes en DX8, il ne sera peut-etre pas la...
ok laurentUSA, je vais regarder pour les canaux de texture, je n'ai fait aucune opération dessus. Si je ne l'ai pas fait , c'est parce que je ne sait pas quelle texture mettre dans Device->SetTexture(1, Tex), le backbuffer ?. car je voudrai faire un flou sur tout l'écran, je comprend pas bien ...
ps : j'ai directx 8 oui, j'ai donc pas l'exemple, je vais essayer de le trouver.
En gros oui, mais comme ce n'est pas possible, ce sera la texture sur laquelle tu auras rendu ta scèneje ne sait pas quelle texture mettre dans Device->SetTexture(1, Tex), le backbuffer ?.
A noter que tu devras la mettre sur les 4 premiers canaux, pas seulement le 2ème.
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
Partager