If you're seeing this message, it means we're having trouble loading external resources on our website.

তোমার যদি কোন ওয়েব ফিল্টার দেওয়া থাকে, তাহলে দয়া করে নিশ্চিত কর যে *.kastatic.org এবং *.kasandbox.org ডোমেইনগুলো উন্মুক্ত।

মূল বিষয়বস্তু

কণা ব্যবস্থা পরিচিতি

1982 সালে, William T. Reeves, Lucasfilm Ltd. এর একজন গবেষক, Star Trek II: The Wrath of Khan ছবিটিতে কাজ করেছিলেন। ছবির গল্পটি ছিল একটি জেনেসিস (সুত্রপাত) যন্ত্রকে কেন্দ্র করে, যেটা হল একটি টর্পেডো, যা কোন অনুর্বর এবং প্রাণহীন গ্রহে আঘাত করলে তার পদার্থগুলো পুনর্গঠিত হয় এবং তাকে বসবাসযোগ্য করে প্রানের সূত্রপাত ঘটায়। ছবির কোন এক মুহূর্তে, যখন গ্রহটি “terraformed" হচ্ছিল তখন পুরো গ্রহটি আগুনে ছেয়ে যায়:
খান একাডেমি ভিডিও প্লেয়ার
Particle system (কণা ব্যবস্থা) শব্দটি, কম্পিউটার গ্রাফিক্সে বহুল ব্যবহারিত এবং সাহায্যকারী একটি প্রযুক্তি, ঐ বিশেষ দৃশ্যটি তৈরি করার জন্যই এর উদ্ভাবন হয়।
“A particle system is a collection of many many minute particles that together represent a fuzzy object. Over a period of time, particles are generated into a system, move and change from within the system, and die from the system.”(একটি কণা ব্যবস্থা হল অনেকগুলো ছোট ছোট কণা যারা একত্রে মিলে একটি আবছা বস্তুর সৃষ্টি করে। একটি নির্দিষ্ট সময়ের পরে, কণা ব্যবস্থাতে কণাগুলো তৈরি হয়, ব্যবস্থার মধ্যেই গতিশীল হয় ও আকৃতি পরিবর্তন করে এবং ব্যবস্থাতেই শেষ হয়ে যায়।) —William Reeves, "Particle Systems—A Technique for Modeling a Class of Fuzzy Objects," ACM Transactions on Graphics 2:2 (April 1983), 92.
1980 সালের প্রথম থেকেই কণা ব্যবস্থা- অসংখ্য ভিডিও গেম, অ্যানিমেশন, ডিজিটাল চিত্রশিল্প এবং বিভিন্ন ধরনের প্রাকৃতিক দৃশ্য যেমন আগুন, জলপ্রপাত, কুয়াশা, ঘাস, বুদবুদ ইত্যাদি চিত্রায়নের কাজে ব্যবহার হয়ে আসছে।
এই অংশে আমরা কণা ব্যবস্থা প্রোগ্রামিং করার জন্য বিভিন্ন কৌশল অবলম্বন করে দেখব। তাহলে কীভাবে কোডগুলোকে সাজাবো? আমরা কণা ব্যবস্থার প্রত্যেকটি কণা অথবা পুরো কণা ব্যবস্থা সম্পর্কিত তথ্য আমরা কোথায় সংরক্ষণ করব? আমরা এই উদাহরণটিতে একটি কণা ব্যবস্থার তথ্যগুলো কীভাবে ব্যবস্থাপনা করা যায় সেদিকে লক্ষ্য রাখব। সেখানে কণাগুলোর জন্য সাধারণ আকৃতিগুলো নিয়ে এবং একেবারে সহজ বৈশিষ্ট্যগুলো প্রয়োগ করব (যেমন- অভিকর্ষ)। যাই হোক, এই কাঠামো ব্যবহার করে আরও আকর্ষণীয়ভাবে রেন্ডার করা সম্ভব এবং কণাগুলোর আচরণ পর্যবেক্ষণ করে, আমরা বিভিন্ন ধরনের দৃশ্য তৈরি করতে পারি।
উপরের উক্তি থেকে আমরা বুঝতে পারলাম যে, একটি কণা ব্যবস্থা হল একগুচ্ছ সাধারণ কণা। আমরা ইতোমধ্যেই একগুচ্ছ অবজেক্ট নিয়ে কীভাবে কাজ করতে হয় তা দেখেছি- যেমন বল খেলায় বলের জন্য অ্যারে। কিন্তু কণা ব্যবস্থায় জন্য, এটা আরও অনেক জটিল। সেখানে তারা বিভিন্ন সংখ্যায় থাকতে পারে: কখনও দশটি, কখনও দশ হাজার, আবার কখনও একটি কণাও থাকবে না। শুধু একটি কণাই নয়, এখানে পুরো একটি কণাগুচ্ছর আলাদা আচরন ও বৈশিষ্ট্য থাকবে। আমাদের লক্ষ্য হচ্ছে নিচের মত একটি প্রোগ্রাম তৈরি করা:
var ps = new ParticleSystem();

