سؤال

أحاول تقديم نموذج في Direct3D باستخدام DrawIndexedPrimitives.ومع ذلك، لا أستطيع رؤيته على الشاشة.ما هي الطرق المعتادة المستخدمة لتصحيح نموذج Direct3D؟

لقد حاولت ما يلي:

  • تم إيقاف إعدام الوجه الخلفي
  • مستخدم PrimitiveType.LineStrip بدلاً من PrimitiveType.TriangleStrip
  • عدة مجموعات من مصفوفات العرض والإسقاط.
  • استخدم برنامج AutoCAD لرسم القمم على شكل مجالات صغيرة
هل كانت مفيدة؟

المحلول

  • جعل لون الخلفية رماديًا؛ثم إذا كان أبيض أو أسود فسوف تراه.
  • تحقق من مصفوفات التحويل الخاصة بك (العالم/العرض/الإسقاط).استخدم دالة رياضية قياسية للعرض والإسقاط، واضبط العالم على الهوية.
  • تأكد من إعداد إطار العرض الخاص بك؛من السهل نسيان هذا الأمر والحصول على 0 قيم في إطار العرض.
  • قم بتشغيل تصحيح أخطاء D3D.انظر إلى موجة التصحيح؛يفتقد الكثير من الأشخاص أن وقت التشغيل سيخبرك بالخطأ الذي يحدث.
  • تحقق من تظليل البكسل/القمة.استخدم إعدادًا معروفًا يعمل؛أو وظيفة ثابتة
  • تحقق من حالة التجسيد.قم بتشغيل التخزين المؤقت Z، واختبار Z، والكتابة Z، وما إلى ذلك في حالة وجود مشكلات في إعداد العمق.تحقق من تشغيل أقنعة الكتابة الملونة.هناك الكثير من الحالات، ابحث عن الحالات التي قمت بتغييرها والتي قد تسبب مشاكل.
  • تحقق من اتصالك بـ DrawIP - قد تواجه مشكلات في المعلمات مثل تحديد عدد خاطئ من القمم والوجوه وما إلى ذلك.حاول رسم المثلث الأول في القائمة، وليس المثلثات الأخرى؛احصل على واحد للعمل قبل أن ترسمهم جميعًا ...

نصائح أخرى

استخدم أداة PIX من DX SDK.إنه رائع بكل تأكيد.

ربما ستحتاج إلى استخدام وضع التقاط إطار واحد.بعد ذلك، عند إجراء مكالمة السحب، سيُظهر PIX النموذج قبل إجراء معالجة قمة الرأس، وبعد إجراء معالجة قمة الرأس، والحالة الكاملة لجهازك، ووحدات البكسل الناتجة، وما إلى ذلك.

بشكل افتراضي، لا يوجد ضوء في D3D، ربما يكون كل شيء أسود.حاول تشغيل الضوء إذا لم تفعل ذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top