cs_Adeon
Messages postés293Date d'inscriptionjeudi 21 août 2003StatutMembreDernière intervention10 avril 20152 28 juil. 2009 à 11:15
Salut !
Je vois que tu fais un DrawPrimitive pour l'herbe et un pour la terre.
n'y a t-il pas moyen, en remaniant un peu les SetTextureStageState de faire un blending astucieux des 3 textures du terrain ( herbre, densité de terre, terre ) ?
Merci
dorralola
Messages postés6Date d'inscriptionmercredi 11 avril 2007StatutMembreDernière intervention25 avril 2007 29 avril 2007 à 19:12
est ce que il y a des etape qu il faux suivre pour integerer des bib de sdk dans visuel c express
et merci
rei3
Messages postés24Date d'inscriptionvendredi 30 juillet 2004StatutMembreDernière intervention26 avril 2006 9 mai 2006 à 17:29
Merci pour vos commentaires ^^,
gadourpro -> quel sont tes critères pour dire que deux objet 3D sont identique?
gadourpro
Messages postés9Date d'inscriptionlundi 20 mars 2006StatutMembreDernière intervention 8 mai 2006 8 mai 2006 à 15:23
en faite je ve un algorithme de comparaison des objets 3d.
merci.
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 20237 8 mai 2006 à 11:22
Xyueohjqsdhbgj djh ehzgtz_i ? za zyur! zyui qtzèeha.
C'est ce que ça m'a fait l'effet quand j'ai lu vos commentaires (arnaud16022 et gadourpro) !
Sinon rei3 continue dans cette voie !
Bonne prog,
@++
Arnaud16022
Messages postés1329Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention16 juin 20102 8 mai 2006 à 11:10
similaire, cad ? parfaitement équivalent ?
si oui, tu charges ton modèle, tu charges tous les autres et tu comprares tous les vertices entre eux.
si non , tu charges quand même, tu fais un rendu dans une texture, et tu dis à l'utilisateur, choisissez vous même la texture qui ressemble à ce que vous cherchez.
Si ça te va pas, doit y avoir de vrais algos, mais alors là, faut du level.
gadourpro
Messages postés9Date d'inscriptionlundi 20 mars 2006StatutMembreDernière intervention 8 mai 2006 8 mai 2006 à 10:33
bonjour, c est travail magnefique, je te felicite.
t'as une idée comment je peux trouver un objet 3D dans une repertoire donnée similaire a un objet déja donnée.
en faite c un moteur de recherche 3d données= un objet 3D
resultat = les objet 3D similaire ds une repertoire donnée
Merci d'avance
rei3
Messages postés24Date d'inscriptionvendredi 30 juillet 2004StatutMembreDernière intervention26 avril 2006 27 avril 2006 à 12:43
Ah oki c'est bon à savoir ^^ j'avais jamais essayé cette combinaison.
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 27 avril 2006 à 01:15
Non c'étais pas ça le problème. C'est que j'étais pas en couleur 32 bits, j'étais en 16 bits. Donc impossible de charger un depth buffer de 24bits en 16bits.
rei3
Messages postés24Date d'inscriptionvendredi 30 juillet 2004StatutMembreDernière intervention26 avril 2006 27 avril 2006 à 01:05
vi c'est bien une geforce4 mx 440, lol je savais pas qui y avais un modèl en dessous :/
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 26 avril 2006 à 22:36
Ta carte est-elle de modele MX ou TI. La différence est peut-être là.
rei3
Messages postés24Date d'inscriptionvendredi 30 juillet 2004StatutMembreDernière intervention26 avril 2006 26 avril 2006 à 18:28
Il est vrais que sur les vielle cartes elle ne supporte pas le Depth Buffer en 24bits ^^, mais ce que je trouve le plus bizard c'est que j'ai revérifié les caps de ma gf4 440 et elle supporte le Depth Buffer en 24bits, comment ca se fait que nos carte soit diférente O_o? enfin l'important c'est que ca marche maintenant ^^
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 23 avril 2006 à 22:49
Bingo tout fonctionne. Jai réactiver le depth buffer mais avec un format différent:
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 23 avril 2006 à 22:34
Oki sa marche jai desactiver le depth buffer
m_d3dpp.EnableAutoDepthStencil = FALSE;
Mais les textures sont étranges. Les herbes et le fleurs ne saffiche pas si on les regardes de par dessus.
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 23 avril 2006 à 22:27
D'où ça peu bien venir. C'est DirectX qui marche pas ou c'est la carte qui supporte pas? Le problème dans ton code ce situe exactement ici:
if (m_pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_HARDWARE_VERTEXPROCESSING | D3DCREATE_PUREDEVICE, &m_d3dpp, &m_pD3DDevice) != D3D_OK)
// si la création en mode HARDWARE à échoué, on crée le device en mode SOFTWARE (calcule des vertex par le CPU)
if (m_pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &m_d3dpp, &m_pD3DDevice) != D3D_OK)
{
Console << "Impossible d'initialiser le peripherique 3D" << endl;
return false;
}
rei3
Messages postés24Date d'inscriptionvendredi 30 juillet 2004StatutMembreDernière intervention26 avril 2006 23 avril 2006 à 17:58
C'est pas normal car j'ai essayer sur une gf mx440 et ca marche nikel. Il y a un problème a initialisation du device.
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 22 avril 2006 à 15:41
Non ici non plus ça marche pas. J'ai le meme message d'erreure et les meme messages dans la console que ce que je t'ai décrit dans ton second Terrain 3D.
rei3
Messages postés24Date d'inscriptionvendredi 30 juillet 2004StatutMembreDernière intervention26 avril 2006 28 févr. 2006 à 01:02
Merci ca fais plaisir ^^
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 19 févr. 2006 à 19:40
Très beau à voir, faut l'avouer....
poulpixx
Messages postés36Date d'inscriptiondimanche 11 décembre 2005StatutMembreDernière intervention17 février 2006 9 janv. 2006 à 00:53
c'est vraiment très bon!!! Bravo a toi.
rei3
Messages postés24Date d'inscriptionvendredi 30 juillet 2004StatutMembreDernière intervention26 avril 2006 12 déc. 2005 à 09:35
Arnaud16022 : Merci pour ton screen :) ce que tu vois est normale en fait c'est le bord du quad de l'eau ou l'alpha doit pas etre tout a fais au max, il faut juste éffacer le bord de la texture :) enfin c'est pas bien grave ^^
Williamprotti : merci ^^
Raoullevert : merci j'espère que ce code servira à un maximun de personnes ^^
cs_raoullevert
Messages postés4Date d'inscriptionmardi 21 novembre 2000StatutMembreDernière intervention19 juillet 2006 11 déc. 2005 à 22:11
J'ai été pas mal impressionné par ton code. C'est propre et ca rend terriblement bien. J'ai juste eu un soucis avec le PC qui me sert a developper (Athlon 1.5 + ATI 7500 VE familly), a savoir que le haut des collines n'est pas rendu, et j'ai a la place une espèce de brouillard bleuté. Ca doit venir du PC ;-).Sinon c'est fluide, ca fait plaisir ...
Je decouvre le DX, après avoir codé avec GL et ton code est un super tuto, merci.
williamprotti
Messages postés44Date d'inscriptionsamedi 15 mars 2003StatutMembreDernière intervention21 mai 2007 10 déc. 2005 à 10:58
joli!!!! presque mieux que farcry :P!! chouette vraimetn!
Arnaud16022
Messages postés1329Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention16 juin 20102 6 déc. 2005 à 19:54
heu dsl mais pour le screen il me faut une adresse a laquelle l'envoyer....
rei3
Messages postés24Date d'inscriptionvendredi 30 juillet 2004StatutMembreDernière intervention26 avril 2006 6 déc. 2005 à 09:07
J'ai deja programmé en shader (avec du CG) pour faire in plug-in pour winamp mais comme le pc ou j'ai developpé mon programme n'en avais pas alors je les ai pas utilisé :p
Si tu veux utiliser Dev-Cpp il faut récuppérer les lib qui on été complié pour car celle du sdk de directx ne marche que pour visual mais sinon il y a rien a changer au code.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 5 déc. 2005 à 19:03
DirectX SDK est obligatoire pour créer le prog sur le pc de dev, normal comme pour toute lib, faut bien que le linker trouve les points d'entrée des fonctions.
Le client n'a besoin que d'avoir le runtime DirectX.
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 20237 5 déc. 2005 à 18:50
Je pensait qu'il falait DirectX SDK
Merci
Arnaud16022
Messages postés1329Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention16 juin 20102 5 déc. 2005 à 00:00
pas de raison que ca marche pas...
ca me fait penser que j'ai tjs pas envoyé le screenshot... je fais ca demain promis ^^
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 20237 4 déc. 2005 à 21:49
C'est peut-être une question bête mais est-ce que ça marche sous Dev-Cpp ?
Galmiza
Messages postés573Date d'inscriptionsamedi 16 novembre 2002StatutMembreDernière intervention 9 avril 20081 3 déc. 2005 à 21:26
J'ai posté une source qui introduit les pixels shaders avec DirectX. Ca te permettra de te familiariser avec le langage et peut-être, je l'espère, te motivera pour apprendre.
Les vertex shaders sont peu différents: ils peuvent aussi recevoir des constantes depuis le programme C++, ont accès aux propriétés des vertex (position, normale, binormale, coordonnées textures, bref tout ce qui compose le format de vertex), et peuvent envoyer des valeurs au pixel shader (qui va être executé ensuite) via les sorties oTi (ti dans le pixel shader), mais surtout ils permettent de calculer soi-même la position du projeté du vertex sur le backbuffer (généralement le résultat du produit de la matrice de projection par le vertex).
Je vais très certainement poster incessement sous peu une source sur les vertex shaders.
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 26 nov. 2005 à 01:18
C'est très joli, je vais être obligé d'installer le sdk dx9 moi!
SpEeDy_Fire
Messages postés25Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention16 avril 2008 24 nov. 2005 à 20:50
Rarement vu quelque chose d'aussi bonne qualité, ça donne envie de se mettre au graphisme.
10/10
rei3
Messages postés24Date d'inscriptionvendredi 30 juillet 2004StatutMembreDernière intervention26 avril 2006 24 nov. 2005 à 14:05
Merci pour vos commentaires ça fait plaisir :)
Alors pour répondre un peu aux commentaire :
BADRBADR : les textures j'essaye de les récupérer ou je peu, les arbres vient de photo récupéré sur le net et la texture de terre et d'herbe de Unreal. Pour le terrain je crée un maillage de 128 sur 128 carrés et je modifie l'altitude des points du maillage en fonction d'une image en niveau de gris.
ARNAUD16022 : pour l'utilisation des shader je suis pour mais comme le prof avait un portable avec une carte graphique intégré, ce n'était même pas la peine d'y penser, c'est pour ça que j'ai limité au minimum les objets animés :p et c'est pour ça que j'ai utilisé le billboarding pour ne pas avoir trop d'objet 3D ^^. L'avion y vient de SDK de DirectX :p. Quand au bug vi j'aimerai bien voire un screen ^^ et pour le site bien je c'est pas sur tout les pc ou j'ai essayé ça marchais peut être ça viens du navigateur.
GALMIZA : t?inquiète des que j'aurai le temps je passe au shader, puis j'ai très bien compris ce que tu voulais faire, je fais déjà des rendu sur des textures pour faire de la réflexion mais sans shader :p.
Voila puis vive DirectX j'ai commencer par ça et je ne regrette pas mon choix et je le préfère a OpenGL car certes pour les débutant c'est plus facile mais des que l'on veux faire des truc un peu plus poussé ça devient vite galère et les extension et touts.
Galmiza
Messages postés573Date d'inscriptionsamedi 16 novembre 2002StatutMembreDernière intervention 9 avril 20081 24 nov. 2005 à 13:36
C'était juste pour zapilser OpenGL ;), vu que personne ne défendait DirectX...
[mode philo]En fait "intuitif" n'est pas bien adapté. Car lorsque l'on a assimiler la logique de la librairie, tout devient limpide et on peut aisement tout trouver tout seul, en suivant cette logique. C'est un peu pareil avec la programmation windows, tous ces evenements... Dans ce cas, tout logiciel peut devenir intuitif (peut-être pas IDEAS en fait), au bout de plus ou moins de temps.[\mode philo]
Tu peux bien sur faire l'équivalent avec une dérivée d'un environnement mapping sur une surface "gondolée" (à la FarCry si ma mémoire visuelle est bonne et surtout si c'est ça dont tu veux parler). L'avantage est que ça rend bien sur les bords et que tu peux adapter la déformation des reflets/refract à la situation via un moteur physique (moteur utra simplifié car dédié) car tu controles les vertex.
Inconvénients: des vertex (donc projections) en plus, et un important flux via le port AGP si tu veux mettre à jour toi-même la position des vertex (pour moteur physique). Sinon tu balances des données pour le vertex shader et tu déduis les positions de tous les vertex (FarCry again).
Je ferai un code lisible quand je me replongerai dedans et quand j'aurai eradiqué des bugs pas trop mineurs (invisibles sur le screen) à propos du rendu de la scene au dessus de l'eau à l'envers:
Le stencil est possible mais implique d'autres rendus => long, actuellement je fais une comparaison de profondeur avec l'eau mais ça implique d'inverser la comparaison du Ztest (affiche si derriere) donc il faut trier les objets à rendre par ordre de profondeur et leur donner des formes adaptées. Ca fait longtemps que j'ai fait une pause dessus, je ne souviens plus trop des autres détails génants.
Arnaud16022
Messages postés1329Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention16 juin 20102 24 nov. 2005 à 12:37
hum
oué pas com, je pensais bien qu'il fallait renderiser sur une texture mais apres ca m'embetait pour la suite
t'es sur qu'on peut pas faire ca non plus avec un vertex ou fragment shader ? note bien que je n'en sais rien du tout ^^
tu dis qeu DirectX permet de coder ca intuitivement... ya moyen de voir un bout de code pliz ? juste par curiosité... merci
ciao
ad
Galmiza
Messages postés573Date d'inscriptionsamedi 16 novembre 2002StatutMembreDernière intervention 9 avril 20081 24 nov. 2005 à 12:16
Déja, 10/10 parce que tu n'as pas pris OpenGL (ça balance sur l'excellent DirectX avec lequel on peut TOUT faire, donc je ne me gene pas).
Le rendu est très bon. Pas spectaculaire mais presque professionnel.
Pour l'eau tu peux utiliser des shaders pour faire de la reflection et de la refraction plus effet vagues.
Tu fais un rendu de la scene sur une texture1 et un rendu de la scene symetrique par rapport au plan de l'eau (sans la partie sous l'eau, assez chiant à faire) sur une texture2.
En suite tu projetes un quad orthogonalement avec la texture1 sur le backbuffer (ca revient a avoir fait un rendu dessus directement).
Puis tu affiches le plan de l'eau avec en parametres du pixels shader la texture1, la texture2 et une texture de bump.
Apres c'est facile: tu peux afficher une eau 100% transparente si tu lui donnes les pixels de la texture1, 100% reflechissante si tu lui donnes les pixels de la texture2. Perso je fais une interpolation linéaire (refraction/reflection): plus sin((caméra-pixel),normale) au plan est proche de 0, plus c'est de la refraction.
Pour la déformation avec la texture bump, tu utilises juste le contenu de ses pixels pour modifier légerement les coordonnées des pixels que tu prends sur texture1 et texture2.
Voila voila, ca rend nickel ensuite. Exactement comme dans half-life 2, mieux que la démo du moteur ogre.
La seule difficulté est de calculer les coordonnées textures des pixels à utiliser en fonction de la position 3D du point de l'eau considéré.
En espérant avoir été clair.
DirectX, lui, permet facilement et INTUITIVEMENT de coder tout ça. Tu as donc fais le bon choix (et ça rebalance ...).
Arnaud16022
Messages postés1329Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention16 juin 20102 24 nov. 2005 à 00:04
je sais pas si t'es au ct mais ton site plante totalement...
Arnaud16022
Messages postés1329Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention16 juin 20102 23 nov. 2005 à 23:55
alors...
bon déja effectivement le screen est pas mal ca donne envie :p
pour le billboarding, perso je déteste ca, ca n'est bon que pour les particules ou presque, mais la tu as plutot bien géré ton coup le rendu est pas si mauvais au final.
pour l'eau: la translation de texture c'est d'un banal :D mdr
essaye plutot de faire des vagues. pour ca plusieurs solutions... soit tu te lances dans les fragment shaders (déconseillé...) mais résultat magnifique avec reflets sublimes, soit tu crées un modele 3d animé de vague ( voir exemple d'un tel fichier plus son loader openGL dans mon prog Sniper, qqpart dans le code ^^ ), soit tu fais ca avec des fonctions mathématiques en temps réel, je pense que c'est la meilleure solution, presque la plus rapide, et permettant d'obtenir un rendu pas mal du tout a peu de frais
pour les roseaux...c'est trop statique tout ca LOL. un petit conseil, je sais pas dans quelle mesure c'est faisable en DirectX, crée une matrice de déformation variant au cours du temps et multiplie la a la matrice actuelle, ca peut etre sympa, a esssayer du moins.
par contre méchant bug, ya un espece de carré a moitié texturé avec une couche alpha qui se ballade sous la map, si tu veux un screen ...
et pour l'avion, t'as pas piqué celui de CF3D? c'est pas une critique hein c'est juste qu'il me rappele celui de funto..
un seul point négatif, DirectX mdr ^^ avis personnel bien sur :D
bonne prog
++
ad
cs_badrbadr
Messages postés475Date d'inscriptionjeudi 19 juin 2003StatutMembreDernière intervention 3 novembre 20081 23 nov. 2005 à 23:22
2 fois bravo, le screenshot est très beau et j'ai juste hate de rentrer chez moi pour l'essayer.
La qualité visuelle me fait penser à Far Cry (qqch de meme) avec son île paradisiaque, vous trouvez pas?
Mais j'ai une question, où est-ce que tu trouves les textures...est-ce que c'est toi qui les a fait ou encore tu les a pris de quelque part. Même chose pour le terrain 3d, je sais que pour l'avion, c'est directx mais ton terrain, t as fait comment pour générer les coordonnées.
Bonne continuation
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 23 nov. 2005 à 23:05
Vraiment superbe, surtout continue dans cette voie.
shenron666
Messages postés229Date d'inscriptiondimanche 14 septembre 2003StatutMembreDernière intervention20 août 2014 23 nov. 2005 à 22:25
Bravo pour le travail et aussi pour avoir déposé le code source, c'est rare une petite demo 3D de cette ampleur déposée ici, ça mérite un 10/10 pour tout ça, dommage que ce ne soit pas de l'OpenGL vu que j'aime pas DX mais bon on peut pas tout avoir ^__^
cs_azerty25
Messages postés1114Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention 6 mai 2007 23 nov. 2005 à 13:51
C'est sublime ! Merci et bonne continuation
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 20237 23 nov. 2005 à 07:50
Je ne dis qu'une chose : MAGNIFIQUE !
10/10 !
rei3
Messages postés24Date d'inscriptionvendredi 30 juillet 2004StatutMembreDernière intervention26 avril 2006 22 nov. 2005 à 21:15
Merci ^^
Voici un lien avec juste l'exe et les ressources :
cs_jmhC
Messages postés108Date d'inscriptionvendredi 24 janvier 2003StatutMembreDernière intervention10 août 2007 22 nov. 2005 à 19:01
Bon prog, bonne présentation, bonne continuation.
compilé sous code::Blocks avec compilateur MVC++ toolkit 2003! Juste une erreur dans les options de compilation passage de single en multi-threaded.
A++
DeAtHCrAsH
Messages postés2670Date d'inscriptionvendredi 25 janvier 2002StatutMembreDernière intervention 6 février 2013 22 nov. 2005 à 14:19
Ou alors donne un lien ou on peut télécharger l'executable comme beaucoup le font.
Trouve une solution ^_^
Shell
Mattpbem
Messages postés46Date d'inscriptionvendredi 14 janvier 2005StatutMembreDernière intervention31 juillet 2006 22 nov. 2005 à 13:15
compresse tes TGA en RLE et je pense que tu peux augmenter le taux de compression du Zip (ou fait un Rar bien compréssé que tu rennome en Zip)
rei3
Messages postés24Date d'inscriptionvendredi 30 juillet 2004StatutMembreDernière intervention26 avril 2006 22 nov. 2005 à 12:42
Je peux pas le rajouter car le zip est trop gros après...
DeAtHCrAsH
Messages postés2670Date d'inscriptionvendredi 25 janvier 2002StatutMembreDernière intervention 6 février 2013 22 nov. 2005 à 11:02
Peux-tu mettre l'executable que tu renommes en .ex_ dans le zip, car je ne dispose pas du SDK afin de recompiler ta source.
Merci par avance.
31 juil. 2009 à 11:56
28 juil. 2009 à 11:15
Je vois que tu fais un DrawPrimitive pour l'herbe et un pour la terre.
n'y a t-il pas moyen, en remaniant un peu les SetTextureStageState de faire un blending astucieux des 3 textures du terrain ( herbre, densité de terre, terre ) ?
Merci
29 avril 2007 à 19:12
et merci
9 mai 2006 à 17:29
gadourpro -> quel sont tes critères pour dire que deux objet 3D sont identique?
8 mai 2006 à 15:23
merci.
8 mai 2006 à 11:22
C'est ce que ça m'a fait l'effet quand j'ai lu vos commentaires (arnaud16022 et gadourpro) !
Sinon rei3 continue dans cette voie !
Bonne prog,
@++
8 mai 2006 à 11:10
si oui, tu charges ton modèle, tu charges tous les autres et tu comprares tous les vertices entre eux.
si non , tu charges quand même, tu fais un rendu dans une texture, et tu dis à l'utilisateur, choisissez vous même la texture qui ressemble à ce que vous cherchez.
Si ça te va pas, doit y avoir de vrais algos, mais alors là, faut du level.
8 mai 2006 à 10:33
t'as une idée comment je peux trouver un objet 3D dans une repertoire donnée similaire a un objet déja donnée.
en faite c un moteur de recherche 3d données= un objet 3D
resultat = les objet 3D similaire ds une repertoire donnée
Merci d'avance
27 avril 2006 à 12:43
27 avril 2006 à 01:15
27 avril 2006 à 01:05
26 avril 2006 à 22:36
26 avril 2006 à 18:28
23 avril 2006 à 22:49
m_d3dpp.EnableAutoDepthStencil TRUE; m_d3dpp.AutoDepthStencilFormat D3DFMT_D16;
23 avril 2006 à 22:34
m_d3dpp.EnableAutoDepthStencil = FALSE;
Mais les textures sont étranges. Les herbes et le fleurs ne saffiche pas si on les regardes de par dessus.
23 avril 2006 à 22:27
if (m_pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_HARDWARE_VERTEXPROCESSING | D3DCREATE_PUREDEVICE, &m_d3dpp, &m_pD3DDevice) != D3D_OK)
// si la création en mode HARDWARE à échoué, on crée le device en mode SOFTWARE (calcule des vertex par le CPU)
if (m_pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &m_d3dpp, &m_pD3DDevice) != D3D_OK)
{
Console << "Impossible d'initialiser le peripherique 3D" << endl;
return false;
}
23 avril 2006 à 17:58
22 avril 2006 à 15:41
28 févr. 2006 à 01:02
19 févr. 2006 à 19:40
9 janv. 2006 à 00:53
12 déc. 2005 à 09:35
Williamprotti : merci ^^
Raoullevert : merci j'espère que ce code servira à un maximun de personnes ^^
11 déc. 2005 à 22:11
Je decouvre le DX, après avoir codé avec GL et ton code est un super tuto, merci.
10 déc. 2005 à 10:58
6 déc. 2005 à 19:54
6 déc. 2005 à 09:07
Si tu veux utiliser Dev-Cpp il faut récuppérer les lib qui on été complié pour car celle du sdk de directx ne marche que pour visual mais sinon il y a rien a changer au code.
5 déc. 2005 à 19:03
Le client n'a besoin que d'avoir le runtime DirectX.
5 déc. 2005 à 18:50
Merci
5 déc. 2005 à 00:00
ca me fait penser que j'ai tjs pas envoyé le screenshot... je fais ca demain promis ^^
4 déc. 2005 à 21:49
3 déc. 2005 à 21:26
Les vertex shaders sont peu différents: ils peuvent aussi recevoir des constantes depuis le programme C++, ont accès aux propriétés des vertex (position, normale, binormale, coordonnées textures, bref tout ce qui compose le format de vertex), et peuvent envoyer des valeurs au pixel shader (qui va être executé ensuite) via les sorties oTi (ti dans le pixel shader), mais surtout ils permettent de calculer soi-même la position du projeté du vertex sur le backbuffer (généralement le résultat du produit de la matrice de projection par le vertex).
Je vais très certainement poster incessement sous peu une source sur les vertex shaders.
26 nov. 2005 à 01:18
24 nov. 2005 à 20:50
10/10
24 nov. 2005 à 14:05
Alors pour répondre un peu aux commentaire :
BADRBADR : les textures j'essaye de les récupérer ou je peu, les arbres vient de photo récupéré sur le net et la texture de terre et d'herbe de Unreal. Pour le terrain je crée un maillage de 128 sur 128 carrés et je modifie l'altitude des points du maillage en fonction d'une image en niveau de gris.
ARNAUD16022 : pour l'utilisation des shader je suis pour mais comme le prof avait un portable avec une carte graphique intégré, ce n'était même pas la peine d'y penser, c'est pour ça que j'ai limité au minimum les objets animés :p et c'est pour ça que j'ai utilisé le billboarding pour ne pas avoir trop d'objet 3D ^^. L'avion y vient de SDK de DirectX :p. Quand au bug vi j'aimerai bien voire un screen ^^ et pour le site bien je c'est pas sur tout les pc ou j'ai essayé ça marchais peut être ça viens du navigateur.
GALMIZA : t?inquiète des que j'aurai le temps je passe au shader, puis j'ai très bien compris ce que tu voulais faire, je fais déjà des rendu sur des textures pour faire de la réflexion mais sans shader :p.
Voila puis vive DirectX j'ai commencer par ça et je ne regrette pas mon choix et je le préfère a OpenGL car certes pour les débutant c'est plus facile mais des que l'on veux faire des truc un peu plus poussé ça devient vite galère et les extension et touts.
24 nov. 2005 à 13:36
[mode philo]En fait "intuitif" n'est pas bien adapté. Car lorsque l'on a assimiler la logique de la librairie, tout devient limpide et on peut aisement tout trouver tout seul, en suivant cette logique. C'est un peu pareil avec la programmation windows, tous ces evenements... Dans ce cas, tout logiciel peut devenir intuitif (peut-être pas IDEAS en fait), au bout de plus ou moins de temps.[\mode philo]
Tu peux bien sur faire l'équivalent avec une dérivée d'un environnement mapping sur une surface "gondolée" (à la FarCry si ma mémoire visuelle est bonne et surtout si c'est ça dont tu veux parler). L'avantage est que ça rend bien sur les bords et que tu peux adapter la déformation des reflets/refract à la situation via un moteur physique (moteur utra simplifié car dédié) car tu controles les vertex.
Inconvénients: des vertex (donc projections) en plus, et un important flux via le port AGP si tu veux mettre à jour toi-même la position des vertex (pour moteur physique). Sinon tu balances des données pour le vertex shader et tu déduis les positions de tous les vertex (FarCry again).
Un screen de mon essai: http://mapage.noos.fr/galmiza/Other/Water_scr01.JPG
Je ferai un code lisible quand je me replongerai dedans et quand j'aurai eradiqué des bugs pas trop mineurs (invisibles sur le screen) à propos du rendu de la scene au dessus de l'eau à l'envers:
Le stencil est possible mais implique d'autres rendus => long, actuellement je fais une comparaison de profondeur avec l'eau mais ça implique d'inverser la comparaison du Ztest (affiche si derriere) donc il faut trier les objets à rendre par ordre de profondeur et leur donner des formes adaptées. Ca fait longtemps que j'ai fait une pause dessus, je ne souviens plus trop des autres détails génants.
24 nov. 2005 à 12:37
oué pas com, je pensais bien qu'il fallait renderiser sur une texture mais apres ca m'embetait pour la suite
t'es sur qu'on peut pas faire ca non plus avec un vertex ou fragment shader ? note bien que je n'en sais rien du tout ^^
tu dis qeu DirectX permet de coder ca intuitivement... ya moyen de voir un bout de code pliz ? juste par curiosité... merci
ciao
ad
24 nov. 2005 à 12:16
Le rendu est très bon. Pas spectaculaire mais presque professionnel.
Pour l'eau tu peux utiliser des shaders pour faire de la reflection et de la refraction plus effet vagues.
Tu fais un rendu de la scene sur une texture1 et un rendu de la scene symetrique par rapport au plan de l'eau (sans la partie sous l'eau, assez chiant à faire) sur une texture2.
En suite tu projetes un quad orthogonalement avec la texture1 sur le backbuffer (ca revient a avoir fait un rendu dessus directement).
Puis tu affiches le plan de l'eau avec en parametres du pixels shader la texture1, la texture2 et une texture de bump.
Apres c'est facile: tu peux afficher une eau 100% transparente si tu lui donnes les pixels de la texture1, 100% reflechissante si tu lui donnes les pixels de la texture2. Perso je fais une interpolation linéaire (refraction/reflection): plus sin((caméra-pixel),normale) au plan est proche de 0, plus c'est de la refraction.
Pour la déformation avec la texture bump, tu utilises juste le contenu de ses pixels pour modifier légerement les coordonnées des pixels que tu prends sur texture1 et texture2.
Voila voila, ca rend nickel ensuite. Exactement comme dans half-life 2, mieux que la démo du moteur ogre.
La seule difficulté est de calculer les coordonnées textures des pixels à utiliser en fonction de la position 3D du point de l'eau considéré.
En espérant avoir été clair.
DirectX, lui, permet facilement et INTUITIVEMENT de coder tout ça. Tu as donc fais le bon choix (et ça rebalance ...).
24 nov. 2005 à 00:04
23 nov. 2005 à 23:55
bon déja effectivement le screen est pas mal ca donne envie :p
pour le billboarding, perso je déteste ca, ca n'est bon que pour les particules ou presque, mais la tu as plutot bien géré ton coup le rendu est pas si mauvais au final.
pour l'eau: la translation de texture c'est d'un banal :D mdr
essaye plutot de faire des vagues. pour ca plusieurs solutions... soit tu te lances dans les fragment shaders (déconseillé...) mais résultat magnifique avec reflets sublimes, soit tu crées un modele 3d animé de vague ( voir exemple d'un tel fichier plus son loader openGL dans mon prog Sniper, qqpart dans le code ^^ ), soit tu fais ca avec des fonctions mathématiques en temps réel, je pense que c'est la meilleure solution, presque la plus rapide, et permettant d'obtenir un rendu pas mal du tout a peu de frais
pour les roseaux...c'est trop statique tout ca LOL. un petit conseil, je sais pas dans quelle mesure c'est faisable en DirectX, crée une matrice de déformation variant au cours du temps et multiplie la a la matrice actuelle, ca peut etre sympa, a esssayer du moins.
par contre méchant bug, ya un espece de carré a moitié texturé avec une couche alpha qui se ballade sous la map, si tu veux un screen ...
et pour l'avion, t'as pas piqué celui de CF3D? c'est pas une critique hein c'est juste qu'il me rappele celui de funto..
un seul point négatif, DirectX mdr ^^ avis personnel bien sur :D
bonne prog
++
ad
23 nov. 2005 à 23:22
La qualité visuelle me fait penser à Far Cry (qqch de meme) avec son île paradisiaque, vous trouvez pas?
Mais j'ai une question, où est-ce que tu trouves les textures...est-ce que c'est toi qui les a fait ou encore tu les a pris de quelque part. Même chose pour le terrain 3d, je sais que pour l'avion, c'est directx mais ton terrain, t as fait comment pour générer les coordonnées.
Bonne continuation
23 nov. 2005 à 23:05
23 nov. 2005 à 22:25
23 nov. 2005 à 13:51
23 nov. 2005 à 07:50
10/10 !
22 nov. 2005 à 21:15
Voici un lien avec juste l'exe et les ressources :
http://perso.wanadoo.fr/mesprog/programmes/Terrain 3D 2.zip
22 nov. 2005 à 19:01
compilé sous code::Blocks avec compilateur MVC++ toolkit 2003! Juste une erreur dans les options de compilation passage de single en multi-threaded.
A++
22 nov. 2005 à 14:19
Trouve une solution ^_^
Shell
22 nov. 2005 à 13:15
22 nov. 2005 à 12:42
22 nov. 2005 à 11:02
Merci par avance.
Shell