الشبكة العربية لمطوري الألعاب

خبير مدير وسام البهنسي مشاركة 11

بتاريخ 28/رجب/1432 01:52 ص، قطب 16mofed84 حاجبيه بشدة وهو يقول:

شكرا لك
هل ارسم بعدها الطبع بـProjectedTextureCoordinate ؟
ولكنه يأخذ الكثير من سرعه FPS

لا أعلم عن أنريل 2، لكن الثالث كان لا يستطيع رسم أكثر من بضعة عشرات ثم يبدأ الأداء بالانحدار بسببها، وقد قمت بنفسي بتطوير هذا الجزء من المحرك ليتحمل رسم بضعة مئات بدلاً من عشرات.
 
لاحظ أننا نتكلم عن عدد الطبعات في اللقطة، وليس في كامل المرحلة.
 
بالنسبة للأداء، هناك عدة عوامل تساهم بإبطاء الأداء. منها العامل الذي ذكرته، والذي كان سبب البطء في أنريل 3، ومنها عامل مساحة الطبعة. فكلما اتسعت مساحتها أخذت حيزاً أكبر من الشاشة وأصبحت مكلفة أكثر.
 
الأسلوب الشائع لتوليد الطبعة يكون عن طريق إسقاط مربع به إحداثيات UV للطبعة، ويتم إسقاط هذا المربع باتجاه إطلاق الطبعة. هذا يعطي موشوراً ينطلق من المربع ويمتد لطول معين. ثم يتم كشف كافة المثلثات التي تتقاطع مع هذا الموشور، وقص تلك التي تتقاطع معه، لنحصل في النهاية على مجموعة مثلثات محصورة ضمن الموشور. أخيراً، يتم حساب إحداثيات UV جديدة لهذه المثلثات وبذلك تصبح الطبعة جاهزة للرسم.
 
هذه الطريقة تنفع مع كافة الأشكال في المشهد (المسطحة والمعقدة). أما لو حصرت التطبيق على الأشكال المسطحة، فستصبح حسابات الطبع أبسط بكثير.

وسام البهنسي
مبرمج في إنفيديا وإنفريمز