BabylonJS-এ ক্যামেরা অত্যন্ত গুরুত্বপূর্ণ একটি উপাদান, যা 3D দৃশ্যের মধ্যে ব্যবহারকারীকে দেখানোর জন্য দৃষ্টিকোণ নির্ধারণ করে। ক্যামেরার পজিশন, রোটেশন এবং মুভমেন্ট কনফিগার করার মাধ্যমে আপনি 3D দৃশ্যের অভিজ্ঞতাকে উন্নত করতে পারেন। এই গাইডে, আমরা জানব কীভাবে BabylonJS-এ ক্যামেরা কনফিগার করতে হয়।
ক্যামেরার পজিশন সেট করা
১. ক্যামেরার পজিশন নির্ধারণ
ক্যামেরার পজিশন নির্ধারণ করতে, আমরা BABYLON.Vector3 ক্লাস ব্যবহার করি, যা 3D স্পেসে একটি পয়েন্ট বা ভেক্টর তৈরি করে। ক্যামেরার পজিশন সেট করার জন্য camera.position প্রপার্টি ব্যবহার করা হয়।
উদাহরণ:
var camera = new BABYLON.ArcRotateCamera("camera1", Math.PI / 2, Math.PI / 2, 10, BABYLON.Vector3.Zero(), scene);
camera.position = new BABYLON.Vector3(5, 5, -10); // ক্যামেরার পজিশন (X, Y, Z)
camera.attachControl(canvas, true);
এখানে:
camera.position: ক্যামেরার পজিশন নির্ধারণ করা হচ্ছে।Vector3(5, 5, -10)মানে ক্যামেরা X, Y, Z অক্ষের উপর (5, 5, -10) পজিশনে থাকবে।BABYLON.Vector3.Zero(): ক্যামেরার লক্ষ্যস্থল (target) হিসেবে 3D দৃশ্যে (0, 0, 0) পয়েন্ট বা জিরো পজিশন নির্ধারণ করা হয়েছে।
ক্যামেরার রোটেশন কনফিগার করা
২. ক্যামেরার রোটেশন সেট করা
ক্যামেরার রোটেশন (rotation) নির্ধারণ করার জন্য camera.rotation প্রপার্টি ব্যবহার করা হয়। এটি রেডিয়ান পদ্ধতিতে মান গ্রহণ করে। আপনি X, Y, এবং Z অক্ষের চারপাশে ক্যামেরাকে ঘোরাতে পারেন।
উদাহরণ:
var camera = new BABYLON.ArcRotateCamera("camera1", Math.PI / 2, Math.PI / 2, 10, BABYLON.Vector3.Zero(), scene);
camera.rotation = new BABYLON.Vector3(Math.PI / 4, Math.PI / 4, 0); // ক্যামেরার রোটেশন
camera.attachControl(canvas, true);
এখানে:
camera.rotation: ক্যামেরার রোটেশন নির্ধারণ করা হচ্ছে। এখানেVector3(Math.PI / 4, Math.PI / 4, 0)দিয়ে ক্যামেরা X ও Y অক্ষের চারপাশে 45° (π/4 রেডিয়ান) ঘুরানো হচ্ছে।
ক্যামেরার মুভমেন্ট কনফিগার করা
৩. ক্যামেরার মুভমেন্ট (পজিশন এবং রোটেশন) কাস্টমাইজ করা
ক্যামেরার মুভমেন্ট বা পজিশন পরিবর্তন করার জন্য বিভিন্ন ধরনের কন্ট্রোল ব্যবহার করা যেতে পারে, যেমন:
- ArcRotateCamera: যা 3D দৃশ্যের চারপাশে ঘুরিয়ে দেখার জন্য ব্যবহৃত হয়।
- FreeCamera: যা ফ্রি মুভমেন্টে ক্যামেরাকে 3D স্পেসে চলতে সাহায্য করে।
ArcRotateCamera:
ArcRotateCamera ব্যবহার করার মাধ্যমে আপনি ক্যামেরাকে একটি নির্দিষ্ট পয়েন্টের চারপাশে ঘুরাতে পারেন, যেমন:
var camera = new BABYLON.ArcRotateCamera("camera1", Math.PI / 2, Math.PI / 2, 10, BABYLON.Vector3.Zero(), scene);
camera.attachControl(canvas, true);
এখানে, ArcRotateCamera ক্যামেরা ব্যবহারকারীকে দৃশ্যের চারপাশে ঘুরানোর সুবিধা দেয়। attachControl ব্যবহার করে মাউস বা কীবোর্ডের মাধ্যমে ক্যামেরা কন্ট্রোল করা যায়।
FreeCamera:
FreeCamera ব্যবহার করলে ক্যামেরা 3D স্পেসে স্বাধীনভাবে মুভ করতে পারে, যেমন FPS গেমে দেখা যায়।
var camera = new BABYLON.FreeCamera("freeCamera", new BABYLON.Vector3(0, 5, -10), scene);
camera.setTarget(BABYLON.Vector3.Zero());
camera.attachControl(canvas, true);
এখানে:
FreeCamera: ক্যামেরা মুক্তভাবে চলতে সক্ষম, এবং এটিsetTargetদ্বারা নির্দিষ্ট লক্ষ্য পয়েন্টের দিকে তাকাবে।camera.attachControl(canvas, true): এটি মাউস এবং কীবোর্ডের সাহায্যে ক্যামেরা কন্ট্রোল সক্ষম করে।
ক্যামেরার ফিল্ড অব ভিউ (Field of View, FOV)
৪. ক্যামেরার ফিল্ড অব ভিউ কনফিগার করা
ক্যামেরার ফিল্ড অব ভিউ (FOV) পরিবর্তন করা যায়। এটি ক্যামেরার দৃশ্যের চওড়া বা সংকীর্ণ হওয়া নির্ধারণ করে। FOV মান পরিবর্তন করে, আপনি ক্যামেরার দৃষ্টিকোণ পরিবর্তন করতে পারেন।
camera.fov = 0.8; // ফিল্ড অব ভিউ পরিবর্তন করা
এখানে, camera.fov 0 থেকে 1 পর্যন্ত মান গ্রহণ করে, যা ক্যামেরার দৃশ্যের চওড়া বা সংকীর্ণতা নির্ধারণ করে। ছোট মানে ক্যামেরার দৃশ্য সংকীর্ণ হবে, বড় মানে চওড়া হবে।
ক্যামেরা মুভমেন্টের জন্য কীবোর্ড ও মাউস কন্ট্রোল
৫. কীবোর্ড ও মাউস কন্ট্রোল যুক্ত করা
BabylonJS-এ ক্যামেরার মুভমেন্ট কীবোর্ড বা মাউসের মাধ্যমে কন্ট্রোল করা যেতে পারে। attachControl মেথড ব্যবহার করে আপনি এই কন্ট্রোল যুক্ত করতে পারেন।
var camera = new BABYLON.ArcRotateCamera("camera1", Math.PI / 2, Math.PI / 2, 10, BABYLON.Vector3.Zero(), scene);
camera.attachControl(canvas, true); // কীবোর্ড এবং মাউস কন্ট্রোল
এখানে, camera.attachControl(canvas, true) ক্যামেরাকে মাউস এবং কীবোর্ডের সাহায্যে নিয়ন্ত্রণ করার সুযোগ দেয়।
সারাংশ
- ক্যামেরার পজিশন:
camera.positionদিয়ে ক্যামেরার অবস্থান নির্ধারণ করা হয়। - ক্যামেরার রোটেশন:
camera.rotationদিয়ে ক্যামেরার রোটেশন কনফিগার করা হয়, যাতে আপনি ক্যামেরাকে নির্দিষ্ট অক্ষের চারপাশে ঘোরাতে পারেন। - ক্যামেরার মুভমেন্ট:
ArcRotateCameraওFreeCameraব্যবহার করে ক্যামেরার মুভমেন্ট কাস্টমাইজ করা যায়। - কীবোর্ড ও মাউস কন্ট্রোল:
attachControlব্যবহার করে ক্যামেরাকে মাউস ও কীবোর্ডের মাধ্যমে নিয়ন্ত্রণ করা যায়।
এই সব কনফিগারেশন দিয়ে আপনি আপনার 3D দৃশ্যের ক্যামেরাকে খুব সহজেই কাস্টমাইজ করতে পারবেন, যা ব্যবহারকারীর অভিজ্ঞতা অনেক উন্নত করবে।
Read more