SSAOEFFECT.FX من شاشة Offient Space Occlusion XNA 3.1 لا يعمل في XNA 4.0

StackOverflow https://stackoverflow.com/questions/5484542

سؤال

أحاول تحويل مثال انسداد الفضاء المحيطي الشاشة من XNA 3.1 إلى XNA 4.0.لقد قمت بإصلاح كل المشكلات في المصدر، باستثناء هذه المشكلة الغريبة في ملف Shader.لقد مررت وتثبيت جميع المشاكل الواضحة مع Shader كما يسترشد بلوق Shawn Hargreeves، ولكن عندما تقوم بتجميعها تستخدم 620 فتحة تعليمية، والتي تعد أكثر من 512 حرف تعليمات 512.كيف يمكن أن يعمل هذا في XNA 3.1، ولكن ليس في XNA 4.0؟

التغييرات من نسخة 3.1 من الملف هي الحد الأدنى للغاية، وتتألف فقط من إعادة تسمية عدد قليل من الوظائف.يوجد أدناه مصدر التظليل الكامل في شكله الحالي.سأكون ممتنا للغاية لأي مساعدة في تقليل فتحات تعليمات الأرقام هذه تكملة إلى.


giveacodicetagpre.
هل كانت مفيدة؟

المحلول

XNA 4.0 يفرض الحد الأقصى 512 التعليمات 512 (الذي يحتوي Xbox360 ويفرض ملف تعريف HideF كحد صغير)، في حين أن XNA3.1 لم يفعل ذلك.

على جانب Plus، لا ينبغي أن تسقط أي بطاقة رسومات يمكن تشغيل ملف تعريف XNA HideF، حيث سمحت XNA بأي عدد من التعليمات، فقد يتم ذلك.

نظرا لأن لديك حلقة في التعليمات البرمجية الخاصة بك، فيمكنك تجربة إجبار المحول البرمجي على استخدام إرشادات حلقة إذا كانت غير مثبتة حاليا (وليس على دراية بهذا بنفسي).

نصائح أخرى

إذا كنت تبحث عن XNA 4 SSAO التي لديها مصدر مفتوح، تحقق من هذا الرابط خارج: التقديم المؤجل مع ssao normals

تقليل عدد العينات في Shader من 16 إلى 8

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