سؤال

كخبرة تعليمية، فأنا أكتب تطبيق DirectX 9 المدار.

أنا أتحسب يدويا في قمة الرأس في جميع المثلثات في مشهد للسماح بظلال الذائب السلس.

هذا يعمل كما هو متوقع، لكنني أظن أن هذا ليس النهج الأكثر كفاءة. هل من الممكن الحصول على GPU للقيام بذلك بالنسبة لي؟

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

المحلول

يفحص هذه و هذه.

نصائح أخرى

يمكنك من الناحية النظرية إنشاء Vertex Normals داخل Vertex Shader. ينطوي على حساب كل مرة تقوم فيها بتقديم شبكة باستخدام هذا التظليل، فلماذا لا تولدها مقدما.

إذا كنت تعني أنك تريد توليدها مقدما من التقديم، ولكن استخدم GPU بدلا من وحدة المعالجة المركزية، أود أن أقول إنه لا يستحق عناء عناء تسريع شيء ستفعله مرة واحدة فقط. علاوة على ذلك، لست متأكدا ما إذا كان DX9 لديه وسيلة للحصول على معلومات قمة الرأس المحسوبة مرة أخرى من Shader (DX10 لا).

الكل في الكل، أفضل شيء يجب القيام به في معظم الحالات هو التقليدية: حساب Vertex Normals في البرنامج الذي يحفظ ملفات البيانات التي تحتوي على تنسجم - افعلها كخطوة مسبقة من الحسابات. عادة ما تكون لديك إذا جاءت الشبكة من حزمة ثلاثية الأبعاد مثل Max أو Maya، لأن هناك معلومات فنية في الحالة الطبيعية، إلا إذا كنت تعرف أن الشبكة بأكملها من المفترض أن تكون ناعمة تماما (أو جوجية)، فهي غير محسمة في الحالة العامة وبعد

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