Domanda

Sto cercando di eseguire il rendering di un modello in Direct3D utilizzando DrawIndexedPrimitives . Tuttavia, non riesco a vederlo sullo schermo. Quali sono i soliti metodi utilizzati per il debug di un modello Direct3D?

Ho provato quanto segue:

  • Disattivazione dell'abbattimento della faccia posteriore
  • Utilizzato PrimitiveType.LineStrip invece di PrimitiveType.TriangleStrip
  • Diverse combinazioni di matrici View e Projection.
  • Utilizzato AutoCAD per tracciare i vertici come minuscole sfere
È stato utile?

Soluzione

  • Rendi il colore di sfondo grigio; quindi se è bianco o nero lo vedrai.
  • Controlla le tue matrici di trasformazione (mondo / vista / proiezione). Usa una funzione matematica standard per view & amp; proiezione, imposta il mondo sull'identità.
  • Assicurati di impostare il tuo viewport; facile dimenticarlo e avere 0 valori nella finestra.
  • Attiva il debug D3D. Guarda lo spug di debug; molte persone mancano che il runtime ti dirà cosa non va.
  • Controlla il tuo pixel / vertice shader. Utilizzare un'installazione nota che funzioni; o funzione fissa.
  • Controlla lo stato di rendering. Disattiva buffering Z, test Z, scrittura Z, ecc. In caso di problemi di impostazione della profondità. Controlla che le maschere di scrittura a colori siano attive. Ci sono molti stati, cerca quelli che hai cambiato che potrebbero causare problemi.
  • Controlla la tua chiamata a DrawIP: potresti avere problemi con i parametri come specificare un numero errato di vertici, facce, ecc. Prova a disegnare il primo triangolo nell'elenco e nessun altro; farne funzionare uno prima di disegnarli tutti ...

Altri suggerimenti

Utilizza lo strumento PIX da DX SDK. È assolutamente fantastico .

Probabilmente ti consigliamo di utilizzare la modalità di acquisizione a frame singolo. Quindi sulla chiamata di disegno PIX mostrerà il modello prima che abbia luogo l'elaborazione del vertice, dopo che ha luogo l'elaborazione del vertice, lo stato completo del dispositivo, i pixel risultanti resi, ecc.

Di default non c'è luce in D3D, può essere tutto nero. Prova ad accendere la luce se non l'hai fatto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top