Men-debug Model Direct3D

Saya mencoba merender model di Direct3D menggunakan DrawIndexedPrimitives. Namun, saya tidak dapat melihatnya di layar. Apa metode yang biasa digunakan untuk men-debug model Direct3D?

Saya sudah mencoba yang berikut ini:

  • Mematikan pemusnahan wajah bagian belakang
  • Digunakan PrimitiveType.LineStrip bukannya PrimitiveType.TriangleStrip
  • Beberapa kombinasi matriks Tampilan dan Proyeksi.
  • Menggunakan AutoCAD untuk memplot simpul sebagai bola kecil

person Agnel Kurian    schedule 30.10.2008    source sumber


Jawaban (3)


  • Jadikan warna latar belakang abu-abu; lalu jika berwarna putih atau hitam Anda akan melihatnya.
  • Periksa matriks transformasi Anda (dunia/tampilan/proyeksi). Gunakan fungsi matematika standar untuk tampilan & proyeksi, atur dunia menjadi identitas.
  • Pastikan Anda mengatur area pandang Anda; mudah untuk melupakan yang ini dan memiliki nilai 0 di viewport.
  • Aktifkan proses debug D3D. Lihatlah semburan debug; banyak orang melewatkan runtime yang akan memberi tahu Anda apa yang salah.
  • Periksa pixel/vertex shader Anda. Gunakan pengaturan yang diketahui dan berfungsi; atau fungsi tetap.
  • Periksa status render. Matikan buffering Z, uji Z, tulis Z, dll jika Anda mengalami masalah pengaturan kedalaman. Periksa apakah masker tulis berwarna Anda aktif. Ada banyak negara bagian, carilah negara bagian yang Anda ubah yang mungkin menimbulkan masalah.
  • Periksa panggilan Anda ke DrawIP - Anda mungkin mengalami masalah parameter seperti menentukan jumlah simpul, sisi, dll yang salah. Cobalah menggambar segitiga pertama dalam daftar, dan bukan yang lain; buat satu untuk bekerja sebelum Anda menggambar semuanya...
person cmaughan    schedule 04.12.2008

Gunakan alat PIX dari DX SDK. benar-benar luar biasa.

Mungkin Anda ingin menggunakan mode pengambilan bingkai tunggal. Kemudian pada panggilan undian, PIX akan menampilkan model sebelum pemrosesan simpul dilakukan, setelah pemrosesan simpul dilakukan, status lengkap perangkat Anda, piksel yang dihasilkan dirender, dll.

person NeARAZ    schedule 30.10.2008

Secara default tidak ada lampu di D3D, Mungkin semuanya hitam. Coba nyalakan lampunya jika tidak.

person Emmanuel Caradec    schedule 22.11.2008