تفاوت فایل¬هایی با فرمت¬های STL و OBJ
تفاوت فایلهایی با فرمتهای STL و OBJ
روشهای زیادی برای ذخیره سازی دادههای سه بعدی وجود دارد. فایلهای دارای فرمت STL با توجه به نقش برجسته آنها در فرآیند پرینت سه بعدی، محبوبیت خاصی میان کاربران دارند و می توان گفت STLفرمت استانداردی است که توسط بسیاری از اسلایسرها (برش دهنده های) سه بعدی و مجموعه فایلهای آنلاین مانند سرویسهای Thingiverse و MyMiniFactory استفاده میشوند.
اگرچه استفاده از فرمت OBJ کمتر رایج است، اما از این فرمت نیز در پروژههای پرینت سه بعدی استفاده میشود. البته کاربرد اصلی فرمت OBJ معمولا در برنامههای گرافیکی غیر متحرک است؛ زیرا حاوی اطلاعات بیشتری در مورد مدلها بوده و به راحتی به عنوان ورودی یا خروجی نرمافزارهای مختلف قابل استفاده میباشد.
در این مقاله، ویژگیهای اصلی هر دو فرمت را بررسی نموده و آنها را از منظر کاربرد و ارزش مقایسه خواهیم کرد.
این فرمتها چه هستند؟
هر دو فرمت STL و OBJ سطوح اجسام سه بعدی را به کمک شبکه بندی های چند ضلعی نشان میدهند (منبع: Sculpteo)
فرمتهای STL و OBJ هندسهی مدلهای سه بعدی را به کمک مشهای (شبکه های) چند ضلعی کدگذاری میکنند. این امر بدان معنی است که هر سطح از یک جسم سه بعدی با یک شبکه تقریبی از چند ضلعیهای متصل نشان داده میشود و وضوح نهایی نیز به تعداد همین چند ضلعیها بستگی دارد.
فرمت «Standard Tessellation Language» یا به عبارتی STL، به طور ویژه در دههی 80 و برای اجرای فرآیندهای پرینت سه بعدی شرکت 3D Systems تولید شد. این فرمت به طور انحصاری از مشهای مثلثی شکل ساخته شده و به دلیل اینکه فاقد برخی اطلاعات مدل مانند واحد طول (میلیمتر یا اینچ) میباشد، فرمتی بسیار سبک محسوب میشود.
نام فرمت OBJ یا به عبارت کاملتر «Wavefront Object» از نام شرکت Wavefront Technologies که یکی از توسعه دهندههای اصلی نرم افزارهای مرتبط با صنعت فیلم میباشد، گرفته شده است. OBJ به عنوان یک فرمت منبع باز، در دنیای گرافیکی دیجیتال به خوبی شناخته شده و به دلایلی که در ادامه خواهیم دید، در صنعت پرینت سه بعدی از محبوبیت فزایندهای برخوردار گردیده است.
ساختار مدل
فرمت OBJ از چند ضلعیهای گوناگونی برای رمزگذاری سطوح استفاده میکند (منبع: 3d_molier International در Free3D)
این دو فرمت از چند جهت با هم تفاوت دارند. در حالی که هر دوی آنها مدلهای سه بعدی را با شیوهای مشابه نمایش میدهند، از نظر ساختاری متفاوت میباشند و همین نکته، پیامدهایی را در رابطه با قابلیتهای استفاده و کاربردهای آنها در پی دارد.
همانطور که گفته شد، STL سطوح اجسام را به صورت شبکه های مثلثی شکل نمایش میدهد. استفاده از این شیوه برای هندسه ای ساده کافی به نظر میرسد. طبیعی است که برای نمایش مدلهای بزرگتر به تعداد مثلثهای بیشتری نیاز خواهد بود؛ بنابراین اندازهی فایل نیز به صورت تصاعدی افزایش خواهد یافت. با این حال، حتی برای دستیابی به بالاترین وضوح نیز میتوان اندازهی حدودی فایل را تخمین زد.
از طرف دیگر، فرمت OBJ با بهرهگیری از چندین چند ضلعی مختلف در یک فایل واحد، از کدگذاری دقیق سطوح پشتیبانی میکند. در این روش، به جای استفاده از شکلهای چند وجهی، میتوان سطوح را به کمک قطعات NURBS که امکان نمایشی بسیار صافتر و دقیقتر را فراهم میسازند، تعریف نمود. البته هزینهی استفاده از این روش به اندازهی تولید فایلهای بزرگتر خواهد بود.
رنگ و بافت
فرمت OBJ در حالی میتواند اطلاعات مربوط به رنگ و بافت را ذخیره نماید که STL قادر به انجام آن نیست (منبع: Gabryxx7 در GitHub)
تفاوت دیگر این فرمتها، نحوهی مدیریت اطلاعات مربوط به رنگ و بافت سطوح است. STL به سادگی نمیتواند هیچ گونه اطلاعاتی در خصوص این ویژگیها را ذخیره نماید. لذا گزینهی مناسبی برای برنامههای گرافیکی یا مواردی که شامل پرینت سهبعدی چند رنگی یا چند مادهای هستند، به شمار نمیرود.
اما برخلاف STL، فرمت OBJ از این نظر بسیار عالی بوده و مخصوصا برای برنامه های اسکن سه بعدی به شدت مفید است. این فرمت میتواند اطلاعات واقعی حاصل از عکاسی را به تصویری دو بعدی (اغلب در یک فایل تصویری جداگانه ذخیره میشود) که به عنوان پوستهی مدل عمل میکند، منتقل نماید.
هرچند که فرمتهای دیگری مانند AMF و 3MF برای این منظور گزینه های بهتری هستند، اما این ویژگی باعث میشود که OBJ جهت اجرای تکنیکهای پرینت سه بعدی تمام رنگی مناسب باشد.
پشتیبانی نرم افزاری
L فرمت استانداردی است که توسط نرمافزارهای برش سه بعدی استفاده میشود؛ البته لازم به ذکر است که OBJ نیز به خوبی به وسیلهی اینگونه نرمافزارها پشتیبانی میگردد (منبع: Apprepo)
از نظر پشتیبانی نرم افزاری، هر دو فرمت STL و OBJ به خوبی پوشش داده شدهاند. به جرئت میتوان گفت STL فرمت استانداردی است که توسط همه و یا بیشتر برش دهنده های پرینت سه بعدی رومیزی پشتیبانی میشود. به دلیل سهولت استفاده و اندازهی کوچک این نوع فایل، میتوان از آن به عنوان متداولترین فرمت برای به اشتراکگذاری طرحهای پرینت سه بعدی نام برد.
فرمت OBJ توسط اسلایسرهای پرینت سه بعدی محبوبی مانند Cura و Simplify 3D برای اجرای فرآیند FDM و ChiTuBox و PrusaSlicer برای انجام پرینت رزینی پشتیبانی میشود. بر همین اساس، این فرمت نسبت به STL منعطفتر بوده و به طور گستردهای در کاربردهای فراتر از پرینت سه بعدی نیز مورد استفاده قرار میگیرد. به عنوان مثال، از آنجایی که توسعه دهنده های بازی مکررا از فایلهای OBJ استفاده میکنند، این فرمت به طور گستردهای توسط نرمافزارهای گرافیکی و تولید انیمیشن پشتیبانی میشود.
سخن پایانی
در حالی که فرمت STL برای اکثر برنامه های پرینت سه بعدی گزینه کاملی به نظر میرسد، اما همواره در پشتیبانی از رنگها دچار مشکل است. (منبع: i.Materialise)
علیرغم این که این فرمتها دارای ویژگی های مشترک بسیاری بوده و هر دو برای کاربردهای مرتبط با پرینت سه بعدی مناسب هستند، اما در عین حال، هر یک از آنها موارد استفاده خاص و مشخصی دارند.
نمایش سه بعدی فرمت STL دقت کمتری دارد؛ اما همچنان برای بسیاری از کاربردها به اندازهی کافی دقیق است. اندازه ای کوچکتر آن نسبت به OBJ، این فرمت را به گزینه مناسبی برای ذخیرهسازی و به اشتراک گذاری سریع فایلها تبدیل نموده؛ اما به طور کلی، کاربرد STL به موارد مربوط به پرینت سه بعدی محدود میشود.
در طرف مقابل، OBJ فرمت پیچیده تری بوده و معمولا در کاربردهایی غیر از پرینت سه بعدی، از جمله مواردی که نیاز به مدلسازی و ویرایش بیشتر دارند نیز استفاده میشود. از طرفی توانایی ذخیرهسازی دادههای مربوط به رنگ و بافت، OBJ را به گزینهی مناسبی برای پرینت سهبعدیهای چند رنگ – تکنیک متداول این روزها- تبدیل نموده است.