การดีบักโมเดล Direct3D

ฉันกำลังพยายามเรนเดอร์โมเดลใน Direct3D โดยใช้ DrawIndexedPrimitives อย่างไรก็ตาม ฉันไม่สามารถดูมันบนหน้าจอได้ วิธีการปกติที่ใช้ในการดีบักโมเดล Direct3D มีอะไรบ้าง

ฉันได้ลองทำสิ่งต่อไปนี้แล้ว:

  • ปิดการคัดหน้าหลังแล้ว
  • ใช้ PrimitiveType.LineStrip แทน PrimitiveType.TriangleStrip
  • การผสมผสานระหว่างเมทริกซ์ View และ Projection หลายแบบ
  • ใช้ AutoCAD เพื่อพล็อตจุดยอดเป็นทรงกลมเล็กๆ

person Agnel Kurian    schedule 30.10.2008    source แหล่งที่มา


คำตอบ (3)


  • ทำให้สีพื้นหลังเป็นสีเทา แล้วถ้าเป็นสีขาวหรือดำก็จะเห็น
  • ตรวจสอบเมทริกซ์การแปลงของคุณ (โลก/มุมมอง/การฉายภาพ) ใช้ฟังก์ชันทางคณิตศาสตร์มาตรฐานสำหรับมุมมองและการฉายภาพ กำหนดโลกให้เป็นตัวตน
  • ตรวจสอบให้แน่ใจว่าคุณได้ตั้งค่าวิวพอร์ตของคุณ ลืมอันนี้ได้ง่ายและมี 0 ค่าในวิวพอร์ต
  • เปิดการแก้ไขข้อบกพร่อง D3D ดูการดีบักพ่น; หลายๆ คนพลาดไปว่ารันไทม์จะบอกคุณว่าเกิดอะไรขึ้น
  • ตรวจสอบเชเดอร์พิกเซล/จุดยอดของคุณ ใช้การตั้งค่าที่รู้จักซึ่งใช้งานได้ หรือฟังก์ชันคงที่
  • ตรวจสอบสถานะการเรนเดอร์ เทิร์นของการบัฟเฟอร์ Z, การทดสอบ Z, การเขียน Z ฯลฯ ในกรณีที่คุณมีปัญหาในการตั้งค่าความลึก ตรวจสอบว่ามาสก์เขียนสีของคุณเปิดอยู่ มีหลายรัฐ ให้มองหารัฐที่คุณเปลี่ยนแปลงซึ่งอาจก่อให้เกิดปัญหาได้
  • ตรวจสอบการเรียก DrawIP ของคุณ - คุณอาจประสบปัญหาเกี่ยวกับพารามิเตอร์ เช่น ระบุจำนวนจุดยอด ใบหน้า ฯลฯ ไม่ถูกต้อง ลองวาดรูปสามเหลี่ยมแรกในรายการ และไม่มีรูปอื่นเลย รับไปสักตัวก่อนจะวาดทั้งหมด...
person cmaughan    schedule 04.12.2008

ใช้เครื่องมือ PIX จาก DX SDK สุดยอดจริงๆ

คุณอาจต้องการใช้โหมดจับภาพเฟรมเดียว จากนั้นในการเรียกวาด PIX จะแสดงโมเดลก่อนการประมวลผลจุดสุดยอดจะเกิดขึ้น หลังจากการประมวลผลจุดสุดยอดเกิดขึ้น สถานะที่สมบูรณ์ของอุปกรณ์ของคุณ ผลลัพธ์ที่ได้จะแสดงผลพิกเซล ฯลฯ

person NeARAZ    schedule 30.10.2008

ตามค่าเริ่มต้นจะไม่มีแสงใน D3D ทุกอย่างอาจเป็นสีดำ ลองเปิดไฟดูถ้าไม่ได้

person Emmanuel Caradec    schedule 22.11.2008