একটি OBJ ফাইল কি?
OBJ ফাইলগুলি ওয়েভফ্রন্টের অ্যাডভান্সড ভিজ্যুয়ালাইজার অ্যাপ্লিকেশন দ্বারা জ্যামিতিক বস্তুগুলিকে সংজ্ঞায়িত এবং সংরক্ষণ করতে ব্যবহার করা হয়। OBJ ফাইলের মাধ্যমে জ্যামিতিক ডেটার পশ্চাৎগামী এবং অগ্রবর্তী স্থানান্তর সম্ভব হয়েছে। উভয় বহুভুজ জ্যামিতি যেমন পয়েন্ট, লাইন, টেক্সচার শীর্ষবিন্দু, মুখ এবং মুক্ত-ফর্ম জ্যামিতি (বক্ররেখা এবং পৃষ্ঠ) OBJ বিন্যাস দ্বারা সমর্থিত। এই বিন্যাসটি আলো এবং দৃশ্যের অবস্থান সম্পর্কিত অ্যানিমেশন বা তথ্য সমর্থন করে না।
একটি OBJ ফাইল সাধারণত একটি CAD (কম্পিউটার এডেড ডিজাইন) দ্বারা উত্পন্ন 3D মডেলিং প্রক্রিয়ার একটি শেষ পণ্য। শীর্ষবিন্দু সঞ্চয় করার ডিফল্ট ক্রম হল ঘড়ির কাঁটার বিপরীতে মুখের স্বাভাবিকতার স্পষ্ট ঘোষণা এড়ানো। যদিও OBJ ফাইলগুলি একটি মন্তব্য লাইনে স্কেল তথ্য ঘোষণা করে তবুও OBJ স্থানাঙ্কের জন্য কোনো ইউনিট ঘোষণা করা হয়নি।
3D OBJ ফরম্যাটের ইতিহাস
Wavefront Technologies created OBJ file format for its Advanced Visualizer application to store geometric objects and 3D data. Its version 2.11 is superseded by a newly documented version 3. ফাইল ফরম্যাটটি উন্মুক্ত এবং অন্যান্য বিক্রেতারা তাদের 3D গ্রাফিক্স অ্যাপ্লিকেশনের জন্য প্রয়োগ করেছে। ওয়েভফ্রন্ট টেকনোলজিস এই ফাইল ফরম্যাটটিকে ওপেন সোর্স এবং নিরপেক্ষ রাখে।
OBJ ফাইল ফরম্যাট
3D অবজেক্টে, পৃষ্ঠের জ্যামিতি এনকোড করা একটি চ্যালেঞ্জিং কাজ যা OBJ ফাইল ফর্ম্যাট খুব ভালভাবে সম্পন্ন করেছে। এই বিন্যাসটি বেশ বহুমুখী কারণ এটি পৃষ্ঠের জ্যামিতি এনকোড করার জন্য অনেকগুলি পছন্দ অফার করে। নিম্নলিখিত তিনটি অনুমোদিত ফর্ম্যাটের নিজস্ব সুবিধা এবং ত্রুটি রয়েছে:
বহুভুজ মুখের সাথে টেসেলেশন
OBJ ফাইল ফরম্যাট ব্যবহারকারীকে সহজ বা জটিল জ্যামিতিক আকার ব্যবহার করে একটি 3D মডেল পৃষ্ঠকে টেসেলেট করতে সহায়তা করে। একটি মডেলের পৃষ্ঠের জ্যামিতি এনকোডিংয়ের জন্য, একটি ফাইল প্রতিটি বহুভুজে শীর্ষবিন্দু এবং স্বাভাবিক সংরক্ষণ করে। যদিও টেসেলেশন মডেলের মোটাতা বাড়ায়, তবুও ফাইলের আকার এবং এর মুদ্রণের মানের মধ্যে সঠিক ভারসাম্য আবিষ্কার করা প্রয়োজন।
ফ্রি-ফর্ম কার্ভ
OBJ ফাইল ফরম্যাট ব্যবহারকারী-সংজ্ঞায়িত ফ্রি-ফর্ম সারফেস কার্ভকে একটি মডেলের পৃষ্ঠের জ্যামিতি নির্দিষ্ট করতে দেয়। যেহেতু ফ্রি-ফর্ম বক্ররেখাগুলি বহুভুজ মুখের চেয়ে জটিল, যেহেতু কিছু গাণিতিক পরামিতি সহ, বাঁকা রেখাগুলিকে মুক্ত বক্ররেখা দ্বারা সবচেয়ে ভালভাবে সংজ্ঞায়িত করা যেতে পারে। অতএব, বহুভুজ টেসেলেশনের তুলনায় কম ডেটা সহ, ফাইলের আকার প্রসারিত না করেই যেকোন 3D মডেলের একটি উচ্চ-মানের এনকোডিং তৈরি করতে ব্যবহৃত ফ্রি-ফর্ম কার্ভ।
ফ্রি-ফর্ম সারফেস
OBJ ফাইল ফরম্যাট ফ্রি-ফর্ম সারফেস প্যাচের সাথে সারফেস জ্যামিতির টাইলিংও নির্দিষ্ট করে। এই ধরনের ফ্রিফর্ম সারফেস প্যাচ (NURBS) ট্রাকের বডি, হেলিকপ্টারের ডানা বা নৌকার হুলের মতো অনমনীয় রেডিয়াল মাত্রা ছাড়া পৃষ্ঠের জন্য খুবই উপযুক্ত। ফ্রিফর্ম সারফেসগুলির ব্যবহার খুব সুবিধাজনক কারণ তারা ফাইলের আকারগুলিকে উচ্চ নির্ভুলতায় ছোট রাখতে আরও সুনির্দিষ্ট। এই পৃষ্ঠতলগুলি মহাকাশ এবং স্বয়ংচালিত শিল্পের অপরিহার্য অংশ যেখানে কম নির্ভুলতা ক্ষমাহীন।
নিম্নোক্ত কীওয়ার্ডগুলি পৃষ্ঠের জ্যামিতি সংজ্ঞায়িত করার জন্য ডেটা টাইপ দ্বারা সাজানো হয়েছে।
এলিমেন্টস | ফ্রি-ফর্ম কার্ভ/সারফেস বডি স্টেটমেন্টস | ফ্রি-ফর্ম কার্ভ/সারফেস অ্যাট্রিবিউট |
---|---|---|
p | পয়েন্ট | parm |
l | লাইন | ট্রিম |
f | Face | hole |
কারভ | বক্ররেখা | scrv |
curv2 | 2D কার্ভ | sp |
সার্ফ | সারফেস | এন্ড |
ডিসপ্লে/রেন্ডার অ্যাট্রিবিউট | g | গ্রুপের নাম |
বেভেল | বেভেল ইন্টারপোলেশন | শ্যাডো_অবজে |
lod | বিস্তারিত স্তর | |
d_interp | দ্রবীভূত ইন্টারপোলেশন | ctech |
c_interp | কালার ইন্টারপোলেশন | stech |
usemtl | মেটেরিয়ালের নাম | mtllib |
জ্যামিতিক শীর্ষবিন্দু | ||
v | জ্যামিতিক শীর্ষবিন্দু | vn |
vt | টেক্সচার শীর্ষবিন্দু | vp |
রঙ এবং টেক্সচার
OBJ ফাইলটি মেটেরিয়াল টেমপ্লেট লাইব্রেরি (MTL) নামক একটি সংশ্লিষ্ট ফাইল ফরম্যাটে রঙ এবং টেক্সচারের তথ্য সংরক্ষণ করার অনুমতি দেয়। মাল্টি-কালার জ্যামিতিক মডেল এই দুটি ফাইল একসাথে ব্যবহার করে রেন্ডার করে। MTL ফাইলগুলি ASCII ভিত্তিক এবং Phong প্রতিফলনের মডেল ব্যবহার করে একটি পৃষ্ঠের আলো প্রতিফলিত বৈশিষ্ট্যগুলি বর্ণনা করে কম্পিউটার রেন্ডারিংয়ে সহায়তা করে। স্ট্যান্ডার্ডটি বিপুল সংখ্যক সফ্টওয়্যার বিক্রেতাদের দ্বারা গৃহীত হয়েছে যারা উপকরণের আদান-প্রদানের জন্য এর সুবিধা গ্রহণ করে। স্পেকুলার এবং প্যারালাক্স ম্যাপের মতো সাম্প্রতিক প্রযুক্তিতে সমর্থন না থাকার জন্য MTL বিন্যাসটি কিছুটা পুরানো।