دليل Volume Shader التفاعلي
ما هي هذه الصفحة؟
هذا ملعب WebGL volume shader. يمكنك تصوير الفركتالات ثلاثية الأبعاد مثل Mandelbulb في الوقت الفعلي، وضبط المعاملات، ورؤية الملاحظات الفورية. يساعدك على فهم أساسيات volume rendering وضبط الشيدر—مباشرة في متصفحك.
الميزات الرئيسية
- عرض ثلاثي الأبعاد تفاعلي: دوران، تكبير، واستكشاف الفركتالات
- لوحة التكوين: ضبط معاملات الشيدر مباشرة
- ملاحظات التصوير الفورية لكل تغيير
كيفية الاستخدام
- انقر على زر CONFIG لفتح لوحة الكود.
- حرر المعاملات مثل
MAX_ITERATIONS،DENSITY،SCATTERING، والمزيد. - انقر على APPLY لرؤية تغييراتك فوراً.
- استخدم الماوس للدوران (سحب يسار)، التكبير (تمرير)، والتحريك (سحب يمين، الوضع المتقدم).
أمثلة المعاملات
#define MAX_ITERATIONS 32
#define DENSITY 0.15
#define SCATTERING 0.8
#define LIGHT_INTENSITY 5.0
#define STEP_SIZE 0.01- زد
DENSITYللحصول على مظهر أكثر صلابة - قلل
MAX_ITERATIONSللحصول على أداء أفضل - جرب
#define USE_NOISE 1للتأثيرات الطبيعية - اضبط
LIGHT_DIRلزوايا إضاءة مختلفة
مثال الشيدر والشرح
float kernal(vec3 ver){
float x,y,z;
x = cos(1.0 / (ver.x*ver.x + 0.06));
y = cos(1.0 / (ver.y*ver.y + 0.06));
z = cos(1.0 / (ver.z*ver.z + 0.06));
return -x-y-z-1.2;
}- ver: الموقع ثلاثي الأبعاد في الفضاء الذي يتم تقييمه بواسطة الشيدر.
- x, y, z: كل منها يمثل قيمة محولة من إحداثيات ver.x، ver.y، ver.z، باستخدام دالة جيب التمام للمقلوب من الإحداثي المربع (زائد ثابت صغير لتجنب القسمة على صفر). هذا ينشئ حقل غير خطي ودوري للغاية في الفضاء ثلاثي الأبعاد.
- قيمة return تجمع هذه المكونات الثلاثة، مع إزاحة -1.2، لتحديد السطح أو الكثافة في تلك النقطة. النتيجة هي بنية فركتال معقدة ومتموجة.
تُستخدم دالة kernal هذه كحقل مسافة في خوارزمية ray marching. من خلال ضبط الصيغة أو الثوابت (مثل 0.06 أو -1.2)، يمكنك التحكم في شكل وتردد وكثافة الفركتال المُنشأ. جرب التجريب مع هذه القيم في لوحة CONFIG لتأثيرات بصرية مختلفة.
نصائح الأداء
- قلل
MAX_ITERATIONSأو زدSTEP_SIZEللحصول على FPS أعلى - عطل مكافحة التعرج لتقليل حمل GPU
- جرب الإعدادات المسبقة: SCATTERING=0.9, LIGHT_INTENSITY=8.0 للتشتت القوي
التحكم
| الإجراء | الوصف |
|---|---|
| سحب يسار | دوران العرض ثلاثي الأبعاد |
| تمرير | تكبير/تصغير |
| سحب يمين | تحريك (الوضع المتقدم) |
| مفتاح R | إعادة تعيين العرض |