كفى تخمينًا لمعنى «جاهز للويب»
كل نموذج ثلاثي الأبعاد ينتهي به المطاف على موقع ويب لا بدّ أن يتّسع لميزانية محددة، لكن يكاد لا أحد يكتب هذه الميزانية صراحةً. والنتيجة هي الحلقة المعتادة: تصدير، ثم رفع، ثم مشاهدة هاتف يختنق، ثم إعادة تصدير بقوام أصغر قليلًا، ثم تكرار كل ذلك. هذه الأداة تقلب المعادلة: تختار أنت وجهة النموذج — سطح المكتب أو الهاتف أو WebXR — فتخبرك، قبل أن تغيّر أي شيء، بالحدود التي تجاوزتها وبمقدار التجاوز بالضبط.
الميزانيات مكشوفة أمامك
| المقياس | سطح المكتب | الهاتف | WebXR |
|---|---|---|---|
| حجم الملف | 15 MB | 5 MB | 3 MB |
| المثلثات | 1,500,000 | 300,000 | 150,000 |
| استدعاءات الرسم | 200 | 50 | 30 |
| ذاكرة القوام | 512 MB | 128 MB | 96 MB |
| أقصى مقاس للقوام | 4096 | 2048 | 2048 |
| الخامات | 100 | 25 | 15 |
عمود WebXR هو الأقسى عن قصد. فالنظارة تعرض المشهد كاملًا مرتين في كل إطار، وبدقة عالية، في مهلة تتراوح بين 72 و90 Hz. وأن تكون ميزانية المثلثات نصف ميزانية الهاتف ليس تشاؤمًا، بل حساب بسيط.
ذاكرة القوام هي المقياس الذي يغفل عنه الجميع
القوام بمقاس 4096 × 4096 يشغل نحو 67 MB من بيانات RGBA على المعالج الرسومي، وقرابة 89 MB بعد إنشاء سلسلة الـmipmap — وكل ذلك من ملف ربما شُحن أصلًا بصيغة JPEG بحجم 2 MB. ثمانية منها تكفي لنفاد ذاكرة هاتف متوسط الفئة مهما كان ملف GLB صغيرًا. لهذا تقيّم الأداة ذاكرة القوام على المعالج الرسومي بمعزل عن حجم الملف، ولهذا فإن تقليص القوام من 2048 إلى 1024 يوفّر من الذاكرة أربعة أضعاف ما يوفّره من البايتات.
ما الذي تفعله الخطة فعليًا
خمسة إجراءات على الأكثر، لا يُقترح أي منها إلا إذا وجد التحليل سببًا له، ومع كل إجراء سببه مكتوبًا:
- التنظيف —
dedupوpruneوweld. مجدٍ دائمًا، وبلا فقدان دائمًا. - التبسيط — تقليل رباعي (quadric) حتى ميزانية المثلثات، عند تجاوزها.
- التجميع —
instanceوpaletteوjoin، لتقليص استدعاءات الرسم وعدد الخامات. - القوام — تغيير الأبعاد إلى مقاس محسوب وإعادة الترميز بصيغة WebP.
- الضغط — تكميم السمات مع Draco أو Meshopt.
الترتيب ثابت لأنه مهم: اللحم قبل التبسيط، والنسخ قبل الدمج، والترميز في النهاية دائمًا. أوقف أي إجراء لا تتفق معه.
حدود لا نخفيها
استيفاء كل الميزانيات لا يضمن 60 إطارًا في الثانية. فالرسم الزائد والشفافية وكلفة الـshader أمور لا تظهر في ملف ساكن. كما أن join لا يدمج إلا الشبكات التي تتشارك الخامة نفسها. وكل شيء يعمل محليًا — فأصولك لا تغادر المتصفح أبدًا.
Tiny Online Tools







