دليل Volume Shader التفاعلي

ما هي هذه الصفحة؟

هذا ملعب WebGL volume shader. يمكنك تصوير الفركتالات ثلاثية الأبعاد مثل Mandelbulb في الوقت الفعلي، وضبط المعاملات، ورؤية الملاحظات الفورية. يساعدك على فهم أساسيات volume rendering وضبط الشيدر—مباشرة في متصفحك.

الميزات الرئيسية

  • عرض ثلاثي الأبعاد تفاعلي: دوران، تكبير، واستكشاف الفركتالات
  • لوحة التكوين: ضبط معاملات الشيدر مباشرة
  • ملاحظات التصوير الفورية لكل تغيير

كيفية الاستخدام

  1. انقر على زر CONFIG لفتح لوحة الكود.
  2. حرر المعاملات مثل MAX_ITERATIONS، DENSITY، SCATTERING، والمزيد.
  3. انقر على APPLY لرؤية تغييراتك فوراً.
  4. استخدم الماوس للدوران (سحب يسار)، التكبير (تمرير)، والتحريك (سحب يمين، الوضع المتقدم).

أمثلة المعاملات

#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إعادة تعيين العرض