Salut, j'ai besoin de pouvoir locker une texture de type D3DUSAGE_RENDERTARGET pour pouvoir copier les données dans une texture dynamique et pouvoir "flouter" celle ci lors de l'affichage puisque ca n'a pas l'air d'etre possible autrement.
Merci
Version imprimable
Salut, j'ai besoin de pouvoir locker une texture de type D3DUSAGE_RENDERTARGET pour pouvoir copier les données dans une texture dynamique et pouvoir "flouter" celle ci lors de l'affichage puisque ca n'a pas l'air d'etre possible autrement.
Merci
pourquoi ne pas utiliser un pixel shader?
Il faut que ta texture de rendu soit lockable. Il y a un flag ou un paramètre à passer pour ça lorsque tu la crées. A moins que ce ne soit que les surfaces de rendu qui soient verrouillables -- enfin regarde du côté de la doc.
Je refuse d'utiliser les pixelshader, question de principe :)
Je sais qu'on peut faire un backbuffer lockable mais pour les textures de rendu j'ai un doute, je vais chercher.
Comme je l'avais dit, cette fonction ne traite que des surfaces, mais a priori tu n'as de toute façon pas besoin d'une texture pour ce que tu veux faire.Citation:
IDirect3DDevice9::CreateRenderTarget
Creates a render-target surface.
HRESULT CreateRenderTarget(
UINT Width,
UINT Height,
D3DFORMAT Format,
D3DMULTISAMPLE_TYPE MultiSample,
DWORD MultisampleQuality,
BOOL Lockable,
IDirect3DSurface9** ppSurface,
HANDLE* pSharedHandle
);
Je voudrais juste dire que ce n'est pas viable comme solution. Tout ce qui requiert de lire avec le CPU des données rendues pour les réintroduire dans le pipeline est à déconseiller dans toutes les situations.Citation:
Envoyé par supergrey
Essaie de trouver une autre méthode pour faire ce que tu veux faire (quelqu'un à suggéré les pixel shaders mais tu peux également faire du flou avec un simple rendu dans une texture et les fonctions du fixed function pipeline(blending, bilinear/anisotropic filtering)), ou modifie tes plans.
LeGreg
Au départ je voulais juste augmenter le MAXMIPMAP sur cette texture mais ca ne fonctionne pas surement parceque c'est une surface de rendu.
Le flou est plus que leger, on voit les pixels.
Normalement ca ne devraist pas trop ramer c'est une texture de 128x128 ou pire 256x256
Je vais essayer d'adapter ma source avec CreateRenderTarget.
Bon j'ai réussit a recopier la surface de rendu dans la surface d'une texture dynamic mais ca ne fait toujours aucun flou.
Je pense que c'est parcequ'elle n'a qu'un niveau de mipmap, j'ai essayé de faire pareil dans une texture qui a plusieur niveau de mipmap mais ca affiche des choses bisard, comment puis je faire?