جستجو در دوره‌ها، کاربران و پست‌ها…
SOPs

Join SOP

  خلاصه Join SOP یک دنباله از سطوح یا وجوه (faces) را به یک پرایمیتیو واحد متصل می‌کند که ویژگی‌های آن‌ها را به ارث می‌برد. وجوه از انواع مختلف می‌توانند به هم متصل شوند، همین‌طور سطوح. اما ترکیب همزمان وجه و سطح مج

 

خلاصه

Join SOP یک دنباله از سطوح یا وجوه (faces) را به یک پرایمیتیو واحد متصل می‌کند که ویژگی‌های آن‌ها را به ارث می‌برد.

  • وجوه از انواع مختلف می‌توانند به هم متصل شوند، همین‌طور سطوح.

  • اما ترکیب همزمان وجه و سطح مجاز نیست.

  • سطوح لازم نیست تعداد ردیف‌ها یا ستون‌های یکسانی در سمت اتصال داشته باشند.

  • انواع اسپلاین با ترتیب‌ها و پارامترسازی‌های مختلف ورودی‌های معتبر هستند.

  • در صورت نیاز، Join SOP پرایمیتیوهای ساده‌تر مثل چندضلعی‌ها (polygons) را به بزیه (Bezier) یا NURBS تبدیل می‌کند.

اتصال (Join) با Fillet SOP یا Stitch SOP فرق دارد:

  • Join چند پرایمیتیو را گرفته و بعد از تغییر احتمالی در انتهای آن‌ها، آن‌ها را به یک پرایمیتیو تبدیل می‌کند.

  • Fillet بین هر جفت ورودی یک پرایمیتیو جدید ایجاد می‌کند و به اشکال اصلی دست نمی‌زند.

  • Stitch اشکال اصلی را تغییر می‌دهد اما تعداد پرایمیتیوهای حاصل را عوض نمی‌کند.

PythonIcon.png joinSOP_Class


فهرست مطالب

  1. خلاصه

  2. پارامترها - صفحه

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

  4. کانال‌های Info CHOP
     4.1. کانال‌های مشترک Info برای SOP
     4.2. کانال‌های مشترک Info برای اپراتورها


پارامترها - صفحه (Parameters - Page)

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

  • Blend blend – نحوه اتصال پرایمیتیوها را تعیین می‌کند.

    • در حالت Blend، انتهاها (Ends) جابه‌جا شده و به یک نقطه، ردیف یا ستون مشترک تبدیل می‌شوند.

    • میزان تغییر با Tolerance کنترل می‌شود.

    • اگر Blend خاموش باشد، اشکال اصلی تغییر نمی‌کنند و به‌جای آن، انتهاها با یک فیله (fillet) کمانی به هم وصل می‌شوند.

    • در هر دو حالت، نتیجه یک پرایمیتیو واحد است.

  • Tolerance tolerance – معنای تولرانس بسته به نوع Join متفاوت است:

    • برای Blend: تولرانس پایین → تغییر کمتر شکل.

    • اگر تولرانس < 1 باشد، یک نقطه، گره (knot)، ردیف یا ستون جدید بین دو انتهای نزدیک اضافه می‌شود.

    • تولرانس 0 یعنی اشکال ورودی تغییر نمی‌کنند: وجوه با خط مستقیم و سطوح با یک پچ خطی مسطح وصل می‌شوند.

    • برای حالت غیر Blend: تولرانس اندازه و گردی فیله را مشخص می‌کند. تولرانس 0 → فیله کوتاه و تخت، تولرانس 1 → فیله نوک‌تیز بدون برخورد به خود.

  • Bias bias – فقط روی حالت Blend اثر دارد. موقعیت نقطه/ردیف/ستون مشترک را بین دو انتها تغییر می‌دهد.

    • Bias = 0 → مشترک با انتهای پرایمیتیو دوم.

    • Bias = 1 → مشترک با انتهای پرایمیتیو اول.

    • وقتی Tolerance = 0 باشد، Bias بی‌اثر است.

  • Multiplicity knotmult – تعداد گره‌های درج‌شده در نقطه اتصال را کنترل می‌کند.

    • وقتی فعال باشد، اتصال نوک‌تیز می‌شود.

    • در حالت Blend خاموش هم روی شکل و سفتی فیله اثر می‌گذارد.

    • Multiplicity برای چندضلعی‌ها (polygons) و مش‌ها (meshes) بی‌اثر است.

  • Connect Closest Ends proximity – به‌طور پیش‌فرض دم پرایمیتیو اول به سر پرایمیتیو بعدی وصل می‌شود. اگر فعال باشد، نزدیک‌ترین انتهاها انتخاب می‌شوند. برای سطوح، این تست در جهت U یا V (طبق پارامتر Direction) انجام می‌شود.

  • Direction dir ⊞ – جهت پارامتری اتصال (U یا V) را تعیین می‌کند (فقط برای سطوح).

    • U = ستون‌ها

    • V = ردیف‌ها

    • مثال: اتصال دو سطح در U → سطح حاصل ستون‌های بیشتری خواهد داشت.

  • Join joinop ⊞ – امکان اتصال زیرگروه‌ها یا هر n پرایمیتیو به‌صورت چرخه‌ای.

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

      • Groups → 0-1 2-3 4-5

      • Skipping → 0-2-4 و 1-3-5

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

  • Wrap Last to First loop – اگر فعال باشد، ابتدای اولین پرایمیتیو به انتهای آخرین پرایمیتیو وصل شده و یک سطح یا وجه بسته تشکیل می‌شود.

  • Keep Primitives prim – اگر غیرفعال باشد، پرایمیتیوهای ورودی بعد از اتصال حذف می‌شوند. اگر فعال باشد، حفظ می‌شوند.


ورودی‌های اپراتور (Operator Inputs)

  • Input 0 – هندسه ورودی.


کانال‌های Info CHOP

اطلاعات اضافی مربوط به Join SOP از طریق یک Info CHOP قابل دسترسی است.

کانال‌های مشترک Info برای SOP

  • num_points – تعداد نقاط.

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

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

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

  • last_meta_vbo_update_time – مدت‌زمان صرف‌شده در یک ترد دیگر برای به‌روزرسانی داده‌های متاسطح (مثل متابال‌ها یا NURBS) روی GPU.

کانال‌های مشترک Info برای اپراتورها

  • total_cooks – تعداد دفعات اجرای اپراتور.

  • cook_time – مدت‌زمان آخرین اجرا (میلی‌ثانیه).

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

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

  • cook_start_time – زمان شروع آخرین اجرا (میلی‌ثانیه).

  • cook_end_time – زمان پایان آخرین اجرا (میلی‌ثانیه).

  • cooked_this_frame – اگر اپراتور در همین فریم اجرا شده باشد مقدار ۱ است.

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

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