ما هو ملعب تظليل WebGL؟
اكتب شادرات GLSL للرؤوس والأجزاء وشاهد النتيجة المعروضة فوراً عبر WebGL. لا حاجة لأي إعداد محلي. استخدمه لتعلم برمجة الشادرات أو نمذجة التأثيرات أو تجربة الرسومات المعتمدة على GPU.
تتضمّن قيم uniform الجاهزة `u_time` للأنيميشن و`u_resolution` لمقاس اللوحة و`u_mouse` لموقع المؤشّر و`u_frame` لعدد الإطارات المعروضة، إضافةً إلى نسيج ضوضاء جاهز قابل للتبليط `sampler2D u_noise`. ارفع أي صورة لتُربط بـ `sampler2D u_texture` فيستطيع الـ fragment shader أخذ عيّنات منها مباشرة. تتوفّر عشرة قوالب جاهزة (موجة تدرّج، بلازما، دائرة SDF، نفق ضوضائي، ماندلبروت، كرة ray march، كرات معدنية، فورونوي، حقل نجوم، خلايا وورلي)، إلى جانب شريط تمرير للتحكّم بسرعة الأنيميشن، وعدّاد إطارات لحظي، ومفتاح للتجميع التلقائي، وزرّ إيقاف يجمّد الزمن، ورابط مشاركة يحتوي شفرة المصدر كاملة، ومخرج PNG للقطة الحالية.
كيفية الاستخدام
- اكتب كود شادر الأجزاء GLSL أو الصقه في المحرر. شادر افتراضي محمّل مسبقاً.
- المعاينة المباشرة تتحدث أثناء الكتابة. تشمل المتغيرات المدمجة الوقت والدقة وموضع الماوس.
- صدّر شادرك كلقطة شاشة PNG أو انسخ الكود لاستخدامه في مشاريع WebGL الخاصة بك.
متى تستخدم
- تعلّم لغة GLSL دون تثبيت مشروع C++ أو Three.js محلياً.
- تجربة تأثير على Fragment Shader قبل نقله إلى محرّك ألعاب أو إلى موقع.
- إنشاء لقطات لخلفيات متحرّكة من أجل ملفّات الأعمال أو الشرائح أو منشورات التواصل.
النتيجة
مطور ألعاب يعمل على نمذجة تأثير تموج الماء يكتب شادر أجزاء باستخدام موجات جيبية ومتغير الوقت. تعرض لوحة المعاينة النتيجة المتحركة وهي تتحدث مباشرة.
الأسئلة الشائعة
- هل يجب أن أعرف لغة C أو برمجة الرسوميات لاستخدامها؟
- GLSL لغة صغيرة بأسلوب يشبه C: حلقات وشروط وحسابات أرقام عشرية. مَن جرّب C أو Java أو JavaScript سيألفها بسرعة. القوالب الجاهزة مُعلَّقة بالشروحات، فيكفي تعديل القيم للبدء دون خبرة سابقة في برمجة GPU.
- تم تجميع الشيدر بنجاح لكن المعاينة سوداء، ما السبب؟
- الأسباب الشائعة: الكتابة في `gl_FragColor` خارج دالة main، أو إرجاع `vec3` بدل `vec4`، أو القسمة على صفر داخل دالة ضوضاء. افتح وحدة تحكم المتصفح؛ WebGL يطبع تحذيرات مفيدة حتى عند نجاح التجميع.
- هل يمكن أخذ عيّنات من Texture أو رفع صورة خاصة بي؟
- نعم. اضغط زر «رفع صورة» في شريط المعاينة لربط أي PNG أو JPG بـ `sampler2D u_texture`. ويتغيّر متغيّر `u_hasTexture` من نوع float إلى 1.0 فور جاهزية الصورة، فيستطيع الشيدر التفرّع بحسب توفّر النسيج، وهو النمط نفسه الذي يستخدمه Shadertoy لمدخلات القنوات.
- ما إصدار WebGL المستخدَم؟
- WebGL 1 مع GLSL ES 1.0. هذا يعني استخدام `varying` بدل `in/out`، و`gl_FragColor` بدل مخرج مسمّى، ولا يوجد دعم لنماذج صحيحة العدد. شيدرات WebGL 2 أو OpenGL 3+ تحتاج تعديلات بسيطة في القواعد كي تعمل هنا.
- هل تُرسَل أيّة بيانات إلى خادم؟
- لا. التجميع والعرض يجريان على بطاقة GPU عبر المتصفّح. شيفرة الشيدر لا تغادر الصفحة، وإن أُغلِق التبويب دون نسخها فقد الشيفرة تماماً.
أدوات ذات صلة
نموذج ثلاثي الأبعاد للعلبة/التغليف
استعرض تصميم التغليف بشكل ثلاثي الأبعاد
مخطط انتشار ثلاثي الأبعاد
تصوّر نقاط البيانات في فضاء ثلاثي الأبعاد
عارض التضاريس ثلاثي الأبعاد
حوّل خرائط الارتفاع إلى تضاريس ثلاثية الأبعاد
عرض المنتجات ثلاثي الأبعاد
دوّر واستعرض المنتجات بتجربة ثلاثية الأبعاد تفاعلية
منشئ النصوص ثلاثية الأبعاد
أنشئ نصاً ثلاثي الأبعاد بارزاً بأنماط مخصصة
عارض صور 360 درجة
استعرض واستكشف الصور البانورامية بزاوية 360 درجة