خلاصه

Align SOP یک گروه از پرایمیتیوها (primitives) را با هم یا با یک ورودی کمکی (auxiliary input) هم‌تراز می‌کند؛ این کار از طریق جابه‌جایی (Translate) یا چرخش (Rotate) هر پرایمیتیو حول یک نقطه محوری (Pivot Point) انجام می‌شود.

پرایمیتیوهای چپ و راست (Left and Right Primitives):
مفهوم “چپ” و “راست” بسته به زمینه متفاوت است:

  • اگر از یک ورودی کمکی استفاده شود، همیشه به‌عنوان پرایمیتیو راست در نظر گرفته می‌شود و هندسه ورودی اصلی، پرایمیتیوهای چپ خواهند بود.

  • اگر فقط یک ورودی استفاده شود، برای هر جفت پرایمیتیو که هم‌تراز می‌شوند، یکی به‌عنوان چپ و دیگری به‌عنوان راست عمل می‌کند.
    یعنی یک پرایمیتیو بسته به همسایه‌هایش می‌تواند هم “چپ” باشد و هم “راست”.


پارامترها – صفحه

  • Group (group) – یک زیرمجموعه از پرایمیتیوها را برای هم‌ترازی انتخاب می‌کند (از الگوها طبق راهنمای Pattern Matching پشتیبانی می‌کند). اگر خالی باشد، تمام ورودی هم‌تراز می‌شود.

  • Align (align) – ⊞ – می‌تواند زیرگروه‌هایی از N پرایمیتیو یا هر پرایمیتیو Nام را به صورت چرخه‌ای هم‌تراز کند.

    • All Primitives – همه پرایمیتیوها.

    • Groups of N Primitives – گروه‌های N پرایمیتیو.

    • Skip Every Nth Primitive – پرش از هر پرایمیتیو Nام.

  • N (inc) – تعداد پرایمیتیوهایی که باید گروه‌بندی یا پرش داده شوند.

    • مثال: اگر 6 پرایمیتیو شماره‌گذاری‌شده (0 تا 5) داشته باشیم و N = 2 باشد:

      • … (مثال در متن اصلی کامل نشده است).


پارامترها – صفحه Align

  • Bias (bias) – تعیین می‌کند کدام پرایمیتیو بدون تغییر باقی بماند:

    • 0 → چپ (Left)

    • 1 → راست (Right)

  • Left UV (leftuv) – ⊞ – موقعیت Pivot برای هر پرایمیتیو “چپ”.

    • U (leftuv1)

    • V (leftuv2)

  • Right UV (rightuv) – ⊞ – موقعیت Pivot برای هر پرایمیتیو “راست”.

    • U (rightuv1)

    • V (rightuv2)

  • Right UV End (rightuvend) – ⊞ – اگر از ورودی کمکی استفاده شود، این موقعیت یک نقطه پایانی برای هم‌ترازی را مشخص می‌کند. پرایمیتیوهای چپ سپس به‌طور یکنواخت بین Right UV و Right UV End توزیع می‌شوند.

    • U (rightuvend1)

    • V (rightuvend2)

  • Individual Alignment (individual) – باعث می‌شود هر پرایمیتیو ورودی جداگانه هم‌تراز شود. اگر غیرفعال باشد، فقط اولین پرایمیتیو هم‌تراز می‌شود و بقیه نسبت به آن قرار می‌گیرند، در حالی که چینش فضایی پرایمیتیوهای چپ حفظ می‌شود.

  • Translate (dotrans) – وقتی فعال باشد، پرایمیتیوها در طی هم‌ترازی جابه‌جا می‌شوند (موقعیت UV چپ به UV راست منتقل می‌شود).

  • Rotate (dorotate) – وقتی فعال باشد، پرایمیتیوها در طی هم‌ترازی می‌چرخند (تنگنت‌های UV چپ در موقعیت UV چپ با تنگنت‌های UV راست در موقعیت UV راست هم‌تراز می‌شوند).


پارامترها – صفحه Transform

  • Transform Order (xord) – ⊞ – ترتیب کلی برای اعمال تبدیل‌ها و چرخش‌ها را مشخص می‌کند. بسته به ترتیب، می‌توان با مقادیر یکسان نتایج متفاوت گرفت:

    • Scale → Rotate → Translate (srt)

    • Scale → Translate → Rotate (str)

    • Rotate → Scale → Translate (rst)

    • Rotate → Translate → Scale (rts)

    • Translate → Scale → Rotate (tsr)

    • Translate → Rotate → Scale (trs)

  • Rotate Order (rord) – ⊞ – ترتیب کلی چرخش‌ها را مشخص می‌کند:

    • Rx Ry Rz (xyz)

    • Rx Rz Ry (xzy)

    • Ry Rx Rz (yxz)

    • Ry Rz Rx (yzx)

    • Rz Rx Ry (zxy)

    • Rz Ry Rx (zyx)

  • Translate (t) – ⊞ – امکان جابه‌جایی پس از هم‌ترازی حول محورهای محلی xyz را می‌دهد.

    • X (tx)

    • Y (ty)

    • Z (tz)

  • Rotate (r) – ⊞ – امکان چرخش پس از هم‌ترازی حول محورهای محلی xyz.

    • X (rx)

    • Y (ry)

    • Z (rz)

  • Scale (s) – ⊞ – امکان مقیاس‌دهی پس از هم‌ترازی حول محورهای محلی xyz.

    • X (sx)

    • Y (sy)

    • Z (sz)

  • Pivot (p) – ⊞ – امکان تعیین محور محلی xyz برای جابه‌جایی، چرخش یا مقیاس‌دهی پس از هم‌ترازی.

    • X (px)

    • Y (py)

    • Z (pz)


ورودی‌های اپراتور

  • Input 0: – ورودی اصلی.

  • Input 1: – ورودی کمکی.


کانال‌های Info CHOP

اطلاعات اضافه برای Align SOP از طریق Info CHOP در دسترس است.

کانال‌های عمومی SOP Info

  • num_points – تعداد نقاط در این SOP.

  • num_prims – تعداد پرایمیتیوها.

  • num_particles – تعداد ذرات.

  • last_vbo_update_time – مدت زمان صرف‌شده در نخ دیگر برای به‌روزرسانی داده‌های هندسه روی GPU از داده‌های CPU.

  • last_meta_vbo_update_time – مدت زمان صرف‌شده در نخ دیگر برای به‌روزرسانی داده‌های سطح متا (metaball یا nurbs).

کانال‌های عمومی Operator Info

  • total_cooks – تعداد دفعاتی که اپراتور cook شده است.

  • cook_time – مدت زمان آخرین cook (ms).

  • cook_frame – شماره فریم آخرین cook نسبت به تایم‌لاین کامپوننت.

  • cook_abs_frame – شماره فریم آخرین cook نسبت به زمان مطلق.

  • cook_start_time – زمان شروع cook در فریم (ms).

  • cook_end_time – زمان پایان cook در فریم (ms).

  • cooked_this_frame – اگر در این فریم cook شده باشد، مقدار 1 است.

  • warnings – تعداد هشدارها (در صورت وجود).

  • errors – تعداد خطاها (در صورت وجود).