BabylonJS একটি শক্তিশালী 3D গ্রাফিক্স ইঞ্জিন, যা বিভিন্ন ধরনের লাইট সাপোর্ট করে, যা 3D দৃশ্যে আলোর প্রভাব সৃষ্টি করতে সাহায্য করে। লাইট সিস্টেম ব্যবহার করে, আপনি আপনার দৃশ্যকে আরও জীবন্ত এবং রিয়ালিস্টিক করতে পারেন। এই গাইডে আমরা HemisphericLight, PointLight, এবং DirectionalLight এই তিন ধরনের লাইটের ব্যবহারের উদাহরণ দেখব।
১. HemisphericLight
HemisphericLight কি?
HemisphericLight একটি বিশেষ ধরনের আলো, যা আকাশ এবং পৃথিবী থেকে আসা আলোর সমন্বয়ে তৈরি হয়। এটি সাধারণত একটি হালকা আলো প্রভাব তৈরি করতে ব্যবহৃত হয় এবং এটি সাধারণত স্কাই লাইটের মতো কাজ করে। এটি বেসিকভাবে একটি উপরের এবং নিচের আলোর উৎস তৈরি করে, যা দৃশ্যের আলো এবং ছায়া তৈরি করতে সাহায্য করে।
ব্যবহার:
// HemisphericLight তৈরি করা
var light = new BABYLON.HemisphericLight("light1", BABYLON.Vector3.Up(), scene);
// আলোর রঙ এবং শক্তি নির্ধারণ
light.diffuse = new BABYLON.Color3(1, 1, 1); // সাদা আলো
light.specular = new BABYLON.Color3(0.5, 0.5, 0.5); // ধূসর স্পেকুলার
light.groundColor = new BABYLON.Color3(0.2, 0.2, 0.2); // পৃথিবী রঙ
কোডের ব্যাখ্যা:
- HemisphericLight: এটি একটি হালকা আলো তৈরি করে যা উপরের এবং নিচের দিকে আলোকিত করে।
- diffuse: এটি আলোর প্রধান রঙ নির্ধারণ করে।
- specular: এটি আলোর প্রতিফলন বা স্পেকুলার রঙ নির্ধারণ করে।
- groundColor: এটি পৃথিবী থেকে প্রতিফলিত আলো নির্ধারণ করে।
HemisphericLight এর বৈশিষ্ট্য:
- সাধারণত একটি হালকা এবং নরম আলো তৈরি করে।
- সূর্য বা আকাশের আলোকে সিমুলেট করতে ব্যবহৃত হয়।
- কোনো নির্দিষ্ট দিক থেকে আলো আসতে বাধ্য নয়, এটি সমগ্র দৃশ্যকে আলোকিত করতে পারে।
২. PointLight
PointLight কি?
PointLight একটি পয়েন্ট সাপোর্ট করা আলোর উৎস, যা এক জায়গা থেকে চারদিকে ছড়িয়ে পড়ে, যেমন একটি বাল্বের আলো। এটি একটি ছোট উৎস থেকে বের হয়ে সব দিকে আলো পাঠায়। এটি ব্যবহৃত হয় সুনির্দিষ্ট একটি জায়গায় আলো প্রদান করতে।
ব্যবহার:
// PointLight তৈরি করা
var light = new BABYLON.PointLight("pointLight", BABYLON.Vector3.Zero(), scene);
// আলোর রঙ এবং শক্তি নির্ধারণ
light.diffuse = new BABYLON.Color3(1, 1, 0); // হলুদ আলো
light.intensity = 0.7; // আলোর শক্তি
কোডের ব্যাখ্যা:
- PointLight: এটি এক স্থান থেকে চারদিকে আলো ছড়িয়ে দেয়। প্রথম প্যারামিটার হিসাবে আলোর নাম এবং দ্বিতীয় প্যারামিটার হিসেবে আলো যেখানে অবস্থিত সেই ভেক্টর দেওয়া হয় (এখানে
BABYLON.Vector3.Zero()মানে (0, 0, 0) বা দৃশ্যের কেন্দ্র)। - diffuse: আলো রঙ নির্ধারণ করে। এখানে হলুদ রঙ দেওয়া হয়েছে।
- intensity: আলোর শক্তি নির্ধারণ করে, যা আলো কতটা উজ্জ্বল হবে তা নিয়ন্ত্রণ করে।
PointLight এর বৈশিষ্ট্য:
- আলোর উৎস একটি নির্দিষ্ট অবস্থানে থাকে।
- আলো চারদিকে সমানভাবে ছড়িয়ে পড়ে।
- ছোট এলাকা আলোকিত করতে ব্যবহৃত হয়, যেমন ঘরের আলো বা পথের আলো।
৩. DirectionalLight
DirectionalLight কি?
DirectionalLight একটি দিকনির্দেশিত আলো, যা একটি নির্দিষ্ট দিক থেকে আসে এবং সমস্ত দৃশ্যে সমানভাবে পৌঁছে যায়। এটি প্রধানত সূর্যের আলো বা বড় আলোর উৎসের মতো কাজ করে, যেখানে আলো একটি নির্দিষ্ট দিক থেকে আসে এবং দৃশ্যের পুরো অংশ আলোকিত করে।
ব্যবহার:
// DirectionalLight তৈরি করা
var light = new BABYLON.DirectionalLight("directionalLight", BABYLON.Vector3.Down(), scene);
// আলোর রঙ এবং শক্তি নির্ধারণ
light.diffuse = new BABYLON.Color3(1, 1, 1); // সাদা আলো
light.specular = new BABYLON.Color3(0.5, 0.5, 0.5); // ধূসর স্পেকুলার
light.intensity = 1; // আলোর শক্তি
কোডের ব্যাখ্যা:
- DirectionalLight: এই আলো নির্দিষ্ট একটি দিক থেকে আসে। দ্বিতীয় প্যারামিটার হিসেবে
BABYLON.Vector3.Down()দেওয়া হয়েছে, যা নির্দেশ করে যে আলো আকাশ থেকে নিচে আসবে। - diffuse: আলো রঙ নির্ধারণ করে। এখানে সাদা আলো দেওয়া হয়েছে।
- specular: এটি প্রতিফলিত আলো নির্ধারণ করে।
- intensity: আলোর শক্তি, যা দৃশ্যের উজ্জ্বলতা নিয়ন্ত্রণ করে।
DirectionalLight এর বৈশিষ্ট্য:
- এটি একটি নির্দিষ্ট দিক থেকে আলোর রশ্মি পাঠায়।
- আলো সারা দৃশ্যে একরকমভাবে ছড়িয়ে পড়ে।
- এটি প্রধানত বড় আকারের আলো উৎস, যেমন সূর্য বা মেঘে ঢাকা আলো হিসেবে ব্যবহৃত হয়।
সারাংশ
- HemisphericLight: আকাশ এবং পৃথিবী থেকে আসা আলোর সমন্বয়ে তৈরি হয়। এটি সাধারণত নরম, পরিবেশগত আলো প্রদান করে এবং 3D দৃশ্যকে একটি সাধারণ আলোকসজ্জার অভিজ্ঞতা দেয়।
- PointLight: একটি পয়েন্ট থেকে চারদিকে আলো ছড়িয়ে দেয়, সাধারণত ছোট স্থান আলোকিত করার জন্য ব্যবহৃত হয়।
- DirectionalLight: নির্দিষ্ট একটি দিক থেকে আলো পাঠায়, যেমন সূর্যের আলো। এটি সাধারণত বড় আকারের দৃশ্য বা প্রকৃতির আলো সিমুলেট করার জন্য ব্যবহৃত হয়।
এই তিনটি আলোর প্রকার ব্যবহার করে, আপনি BabylonJS দিয়ে বিভিন্ন ধরনের আলোর প্রভাব সৃষ্টি করতে পারেন, যা আপনার 3D দৃশ্যকে আরও বাস্তবসম্মত এবং আকর্ষণীয় করে তুলবে।
Read more