Volume Shader ইন্টারঅ্যাক্টিভ গাইড

এই পেজটি কী?

এটি একটি WebGL volume shader প্লেগ্রাউন্ড। আপনি রিয়েল-টাইমে Mandelbulb এর মতো 3D ফ্র্যাক্টাল রেন্ডার করতে পারেন, প্যারামিটার সামঞ্জস্য করতে পারেন এবং তাত্ক্ষণিক ফিডব্যাক দেখতে পারেন। এটি আপনাকে volume rendering এবং শেডার টিউনিংয়ের মৌলিক বিষয় বুঝতে সাহায্য করে—সরাসরি আপনার ব্রাউজারে।

মূল বৈশিষ্ট্য

  • ইন্টারঅ্যাক্টিভ 3D ভিউ: ফ্র্যাক্টাল ঘুরান, জুম করুন এবং অন্বেষণ করুন
  • কনফিগ প্যানেল: শেডার প্যারামিটার সরাসরি সামঞ্জস্য করুন
  • প্রতিটি পরিবর্তনের জন্য তাত্ক্ষণিক রেন্ডারিং ফিডব্যাক

কীভাবে ব্যবহার করবেন

  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: শেডার দ্বারা মূল্যায়ন করা হচ্ছে এমন স্থানের 3D অবস্থান।
  • x, y, z: প্রতিটি ver.x, ver.y, ver.z স্থানাঙ্কের রূপান্তরিত মান প্রতিনিধিত্ব করে, বর্গ স্থানাঙ্কের পারস্পরিকের কোসাইন ফাংশন ব্যবহার করে (শূন্য দ্বারা বিভাজন এড়াতে একটি ছোট ধ্রুবক যোগ করে)। এটি 3D স্থানে একটি অত্যন্ত অ-রৈখিক, পর্যায়ক্রমিক ক্ষেত্র তৈরি করে।
  • return মান এই তিনটি উপাদানকে একত্রিত করে, -1.2 দ্বারা অফসেট করে, সেই বিন্দুতে পৃষ্ঠ বা ঘনত্ব সংজ্ঞায়িত করে। ফলাফল একটি জটিল, ঢেউখেলানো ফ্র্যাক্টাল কাঠামো।

এই kernal ফাংশনটি রে মার্চিং অ্যালগরিদমে একটি দূরত্ব ক্ষেত্র হিসাবে ব্যবহৃত হয়। সূত্র বা ধ্রুবকগুলি (যেমন 0.06 বা -1.2) সামঞ্জস্য করে, আপনি উৎপন্ন ফ্র্যাক্টালের আকৃতি, ফ্রিকোয়েন্সি এবং ঘনত্ব নিয়ন্ত্রণ করতে পারেন। বিভিন্ন ভিজ্যুয়াল ইফেক্টের জন্য CONFIG প্যানেলে এই মানগুলি নিয়ে পরীক্ষা করুন।

পারফরম্যান্স টিপস

  • উচ্চ FPS-এর জন্য MAX_ITERATIONS কম করুন বা STEP_SIZE বাড়ান
  • কম GPU লোডের জন্য অ্যান্টি-অ্যালিয়াসিং নিষ্ক্রিয় করুন
  • শক্তিশালী স্ক্যাটারিংয়ের জন্য প্রিসেট চেষ্টা করুন: SCATTERING=0.9, LIGHT_INTENSITY=8.0

কন্ট্রোল

অ্যাকশনবিবরণ
বাম টেনে3D ভিউ ঘুরান
স্ক্রলজুম ইন/আউট
ডান টেনেপ্যান (উন্নত মোড)
R কীভিউ রিসেট করুন