Now3D's profileNow3D LivePhotosBlogLists Tools Help

Blog


    March 09

    N3D e le DirectX

    Finalmente l'accelerazione Hardware!!!

    Agognata da chiunque utilizzi un programma di grafica 3D, l'accelerazione Hardware ci da la possibilità di sfruttare le potenzialità della nostra Scheda Video.
    Dopo tante richieste, l'appurata limitazione della grafica tramite GDI+ e la complessa implementazione del Framework 3.0, ho finalmente implementato una prima versione di accelerazione tramite le DirectX.
    Ed ora passiamo alle tante novità di questa volta.
     

    ScanLine

    L'ultima volta vi descrissi la modalità Flat in ScanLine, adesso parliamo delle ultime modalità ScanLine implementate: Gouraud e Phong.
     
    La modalità Gouraud a differenza della Flat effettua una interpolazione dei valori di intensità della luce che giunge ai vertici dei poligoni, è una modalità fino a poco tempo fa, usata molto nei Video Giochi (Vertex Shader).
     
    La modalità Phong implementa una interpolazione a livello dei singoli pixel, è la modalità di rendering preferita da molti applicativi professionali, ed è anche la modalità sulla quale sono basati i video giochi di ultima generazione (Pixel Shader).
    Per tutte e due le modalità ci sono enormi miglioramenti dei tempi d'elaborazione rispetto alla versione VB6 di Now3D. Per la modalità Gouraud miglioramenti del 600%, mentre per la Phong miglioramenti "solo" del 300%!
     
    Aggiunta infine un'ultima modalità d'esportazione chiamata ZBuffer, utile per implementare (fra non molto) nuove caratteristiche in tempo reale non presenti nella versione VB6 di Now3D (es: Ombre e Profondità di Campo).
     
     

    Le DirectX

    A dire la verità iniziai provando ad implementare le OpenGL. Avevo capito come farlo, ed avevo trovato anche delle DLL x Dot.Net abbastanza semplici nell'uso. Ma, dopo settimane di test e poligoni che non si visualizzavano bene (la causa mi è ancora oscura), ho rinunciato.
    Così, ho voluto dare retta a chi mi ha sempre consigliato di implementare le DirectX (vero MaxD? ).
    Ho cercato su internet degli esempi di codice, ed ho iniziato a lavorarci.
    Da subito ho notato una migliore risposta ai comandi dati via codice, ed anche una maggiore velocità rispetto alle OpenGL.
    L'implementazione riguarda la classica modalità Gouraud, mentre per quanto riguarda la Phong (Pixel Shader) la vedo più difficile essendo questa modalità implementabile tramite dei shader scritti in un linguaggio poco pratico (simil assembly).
    Ora veniamo al punto cruciale: i Tempi.
    Ho notato subito che la scrittura dei poligoni a video tramite le DirectX è immediata, quello che continua a pesare di più è il motore di Now3D.
    Con tutte le ottimizzazioni possibili, sono arrivato ai seguenti tempi:
    (i test sono stati fatti utilizzando una NVidia 7600GT in modalità AA 4x)
    Per quanto riguarda l'applicazione delle DirectX in Now3DPocket (Now3D per Palmare), ho già studiato il codice e lo implementerò sicuramente in un futuro non molto lontano.
     

    I Materiali

    Sto iniziando anche ad implementare le strutture principali sulle quali si baserà la gestione dei materiali. E' basata su classi ereditabili e con interfacce d'immediato utilizzo, così da renderla facilmente espandibile.
    Tra i materiali di default che ho implementato ci sono: Phong, Anisotropico (Ashikhmin), Blinn-Oren Nayar, Glass.
    Manca ancora tanto per arrivare alla stessa flessibilità della struttura a materiali e mappe di Now3D VB6, però con molta pazienza sarà implementato tutto e pure meglio.
     

    Prima Demo!!!

    Per concludere, vi invito a scaricare la prima demo riguardante Now3D.Net e le DirectX al seguente indirizzo: http://www.now3d.it/files/N3DInterface.exe.
    Non aspettatevi però meraviglie, è solo una semplice demo per mostrare l'interazione tra il mouse e gli oggetti (passando sopra i cubi cambiano colore e cliccandoci sopra ruotano casualmente) e l'uso delle DirectX (provate a selezionare la casella di spunta: "DirectX").
    Se avete qualche idea per abbellire la demo (senza esagerare con le pretese però ) scrivete pure un commento.
     
    Alla prossima!
     
    Giuliano Cornacchiola
      

    Stato Attuale lavori

    Caratteristica

    % Stato avanzamento

    Descrizione

    Le Istanze

    95% Gestione generica di Oggetti, Telecamere, Luci e molto altro, con la possibilità di condividere uno shape.

    Le Azioni

    40% Tipologia di oggetti utili a gestire gli input da parte dell'utente (mouse, tastiera e altro)  in azioni su altri oggetti.

    Le Quaternion

    30% Migliore controllo dell'orientamento di un oggetto.

    Le Constraint

    0%

     

    Le Animazioni

    5% Primi test di animazione.

    Interfaccia

    15%

     

    Rendering Scanline

    50% Modalità: Flat, Gouraud, Phong.

    Materiali

    25% Interfaccia standard per i Materiali le Mappe e i Filtri.

    Accelerazione Hardware

    50% Implementata la modalità Gouraud tramite le DirectX.

    Formato file XML

    30%

     

    Rendering RayTracing

    0%

     

    Comments (2)

    Please wait...
    Sorry, the comment you entered is too long. Please shorten it.
    You didn't enter anything. Please try again.
    Sorry, we can't add your comment right now. Please try again later.
    To add a comment, you need permission from your parent. Ask for permission
    Your parent has turned off comments.
    Sorry, we can't delete your comment right now. Please try again later.
    You've exceeded the maximum number of comments that can be left in one day. Please try again in 24 hours.
    Your account has had the ability to leave comments disabled because our systems indicate that you may be spamming other users. If you believe that your account has been disabled in error please contact Windows Live support.
    Complete the security check below to finish leaving your comment.
    The characters you type in the security check must match the characters in the picture or audio.

    To add a comment, sign in with your Windows Live ID (if you use Hotmail, Messenger, or Xbox LIVE, you have a Windows Live ID). Sign in


    Don't have a Windows Live ID? Sign up

    No namewrote:
    国难当反思 如何得平安 欢迎访问 天佑中华
    June 12
    Mamma mia sei proprio un grande! Fai le cose con clama non correre troppo e se ti serve un supporto hardware "ignorante" sono il tuo tester ufficiale.
    Una domanda..ci saranno delle plugin per N3D che da un immagine mipmap mi riproducono il modello 3d con possibilità di renderizzarlo anche?
    Ciao Giulius.
    Mar. 13

    Trackbacks (1)

    The trackback URL for this entry is:
    http://now3d.spaces.live.com/blog/cns!4DCDB5548CDBFC04!140.trak
    Weblogs that reference this entry