Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2892 connectés 

 


Dernière réponse
Sujet : [Direct3D] Mélanger les effets DotProduct3 et Texture
LeGreg my fault then :(
 
ceci dit, les passes multiples n'ont rien d'evident (bien que je ne connaisse pas ton niveau d'utilisation de DirectX)
et tu n'as precise nulle part que tu etais limité a une seule passe.
 
A+
LEGREG

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
LeGreg my fault then :(
 
ceci dit, les passes multiples n'ont rien d'evident (bien que je ne connaisse pas ton niveau d'utilisation de DirectX)
et tu n'as precise nulle part que tu etais limité a une seule passe.
 
A+
LEGREG
Tetragrammaton IHVH Si j'avais voulu faire du multipass, la question ne posait plus d'où le hors sujet.
LeGreg

Tetragrammaton IHVH a écrit a écrit :

 
C'était aussi mon idée mais bon, l'affaire est entendu. Legreg, non tu ne parles pas dans le vide, tu es juste hors-sujet, je voulais éviter de te le dire mais tant pis...




 
hors sujet? il ne me semble pas au contraire.
 
Bon on la refait:
 
<toi> Bonjour je voudrais texturer des objets en tenant
compte de trois choses,  
1 la valeur du produit scalaire d'une texture de normales et d'un vecteur eclairement (passee en Texture Factor)
2 la valeur de diffuse calculee par le moteur de Lighting de D3D
3 la valeur de diffuse tiree d'une texture.
Ca marche si je combine 1 et 2, ca marche avec 3 seul mais quand je fais les trois en meme temps ca marche pas :( comment je fais?
 
<moi> si tu n'y arrives pas en une seule passe tu le fais en plusieurs passes.  
premiere passe: tu rends ton objet avec le bump mapping et l'eclairage de Gouraud, que tu traces en opaque.
deuxieme passe, tu specifies un mode de blending multiplicatif
(dstcolor*srccolor + zero * dstcolor)
et tu traces ton objet avec la texture de diffusion seule par dessus. Si ton objet est trop sombre avec la deuxieme passe,
tu peux tracer un terme d'ambiant. Ou utiliser un blend Modulate2x a la place d'un blend Modulate simple.
 
<toi> tu es hors sujet..
 
<moi> tiens tu savais qu'on pouvait rendre un objet bumpmappe en dotproduct3 avec plusieurs sources de lumieres? (la c'est hors sujet)
 
LEGREG

Tetragrammaton IHVH

bjone a écrit a écrit :

et le nombre de stages :D
 
non, legreg tu n'as pas parlé dans le vide, c clair qu'avec les fichiers de technique, c assez facile de couvrir plusieures confihuration matérielles...
 
mais la dans le premier code y'a 2 textures dot3 & texture normale, et ça devrait passer une gf 2 mx (le diffuse étant bien sûr le diffuse calculé par le moteur T&L par vertex on est d'accord ?)  




 
C'était aussi mon idée mais bon, l'affaire est entendu. Legreg, non tu ne parles pas dans le vide, tu es juste hors-sujet, je voulais éviter de te le dire mais tant pis...
 
Pour le format des x files, je vais faire comme vous me le conseillez : faire un format propriétaire.

bjone et le nombre de stages :D
 
non, legreg tu n'as pas parlé dans le vide, c clair qu'avec les fichiers de technique, c assez facile de couvrir plusieures confihuration matérielles...
 
mais la dans le premier code y'a 2 textures dot3 & texture normale, et ça devrait passer une gf 2 mx (le diffuse étant bien sûr le diffuse calculé par le moteur T&L par vertex on est d'accord ?)
sombresonge Ya que les radeon qui font 3 textures par passe. Les carte à base de GF2 et 3 font 2 textures par passe. Il faut pas confondre le nombre de pixel pipeline et le nombre de texture par pipeline.
LeGreg ai-je seulement l'impression de parler dans le vide :sarcastic: ?
 
LEGREG
chrisbk je suis de l'avis de bjone, c plus simple de faire le sien (a mon avis) . Genre faire son exporteur max . bon, au début c un peu la misere mais une fois que tu vois comment ca marche, ca roule pas trop mal
bjone bin je sais poa, mais moa je préfère mon propre format de fichier, passke le .X pour le maitriser....
Tetragrammaton IHVH

bjone a écrit a écrit :

 
 
bin normalement faire du dot3 + texture ça devrait passer sur la gf 2 mx...  




 
Effectivement, ça passe mais on ne peut plus tenir compte de la couleur de diffusion.  
 
Sinon, concernant le fait que les fichier X ne peuvent enregistrer qu'une seule texture, il va falloir que j'utilise un autre format de stockage ou non ?

bjone

Tetragrammaton IHVH a écrit a écrit :

 
 
Ca fait pareil. Visiblement la geForce2 mx ne peut bouffer que 2 textures par passe. Finalement je reste avec une texture de diffuse et une texture de lightmap. Je rajouterai l'EBM pour les cartes à 4 texels par passe (GeForce3 ?)
 
Justement, j'ai un nouveau problème : Le format de fichier .X n'enregistre qu'une seule texture. C'est un peu moyen ça.  




 
bin normalement faire du dot3 + texture ça devrait passer sur la gf 2 mx...

LeGreg

Tetragrammaton IHVH a écrit a écrit :

 
Ca fait pareil. Visiblement la geForce2 mx ne peut bouffer que 2 textures par passe. Finalement je reste avec une texture de diffuse et une texture de lightmap. Je rajouterai l'EBM pour les cartes à 4 texels par passe (GeForce3 ?)




Je me repete mais as-tu pense que tu pouvais faire plusieurs
passes??
(et avec les D3DXTECHNIQUE ca est devenu enfantin de  
faire plusieurs techniques en fonction du hardware)
 
LEGREG

Tetragrammaton IHVH

bjone a écrit a écrit :

et la deuxième texture si tu la fous dans le stage 1 ou lieu du 2 ?  




 
Ca fait pareil. Visiblement la geForce2 mx ne peut bouffer que 2 textures par passe. Finalement je reste avec une texture de diffuse et une texture de lightmap. Je rajouterai l'EBM pour les cartes à 4 texels par passe (GeForce3 ?)
 
Justement, j'ai un nouveau problème : Le format de fichier .X n'enregistre qu'une seule texture. C'est un peu moyen ça.

bjone et la deuxième texture si tu la fous dans le stage 1 ou lieu du 2 ?
LeGreg exemple diffuse + lightmap en deux passes:
je trace ma geometrie avec texture lightmap.
je trace par dessus en mode "modulated2x"
ma geometrie avec texture diffuse.
 
A+
LEGREG
LeGreg

Tetragrammaton IHVH a écrit a écrit :

 
Bon ben merci pour l'aide, j'attendrais d'avoir une meilleure CG.



 
de mon temps on faisait tout en plusieurs passes.
mais ce temps est revolu apparemment :(.
 
LEGREG

Tetragrammaton IHVH

bjone a écrit a écrit :

ptet un problème de coordonnées avec lpDevice->SetTextureStageState( 2, D3DTSS_TEXCOORDINDEX, 0 );
:??:  




 
Non, il n'y a pas de problème, j'utilise les mêmes coordonnées (u,v) pour toutes les textures.
 
Sinon quand je fais ValidateDevice, j'obtiens un DRIVERINTERNALERROR :( Fait chier.
 
Bon ben merci pour l'aide, j'attendrais d'avoir une meilleure CG.

bjone ptet un problème de coordonnées avec lpDevice->SetTextureStageState( 2, D3DTSS_TEXCOORDINDEX, 0 );
:??:
chrisbk

Tetragrammaton IHVH a écrit a écrit :

 
 
C'est un geforce2 mx.
J'ai essayé MFCtex (l'utilitaire qui permet de combiner les textures sur un cube qui tourne, non ?) mais il a aucun interet avec le dot-product3 puisqu'il faut fournir un D3DRS_TEXTUREFACTOR.  




 
ben ca tu peux, dans colorArg2 tu choisis 'factor' et tu met ton facteur (quoique la vu que c du test on s'en fous un peu) dans le truc 'blend'
 
 
edit : si tu fais :
 
 
DWORD dwNumPasses;
HRESULT hr =  pd3dDevice->ValidateDevice( &dwNumPasses );
 
 
qu'est ce que ca te donne ?

 

[jfdsdjhfuetppo]--Message édité par chrisbk--[/jfdsdjhfuetppo]

Tetragrammaton IHVH

chrisbk a écrit a écrit :

humpf, quoi c'est exactement ta carte ?
 
truc tout con, t'as essaye avec l'utilitaire de dx ? (mfctex je crois)
 
ca te permettrais de voir si c toi qui a bricoler dans ton code o un manque de caps qui fait que ca passe pas  




 
C'est un geforce2 mx.
J'ai essayé MFCtex (l'utilitaire qui permet de combiner les textures sur un cube qui tourne, non ?) mais il a aucun interet avec le dot-product3 puisqu'il faut fournir un D3DRS_TEXTUREFACTOR.

chrisbk humpf, quoi c'est exactement ta carte ?
 
truc tout con, t'as essaye avec l'utilitaire de dx ? (mfctex je crois)
 
ca te permettrais de voir si c toi qui a bricoler dans ton code o un manque de caps qui fait que ca passe pas
Tetragrammaton IHVH Je veux appliquer 2 textures sur mes objets :
* une texture de diffusion
* une texture de bumpmapping en dot-product3
* eclairage dynamique
 
// texture 0 : bump mapping en dotproduct3
lpDevice->SetTextureStageState( 0, D3DTSS_COLOROP,   D3DTOP_DOTPRODUCT3 );
lpDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
lpDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_TFACTOR );
lpDevice->SetTextureStageState( 0, D3DTSS_ALPHAOP,   D3DTOP_DISABLE );
lpDevice->SetTextureStageState( 0, D3DTSS_TEXCOORDINDEX, 0 );
// texture 1 : composition avec l'éclairage gouraud  
lpDevice->SetTextureStageState( 1, D3DTSS_COLOROP,   D3DTOP_MODULATE );
lpDevice->SetTextureStageState( 1, D3DTSS_COLORARG1, D3DTA_CURRENT );
lpDevice->SetTextureStageState( 1, D3DTSS_COLORARG2, D3DTA_DIFFUSE );
lpDevice->SetTextureStageState( 1, D3DTSS_ALPHAOP,   D3DTOP_DISABLE );
lpDevice->SetTextureStageState( 1, D3DTSS_TEXCOORDINDEX, 0 );
// texture 2 : texture de diffusion
lpDevice->SetTextureStageState( 2, D3DTSS_COLOROP,   D3DTOP_MODULATE );
lpDevice->SetTextureStageState( 2, D3DTSS_COLORARG1, D3DTA_TEXTURE );
lpDevice->SetTextureStageState( 2, D3DTSS_COLORARG2, D3DTA_CURRENT );
lpDevice->SetTextureStageState( 2, D3DTSS_ALPHAOP,   D3DTOP_DISABLE );
lpDevice->SetTextureStageState( 2, D3DTSS_TEXCOORDINDEX, 0 );
 
=> Et ça sort tout noir.  
 
Si j'enlève le texture n°2, j'ai effectivement la composition du bump et de l'éclairage gouraud.
J'arrive à mapper une texture de diffusion seule sans problème.
 
Je ne comprends pas ce qui manque ??? :??:

Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR