خلاصه (Summary)
Metaball SOP سطوح متابال و متا-سوپرکوادریک (meta-superquadric) ایجاد میکند.
متابالها را میتوان به عنوان میدانهای نیروی کروی در نظر گرفت که سطح آنها توسط یک تابع ضمنی (implicit function) تعریف میشود؛ در نقاطی که تراکم میدان نیرو برابر با یک آستانهی مشخص است، سطح متابال شکل میگیرد.
از آنجا که تراکم میدان نیرو با نزدیکی سایر میدانهای متابال افزایش مییابد، متابالها خاصیت منحصربهفردی دارند:
✅ شکل خود را تغییر میدهند تا با متابالهای اطراف سازگار شده و در هم ادغام شوند.
این ویژگی آنها را برای مدلسازی سطوح ارگانیک بسیار مؤثر میکند.
بهعنوان مثال، در تصویر زیر یک متابال دیده میشود. سطح متابال در هر نقطهای که تراکم میدانش به آستانهی مشخص برسد وجود دارد:
🖼️ MetaExample1.jpg
وقتی دو یا چند میدان نیروی متابال با یکدیگر ترکیب میشوند (مثل تصویر زیر)، تراکم میدانها با هم جمع میشود، و سطح متابال گسترش مییابد تا ناحیهای را که تراکم آنها به مقدار ۱ میرسد در بر بگیرد.
برای اطلاعات بیشتر، به صفحهی Metaballs مراجعه کنید.
🖼️ MetaExample2.jpg
🔍 سطح جزئیات برای نمایش متابالها (Level of Detail for Metaball Display)
میتوانی میزان جزئیات نمایش متابال و سطوح NURBS را با تغییر پارامتر Level of Detail در مسیر زیر تنظیم کنی:
Display Option Dialog → Viewport Page → Level of Detail Option
برای باز کردن پنجرهی Display Options، کافیست در نمای SOP دکمهی “p” را فشار دهی.
💡 نکته برای سایهزنی بهتر متابالها (Better Metaball Shading Tip)
اگر در هنگام تبدیل متابالها به چندضلعی (polygons)، ویژگی نرمال (normal) وجود داشته باشد، نرمالهای دقیقتری محاسبه میشوند.
بنابراین، برای سایهزنی بهتر در متابالهای چندضلعیشده، توصیه میشود پیش از تبدیل، با استفاده از یک Facet SOP ویژگی نرمال را اضافه کنی.
📘 کلاس پایتون: metaballSOP_Class
📋 فهرست مطالب
خلاصه
1.1. سطح جزئیات متابال
1.2. نکته برای سایهزنی بهترپارامترها – صفحه اصلی
2.1. نمایه (Exponent) چیست؟ورودیهای عملگر
کانالهای Info CHOP
4.1. کانالهای مشترک SOP Info
4.2. کانالهای مشترک Operator Info
⚙️ پارامترها – صفحه اصلی (Parameters – Page)
🔹 Modify Bounds – modifybounds
فقط زمانی فعال است که یک ورودی به Metaball SOP متصل شده باشد تا محدودهی متابال تعیین شود.
وقتی این گزینه روشن (On) باشد، پارامترهای تبدیل زیر، موقعیت و شعاع محدوده را تغییر میدهند.
🔹 Radius – rad ⊞
کنترلکنندهی شعاع میدان متابال
X:
radxY:
radyZ:
radz
🔹 Center – t ⊞
تعیین مرکز متابال در محورهای X، Y و Z
X:
txY:
tyZ:
tz
🔹 Weight – metaweight
وزن سطح ایزومتریک (iso-surface) متابال را در میدان تعیین میکند.
افزایش وزن باعث افزایش تراکم متابال شده و بنابراین سطح ضمنی تعریفشده (و متابالهای اطراف) گسترش مییابد.
🔹 Kernel Function – kernel
چهار نوع تفسیر برای متابال وجود دارد:
Wyvill
Elendt
Blinn
Links
برای دیدن تفاوتها، به مقالات مربوط به Geometry مراجعه کن.
🔹 XY Exponent – expxy
نمایهی XY میزان انبساط یا انقباض در محورهای X و Y را تعیین میکند.
🔹 Z Exponent – expz
نمایهی Z میزان انبساط یا انقباض در محور Z را تعیین میکند.
🔹 Compute Normals – normals
با فعال کردن این گزینه، نرمالها روی هندسه ایجاد میشوند.
ℹ️ نمایه (Exponent) چیست؟
در مورد متابالها، مقدار نمایه مشخص میکند که شکل به سمت چه حالتی متمایل شود:
مقدار > 1 → شکل به حالت ستارهای (Star-like) میل میکند
مقدار < 1 → شکل به حالت چهارگوش (Square-like) نزدیک میشود
مقدار = 1 → شکل به حالت کروی (Spherical) است
🔌 ورودیهای عملگر (Operator Inputs)
Input 0: (اختیاری – برای تعیین محدوده یا اتصال دادههای دیگر)
📊 کانالهای Info CHOP (اطلاعات اضافی)
اطلاعات اضافه برای Metaball SOP از طریق یک Info CHOP قابل دسترسی است.
🔹 کانالهای مشترک SOP Info
num_points: تعداد نقاطnum_prims: تعداد اشکال اولیهnum_particles: تعداد ذراتlast_vbo_update_time: مدت زمانی که در ترد دیگر صرف بهروزرسانی دادههای هندسی GPU شده (جزو زمان فریم نیست)last_meta_vbo_update_time: زمان صرفشده برای بهروزرسانی دادههای سطحی متا (مثل NURBS یا متابالها)
🔹 کانالهای مشترک Operator Info
total_cooks: تعداد دفعات Cook شدن از شروعcook_time: مدت زمان آخرین Cook (میلیثانیه)cook_frame: شماره فریم Cook آخر (نسبت به تایملاین جزء)cook_abs_frame: شماره فریم Cook نسبت به زمان مطلقcook_start_time: زمان شروع Cook در فریمcook_end_time: زمان پایان Cook در فریمcooked_this_frame: مقدار ۱ اگر در این فریم Cook شدهwarnings: تعداد هشدارهاerrors: تعداد خطاها
