Perso je ne vois que 2 types des bump mapping: le static et le dynamique.
Pour le static, la texture est générée en fonction d'une carte de relief à l'initialisation et on ne tient pas compte des variations de la lumière.
Pour le dynamique, on recalcule plus souvent la texture en fonction de l'éclairage et de la position de l'objet.
J'aimerais savoir si la carte graphique peut gerer sans aide du CPU le bump mapping que j'appelle dynamique et comment avec DirectX9. On donne la texture de base, la texture du relief puis la carte se débrouille toute seule.
J'aimerais en fait connaitre la définition et la traduction de bump mapping car j'ai lu sur internet que grace au bump mapping, on peut simuler le reflet sur l'eau.
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 20047 14 oct. 2004 à 19:23
ben le bump mapping static, c'est tout est rien, on la tous fais sans savoir que ca avait l'honneur de porté ce nom, a par ca, ca vaut rien
les diffirentes sortes de bumpmapping c'est dynamique, calculé a chaque rendu, et la ya beaucoup de techniques, tirant plus ou moins partie de la cartes graphique
par exemple celui que matrox avais presenté consistait a faire le blending entre la texture et cette meme texture en niveau de gris et décalée en fonction du vecteur lumiere et visuel (le truc tou pourri)
mais le vrai principe du bumpmapping c'est de calculé l'éclairage (le vecteur normal donc) pour chaque pixel de la texture en fonction, toujours de la direction de la lumirere par rapport à l'angle de vue, et d'une valeur de relief pour chaque pixel donnée par le bumpmap correspondant a la carte "relief" de la texture.
cette technique est supporté en hard depuis dx5 je crois, c'est le dot product (a verifier :) ) faut chercher de se coter pour faire ca en hard, pour specifier la normal de chaque pixel
on peut aussi faire un shader pour ca mais c'est se compliquer la vie vu que le dot product est un pixel shader preprogrammer
Galmiza
Messages postés573Date d'inscriptionsamedi 16 novembre 2002StatutMembreDernière intervention 9 avril 20081 15 oct. 2004 à 11:51
Merci beaucoup !
Je viens d'acheter une ATI Radeon 9600 Pro ( Pixel and Vertex Shader 2.0) pour remplacer ma pauvre GeForce2 (AGP 4X).
Je vais pouvoir me lancer dans les shaders. J'ai télécharger pas mal d'exemple. L'assembleur ne me fait pas peur puisque j'en ai déja fait pas mal auparavant.
J'avais déja entendu parler de l' Environment Mapped Bump Mapping mais je ne savais pas ce que c'était, merci !
Je vais essayer de faire quelques pixels shader pour voir si je peux me passer des trop nombreuses fontions DirectX.
On m'a dit que le dernier Unreal utilise une technique qui va au delà du Bump Mapping: normalement, lorsque la texture est vue de quasi-profil, on est censé ne plus percevoir le relief.
Mais eux rajoutent des triangles en fontion du "relief map" (normales orientées vers nous), ce qui permet de recréer une illlusion de relief.
Merci pour ces réponses !
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 20047 15 oct. 2004 à 11:59
ce qui serais interessant, c'est de se mettre au cg, le langage inventé par nvidia pour programmer les shaders beaucoup plus facilement
comme son nom l'indique, la synthaxe est proche du c (Cg = C graphics ) et ca evite de se taper du code rebarbatif en assembleur
c'est nvidia mais ca definie un standard de programmation des shaders, donc il me semble que c'est tout a fais possible sur les cartes ati, suffit de telecharger le sdk, apres j'en sais pas plus mais ca doit vraiment valoir le coup, surtout si tu veux t'amuser avec ta carte graphique
regarde des exemples de code en cg pour voir a quel point ca simplifie les choses
Funto66
Messages postés1267Date d'inscriptionmercredi 1 janvier 2003StatutMembreDernière intervention28 février 20074 15 oct. 2004 à 20:31
Mouiiiiiii c'est pas juste moi j'peux pas faire de shaders sur ma carte graphique de meeerde :'(
Pour le coup d'Unreal je savais pas, c'est génial ce truc ! Ils ont donné un nom à la technique?
Aussi une question, c'est possible de faire du bump mapping sans avoir de shaders je suppose? Même sur une ATI Rage 128?
---------------------------------------------------------
Patience et longueur de temps font plus que force ni que rage....
Coucous flingueurs 3D : http://www.freewebs.com/cf3d/
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 20047 15 oct. 2004 à 21:37
oui,
c'est a verifier mais il me semble que "Environment Mapped Bump Mapping " fais partie de la specification ms depuis dx5, le rage 128 est compatible dx6 ou dx7 il me semble (a verifier aussi)
sinon tu as quoi comme extensions opengl sur ta carte ?
Galmiza
Messages postés573Date d'inscriptionsamedi 16 novembre 2002StatutMembreDernière intervention 9 avril 20081 16 oct. 2004 à 15:27
Funto66 > Bien sur qu'on peut faire du bump mapping sans utiliser la carte graphique (on peut meme faire un moteur 3D complet sans carte graphique).
Si ta carte 3D ne permet pas de faire le bump mapping, tu peux assez facilement en faire un qui sera par contre calculé par le CPU.
Je n'ai pas mes sources sur ce PC mais la fontion LockRect de directX permet d'avoir accès au contenu des surface.
Une autre fonction, GetSurfaceLevel, permet de lier une surface à une texture (quand tu changes la surface, la texture change).
Evidemment il faut analyser soi-même le "relief map", etc... mais ca marche forcement. J'ai pas essayé le bump mapping mais avec les fonctions ci-dessus, on peut le faire.
djl > C'est une bonne idée comme langage le C pour les cartes vidéo. Jette un oeil au software ShaderWorks. Sur ce PC, il n'y a pas de shader (ce PC n'est pas le mien donc n'a pas le Radeon 9600Pro, par contre il a internet et il est à Paris...) donc je ne peux rien tester.
Je ferais des essais quand je serais sur mon PC.
Funto66
Messages postés1267Date d'inscriptionmercredi 1 janvier 2003StatutMembreDernière intervention28 février 20074 16 oct. 2004 à 16:34
Comme extensions j'ai le multitexturing, une extension proprio d'ATI pour les vertex shaders (la 1ère version je pense...)...bref tout ce qu'il y a jusqu'à OpenGL 1.2.
Galmiza >> de toutes façons j'utilise OpenGL donc les fonctions DX...:S
Enfin dans tous les cas faut changer de PC :(
---------------------------------------------------------
Patience et longueur de temps font plus que force ni que rage....
Coucous flingueurs 3D : http://www.freewebs.com/cf3d/