draw = function() {
    background(255, 255, 255);
    ps.run();
};
এখানে আমরা কোনো কণা নেইনি, তবুও আমরা দেখতে পাব যে স্ক্রীনে অসংখ্য কণা ঘুরে বেড়াচ্ছে। আমরা বিভিন্ন প্রকার অবজেক্ট বিশিষ্ট একটি প্রোগ্রাম তৈরি করব যেখানে একাধিক ধরনের অবজেক্ট থাকবে এবং একটি অবজেক্ট, অন্যান্য অবজেক্টগুচ্ছর গতিবিধি অনুসরণ করতে পারবে, এতে করে আমরা একটি শক্তিশালী কণা ব্যবস্থা তৈরি করতে পারবো যা আমাদের প্রোগ্রাম তৈরির দক্ষতাও বৃদ্ধি করবে।
এই কণা ব্যবস্থা প্রোগ্রাম করার জন্য, দুইটি উচ্চতর অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং ব্যবহার করব: inheritance (ইনহেরিটেন্স) এবং polymorphism (পলিমরফিজম)। এ পর্যন্ত আমরা যতগুলো উদাহরণ দেখেছি, আমরা সব সময় এক ধরনের অবজেক্টের অ্যারে নিয়েছি, যেমন "movers" (গতিশীল অবজেক্ট) অথবা “oscillators” (স্পন্দনশীল অবজেক্ট)। ইনহেরিটেন্স (এবং পলিমরফিজম) ব্যবহার করে, আমরা একটি অ্যারেতে বিভিন্ন ধরনের অবজেক্ট রাখার সহজ উপায় জেনে নিব। ফলশ্রুতিতে, কণা ব্যবস্থা শুধু এক ধরনের কণার মধ্যে সীমাবদ্ধ থাকবে না।
এই অনুশীলনীতে আমরা কণা ব্যবস্থার সবচেয়ে গুরুত্বপূর্ণ বৈশিষ্ট্যটি দেখবো, কিন্তু আমরা এই অংশে দেখেছি কণাগুলো দেখতে বা আচরণে একেবারে নির্দিষ্ট, এটা যেন আমাদের চিন্তাশক্তিকে থামিয়ে না দেয়। এই কণা ব্যবস্থা দেখতে চকচকে, উড়ে সামনে যায় এবং অভিকর্ষের প্রভাবে পড়ে যায়। কিন্তু এটার অর্থ এই নয় যে আমাদের কণা ব্যবস্থাকেও এমন হতে হবে। এখানে আমাদের মূল উদ্দেশ্য হল অনেকগুলো বস্তুর একটি ব্যবস্থার উপর নজর রাখা। সেখানে বস্তুগুলোর আচরণ কি হবে বা তারা দেখতে কেমন হবে সেটা পুরোটাই নিজস্ব পছন্দের উপর নির্ভর করে।