CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Question sur Direct3D

Trapamoosch
Trapamoosch
Niveau 5
03 juillet 2002 à 14:03:29

Pour tracer un vertex (ou une quelconque primitive en fait) en Direct3D, si j´ai bien compris le SDK, il faut se taper à chaque fois la création d´un vertex buffer, le remplir etc...

Et ça me fait un peu chier de devoir faire comme ça pour dessiner 3 malheureux vertex orphelins. Donc ma question est : y´a pas moyen de passer les vertex à Direct3D de manière brute (sans passer par un buffer), comme on le ferait avec OpenGL ?

ex (en OpenGL)

glBegin();
glVertex3f(vertex.x, vertex.y, vertex.z);
elEnd();

hack2
hack2
Niveau 5
04 juillet 2002 à 00:10:24

A ton avis, qu´est ce que tu crois que fais la fonction glvertex() ?
Elle fait la même chose, elle lock un buffer, ecrit dedans, l´unlock... mais c´est encapsulé.
Si tu veux faire la même chose, à toi de te faire tes fonctions qui en 1 ligne te fera le même résultat.
Et puis avec opengl, tu passes pareil par un buffer mais tu ne le vois pas. C´est pour cela que j´aime moins opengl car on a moins le controle de ce qu´on fait.

Koyo-K
Koyo-K
Niveau 9
01 janvier 2005 à 22:02:39

Bon j´abuse de la fonction " rechercher" du forum mais j´ai la flemme de créer un nouveau topic :p

je regarde un peu de quoi est formé le SDK ( juste la forme hein ; )) et quand je lance un exe des exemples du SDK, un msgbox apparaît indiquant :
Switching to the reference rasterizer,
a software device that implements the entire
Direct3D feature set, but runs very slowly.

Et l´ordi tourne à 2 à l´heure une fois le petit exemple lancé. Je sais que ma CG ne date pas d´hier mais quand même... C´est quoi le reference rasterizer ?

gollumkawder
gollumkawder
Niveau 10
01 janvier 2005 à 23:09:19

Koyo-K :d) Il existe en DirectX ( a ma faible connaissance) deux types de rendering:

Le Hardware et le Software rendering:
Admettons que tu lance une application qui utilise les vertex shaders, ta carte a été spécialement construite pour supporter ce genre de procédé, ainsi, l´application tournera en utilisant l´implémentation matérielle de ta carte, c´est le hardware processing ou HAL.

Maintenant tu lance une appli qui utilise les pixels shaders, ta carte graphique bien que presque récente ne supporte pas ce procédé, l´application ne peut donc pas faire tourner l´appli en utilisant l´implémentation materielle de ta carte...puisqu´elle n´est pas conçut pour !

L´appli au lieu de te renvoyer betement une erreur et de quitter, va changer de technique pour s´afficher, elle va émuler le fonctionnement materiel, mais ça ne reste que virtuel, et c´est très lent, c´est le software processing ou REF

Si le software processing continue d´etre utilisé, c´est parcequ´il est utile pour debugger une application, sinon tel qu´il rend l´appi, c´est insupportable de voir du 2 frames per second

Bon c´est une version simplifiée, mais c´est compréhensible ainsi et pas trop erroné ( j´espere avoir du feedback de meilleurs que moi pour pas dire de c0nneries...)

Le fonctionnement User/Software/Hardware via les supers schémas que tout programmeur graphique doit regarder ( en principe :-p )

Application :d) DirectX :d) REF ou HAL :d) drivers :d) carte graphique

Voici la version overlamortquitue
http://rush3d.com/reference/opengl-bluebook-1.0/figures/OpenGLOper.gif

ça fonctionne ainsi pour OpenGL, mais je doute que la rasterization soit très différente pour DirectX, a verifier donc...

J´ai cherché sur la MSDN coté articles technique sur DirectX mais c´est fullvaste, donc a vos lampes frontales et good luck

NB: Si mes souvenirs sont bons ils y a un schéma du traitement basic des opérations dans la doc GPU Nvidia

Hope that helps

Koyo-K
Koyo-K
Niveau 9
01 janvier 2005 à 23:20:40

Arf j´entends encore parler de ces pixel sharders ! Ca m´énerve à cause de ça je peux pas essayer les nouveaux jeux... bon ouais j´ai compris le gros du texte -> ma carte foire :)
Plus qu´à attendre l´anniversaire.

gollumkawder
gollumkawder
Niveau 10
01 janvier 2005 à 23:26:43

c´était juste un exemple les PS hein...

LGV
LGV
Niveau 28
02 janvier 2005 à 01:33:31

la gestion des ressources étant essentielle aux bonnes performance de l´application, il est certe un peu laborieux mais tres profitable de construire ses buffers au cas par cas ( selon qu´on les remplit dynamiquement, qu´on les lock en discardant, qu´on boucle dessus, etc.).
Au passage, pour des particules on preferera de loin des point sprites avec animation dans les unités de vertex shaders, bien moins couteux.

Et pour finir, dans l´idéal aucun de tes objets ne devrait gerer directement ses buffers, mais on doit mettre en place un méchanisme d´un niveau plus élevé qui se charge de rassembler efficacement les données de la scene ( histoire de ne manipuler que des buffers de taille raissonnable, ni trop petite ni trop grande). Oui, c´est chiant à mettre en oeuvre, mais oui, c´est bcp plus efficace.

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment