Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [C#] DirectX

  1. #1
    Utente di HTML.it L'avatar di escocat
    Registrato dal
    Feb 2012
    Messaggi
    308

    [C#] DirectX

    Buongiorno a tutti.
    Una domanda facile facile (...per voi...)... io uso regolarmente XNA in C# e a quanto sappia XNA usa le DirectX. D'altra parte se controllo il mio sistema ricevo la segnalazione che le DirectX9 sono presenti. Vorrei sapere quale differenza di potenza e prestazioni avrei programmando con le DirectX bypassando XNA (cioè direttamente in Windows Form di C#) e soprattutto perchè se effettuo un Add References in ambiente C# le DirectX, Direct3D e Direct3DX non compaiono nella lista.
    Grazie.
    P.S. Io uso C# 2010 Express e Framework 4.0, XNA 4.0 ma le DirectX9 sbaglio o dovrebbero girare col Framework 2.0?
    Ultima modifica di escocat; 22-01-2016 a 08:57

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2015
    Messaggi
    57
    XNA è un framework basato su qualcosa di esistente, nel caso fa uso delle DirectX9 o 11 o 12 a dipendenza della possibilità, dettata dal sistema operativo.

    Immagino che, essendo Microsoft XNA morto, ti stia riferendo alla re-implementazione dello stesso data da MonoGame, il quale fa uso delle SharpDX per poter essere programmato in C#.

    Altrimenti per usare le originarie librerie DirectX sei obbligato ad utilizzare il linguaggio di programmazione più comune nei giochi C++.

    Il fatto di accedere direttamente alle DirectX dipende molto da te, chiaramente in prestazioni qualcosa guadagni, perché potesti mirare sugli aspetti più importanti per il tuo progetto, però devi sapere che dovresti implementare tutto, anche le cose più scontate come il ciclo di gioco, la visione a schermo, .. , etc.
    Ultima modifica di Marsh; 25-01-2016 a 14:39

  3. #3
    Utente di HTML.it L'avatar di escocat
    Registrato dal
    Feb 2012
    Messaggi
    308
    Ciao Marsh e grazie per il tuo intervento.

    Quote Originariamente inviata da Marsh Visualizza il messaggio
    XNA è un framework basato su qualcosa di esistente, nel caso fa uso delle
    DirectX9 o 11 o 12 a dipendenza della possibilità, dettata dal sistema operativo.
    Immagino che, essendo Microsoft XNA morto, ti stia riferendo alla re-implementazione dello stesso
    data da MonoGame, il quale fa uso delle SharpDX per poter essere programmato in C#.
    Magari XNA è morto per quelli che lo installeranno l'anno prossimo... io ho XNA al sicuro nel mio PC
    ed in un HD esterno nel quale ho backuppato tutto il sistema e pure le DirectX. Il mio XNA è
    eterno...per mia ignoranza non so a cosa ti riferisci quando parli di "re-implementazione data da
    Monogame.... SharpDX..." io so solo che a suo tempo ho installato il Framework, C#, XNA dal sito
    Microsoft e so solo che XNA si appoggia alle DirectX.

    Quote Originariamente inviata da Marsh Visualizza il messaggio
    Altrimenti per usare le originarie librerie DirectX sei obbligato ad utilizzare il linguaggio di
    programmazione più comune nei giochi C++.
    Ho visto in rete tutorial di programmazione con le DirectX in linguaggio C#. Già per usare XNA ho
    dovuto abbandonare il buon vecchio VB6 per passare al VB2010 e da lì al C#, linguaggio con il quale
    mi trovo benissimo. Trovo il C# un linguaggio snello, elegante, potente e.... maschio. Non me la
    sento di cambiare nuovamente per il C++. Ho una certa età, anche se ho notato che il cervello,
    contrariamente al resto del corpo, migliora col passare degli anni.

    Quote Originariamente inviata da Marsh Visualizza il messaggio
    Il fatto di accedere direttamente alle DirectX dipende molto da te, chiaramente in prestazioni
    qualcosa guadagni, perché potesti mirare sugli aspetti più importanti per il tuo progetto, però devi
    sapere che dovresti implementare tutto, anche le cose più scontate come il ciclo di gioco, la visione
    a schermo, .. , etc.
    Quando si familiarizza con XNA le sue limitazioni cominciano a diventare strette... tipo le
    dimensioni massime delle texture2d 4096x4096 o il numero di primitive per singole chiamate al
    GraphicsDevice, nonchè una certa lentezza dei buffers quando si renderizzano strutture di vertici
    molto pesanti. Implementare tutto secondo me è il lato più affascinante di questo "mestiere", non mi
    spaventa studiare e passare le notti in bianco, lo faccio da quando avevo 25 anni. Ma vorrei essere
    sicuro che il gioco vale la candela.
    La cosa che più mi ha "disturbato" è l'assenza delle DirectX, Direct3D ecc. nella lista delle
    References quando carico un programma in C# che ho prelevato dal tutorial di programmazione con le
    DirectX. So per certo che sono installate, mi è notificata la presenza delle DirectX9 nel mio
    sistema, come faccio a renderle "visibili" al C#? Questa è la domanda principale del mio post;
    l'altra è: "ma ne vale la pena?"
    E non per la morte di XNA (anche se continuare a cibarsi di carogne è un pò triste, ci si sente delle
    jene...), ma per decollare in prestazioni.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2015
    Messaggi
    57
    Quote Originariamente inviata da escocat Visualizza il messaggio
    Ciao Marsh e grazie per il tuo intervento.



    Magari XNA è morto per quelli che lo installeranno l'anno prossimo... io ho XNA al sicuro nel mio PC
    ed in un HD esterno nel quale ho backuppato tutto il sistema e pure le DirectX. Il mio XNA è
    eterno...per mia ignoranza non so a cosa ti riferisci quando parli di "re-implementazione data da
    Monogame.... SharpDX..." io so solo che a suo tempo ho installato il Framework, C#, XNA dal sito
    Microsoft e so solo che XNA si appoggia alle DirectX.



    Ho visto in rete tutorial di programmazione con le DirectX in linguaggio C#. Già per usare XNA ho
    dovuto abbandonare il buon vecchio VB6 per passare al VB2010 e da lì al C#, linguaggio con il quale
    mi trovo benissimo. Trovo il C# un linguaggio snello, elegante, potente e.... maschio. Non me la
    sento di cambiare nuovamente per il C++. Ho una certa età, anche se ho notato che il cervello,
    contrariamente al resto del corpo, migliora col passare degli anni.



    Quando si familiarizza con XNA le sue limitazioni cominciano a diventare strette... tipo le
    dimensioni massime delle texture2d 4096x4096 o il numero di primitive per singole chiamate al
    GraphicsDevice, nonchè una certa lentezza dei buffers quando si renderizzano strutture di vertici
    molto pesanti. Implementare tutto secondo me è il lato più affascinante di questo "mestiere", non mi
    spaventa studiare e passare le notti in bianco, lo faccio da quando avevo 25 anni. Ma vorrei essere
    sicuro che il gioco vale la candela.
    La cosa che più mi ha "disturbato" è l'assenza delle DirectX, Direct3D ecc. nella lista delle
    References quando carico un programma in C# che ho prelevato dal tutorial di programmazione con le
    DirectX. So per certo che sono installate, mi è notificata la presenza delle DirectX9 nel mio
    sistema, come faccio a renderle "visibili" al C#? Questa è la domanda principale del mio post;
    l'altra è: "ma ne vale la pena?"
    E non per la morte di XNA (anche se continuare a cibarsi di carogne è un pò triste, ci si sente delle
    jene...), ma per decollare in prestazioni.
    Microsoft XNA (4.0) non viene più mantenuto dal 2011, non è nemmeno compatibile con le versione metro di windows 8 e 10, non ha senso programmare su un sistema deprecato...

    Quello che ti consiglio se vuoi continuare sulla strada di XNA è
    http://www.monogame.net/
    qui forniscono la re-implementazione di XNA, hanno riscritto tutto il framework XNA sulla base di Mono, quindi è anche multipiattaforma, puoi fare i giochi per Desktop/Tablet, WP8/10, Android iOS...

    Per vedere con il linguaggio C# le librerie DirectX, cioè trovarne le referenze, devi fare uso, ad esempio, delle API SharpDX
    http://sharpdx.org/
    Questo perché con C# non puoi accedere direttamente alle directx, ti serve un interfaccia.

    Il fatto se ne vale o meno la pena dipende dal tuo scopo, dagli obiettivi del tuo progetto, se stai cercando di implementare un sistema mirato in un determinato campo High Performance per pc molto potenti chiaramente ti conviene andare a livelli più bassi cosi togliendo le limitazioni, mentre se il tuo scopo è quello di creare un gioco "normale" non credo ne valga la pena.

  5. #5
    Utente di HTML.it L'avatar di escocat
    Registrato dal
    Feb 2012
    Messaggi
    308
    Ah ok Marsh, intanto mi studio per bene i particolari della tua efficacissima risposta, magari più in là ci risentiamo.
    Grazie
    Grazie
    Grazie.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.