خلاصه
Join SOP یک دنباله از سطوح یا وجوه (faces) را به یک پرایمیتیو واحد متصل میکند که ویژگیهای آنها را به ارث میبرد.
-
وجوه از انواع مختلف میتوانند به هم متصل شوند، همینطور سطوح.
-
اما ترکیب همزمان وجه و سطح مجاز نیست.
-
سطوح لازم نیست تعداد ردیفها یا ستونهای یکسانی در سمت اتصال داشته باشند.
-
انواع اسپلاین با ترتیبها و پارامترسازیهای مختلف ورودیهای معتبر هستند.
-
در صورت نیاز، Join SOP پرایمیتیوهای سادهتر مثل چندضلعیها (polygons) را به بزیه (Bezier) یا NURBS تبدیل میکند.
اتصال (Join) با Fillet SOP یا Stitch SOP فرق دارد:
-
Join چند پرایمیتیو را گرفته و بعد از تغییر احتمالی در انتهای آنها، آنها را به یک پرایمیتیو تبدیل میکند.
-
Fillet بین هر جفت ورودی یک پرایمیتیو جدید ایجاد میکند و به اشکال اصلی دست نمیزند.
-
Stitch اشکال اصلی را تغییر میدهد اما تعداد پرایمیتیوهای حاصل را عوض نمیکند.
PythonIcon.png joinSOP_Class
فهرست مطالب
-
خلاصه
-
پارامترها – صفحه
-
ورودیهای اپراتور
-
کانالهای 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 – تعداد خطاها (اگر وجود داشته باشد).
