🧩 Resample SOP چیست؟
Resample SOP برای بازنمونهگیری (Resampling) منحنیها و سطوح چندضلعی استفاده میشود.
به زبان ساده یعنی:
این نود یک منحنی یا مسیر را میگیرد و آن را به بخشهایی با طولهای برابر تقسیم میکند.
📍 نتیجه:
اگر منحنی خیلی پیچیده یا دارای نقاط با فاصلههای نامنظم باشد، Resample SOP آن را به بخشهای مساوی تقسیم میکند.
این باعث میشود حرکت، انیمیشن یا deformation روی منحنی یکنواختتر انجام شود.
توجه: Resample فقط روی Polygonها کار میکند. اگر ورودی NURBS یا Bezier باشد، ابتدا آن را به Polygon تبدیل میکند (با پارامتر Level of Detail).
⚙️ کاربرد اصلی
یکنواخت کردن طول Segmentها در منحنیها
بهینهسازی یا سبکسازی منحنیها برای شبیهسازیهای فیزیکی (مثل Spring SOP)
ساخت مسیرهای همفاصله برای انیمیشن ذرات، روباتها یا خطوط لیزری
🔧 تنظیمات کلیدی
1. Group
میتونی تعیین کنی کدوم گروه از منحنیها یا چندضلعیها resample بشن (نه کل ورودی).
2. Level of Detail (LOD)
وقتی ورودی NURBS یا Bezier باشه، این پارامتر مشخص میکنه تبدیلش به polygon چقدر دقیق باشه.
LOD بالاتر = جزئیات بیشتر و دقت بیشتر، ولی سنگینتر.
3. Resample by Polygon Edge
وقتی فعال باشه، Resample بهجای کل مسیر، هر لبهی جداگانه (edge) رو به صورت مستقل بازنمونهگیری میکنه.
🔹 یعنی گوشههای تیز حفظ میشن و هر ضلع جداگانه تقسیم میشه.
🔹 برای اشکال زاویهدار (مثل مربع یا مثلث) بسیار مفید است.
4. Method (روش بازنمونهگیری)
این قسمت تعیین میکنه چطور فاصلهها اندازهگیری بشن:
| حالت | توضیح |
|---|---|
| Even Length Segments | تقسیم بر اساس فاصله واقعی منحنی (Arc Length). دقیقترین حالت. |
| Even X / Y / Z Segments | تقسیمات یکنواخت فقط در یکی از محورهای مختصات. بیشتر برای اشکال خطی استفاده میشود. |
5. Measure (روش اندازهگیری منحنی)
| گزینه | توضیح |
|---|---|
| Along Arc | منحنی را به طولهای مساوی بر اساس مسیر واقعی تقسیم میکند (دقیقتر، کندتر). |
| Along Chord | بین نقاط اندازهگیری مستقیم انجام میدهد (مثل خط راست بین نقاط) — سریعتر، ولی کمتر دقیق. |
6. Segment Controls
دو حالت اصلی داره:
| گزینه | توضیح |
|---|---|
| Maximum Segment Length | طول هر بخش را به صورت دستی تعیین میکنی. اگر کوتاهتر باشد، منحنی نرمتر و جزئیتر میشود. |
| Maximum Segments | تعداد بخشها را تعیین میکنی. اگر 10 بنویسی، منحنی به 10 بخش تقسیم میشود. |
| Length | مقدار دقیق طول هر قطعه در حالت “Arc” یا “Chord”. |
| Segments | تعداد بخشها در کل منحنی. |
| Maintain Last Vertex | اطمینان میدهد که آخرین نقطه منحنی هم در خروجی باقی بماند، حتی اگر طول آخرین بخش از مقدار تنظیمشده کمتر باشد. |
🧠 در عمل چه کار میکند؟
فرض کن یک منحنی داری که در بعضی قسمتها نقاطش نزدیک بههم و در بعضی نقاط فاصلهدار است.
اگر بخواهی روی آن:
ذرهها حرکت کنند،
یا نور/لیزر یکنواخت پخش شود،
آنوقت فاصلههای نامنظم باعث پرش میشود.
Resample SOP با تقسیم مجدد مسیر به طولهای برابر، این پرشها را حذف میکند.
💡 مثال کاربردی (مثل مثال Help TouchDesigner)
برای ساخت پرچم متحرک (flag) که نقاطش طول ثابت دارند:
با Grid SOP چند خط افقی بساز.
با Group SOP برخی نقاط را انتخاب کن.
به آن Spring SOP بده تا در باد تکان بخورد.
بعد از Spring، یک Resample SOP اضافه کن تا طول خطوط ثابت بماند.
در نهایت Skin SOP بزن تا سطح پرچم ایجاد شود.
حالا وقتی Play بزنی، پرچم حرکت طبیعی و یکنواختی دارد چون Resample طول خطوط را کنترل کرده است.
📊 خروجی و Info CHOP
مثل سایر SOPها، Resample SOP اطلاعاتی از جمله:
تعداد نقاط (
num_points)تعداد primitives
زمان Cook و تعداد دفعات Cook
را از طریقInfo CHOPدر اختیارت میگذارد.
🎯 خلاصه کاربردی
| هدف | ابزار در Resample SOP |
|---|---|
| تقسیم منحنی به طولهای مساوی | Even Length + Arc Measure |
| حفظ گوشههای چندضلعی | Resample by Polygon Edge |
| تنظیم دستی طول هر بخش | Maximum Segment Length |
| سادهسازی منحنیها | LOD پایینتر |
| ساخت مسیرهای یکنواخت برای انیمیشن | استفاده از خروجی Resample برای SOPهای دیگر |
