Circle SOP قوس‌ها، دایره‌ها و بیضی‌های باز یا بسته ایجاد می‌کند.

اگر دو دایره‌ی NURBS که غیر عقلانی (non-rational) باشند (یعنی شعاع X و Y آن‌ها برابر نباشد) با هم Skin شوند، ممکن است تعداد ایزوپارم‌ها (isoparms) بیش از حد انتظار تولید شود. دلیل این موضوع این است که دایره‌های NURBS غیرعقلانی گره‌های خود را بر اساس طول کمان پارامترسازی می‌کنند، و Skin SOP باید تعداد کل گره‌ها را بین دو دایره یکسان‌سازی کند قبل از اینکه عملیات Skin انجام شود.

برای رفع این مشکل، می‌توانید از Refine SOP استفاده کنید و سطح حاصل را Unrefine کنید، یا بهتر از آن – پیش از Unrefine کردن، از یک دایره‌ی مشابه شروع کنید و با استفاده از Primitive SOP یا Transform SOP نسخه دوم آن را تغییر شکل دهید و سپس عمل Skin را انجام دهید.


پارامترها

Primitive Type (نوع اولیه)

  • بسته به نوع اولیه انتخاب‌شده، برخی گزینه‌های SOP ممکن است اعمال نشوند. استفاده از نوع «Primitive» هنگام استفاده از instancing توصیه نمی‌شود.

  • Polygon (poly) – چندضلعی

  • NURBS Curve (nurbs) – منحنی نربز

  • Bezier Curve (bezier) – منحنی بزیه

Orientation (جهت‌گیری) – صفحه‌ای که دایره روی آن قرار دارد:

  • XY Plane

  • YZ Plane

  • ZX Plane

Modify Bounds (تغییر مرزها) – تنها زمانی فعال است که ورودی به Circle SOP متصل باشد و برای تعیین مرزهای کره استفاده شود.

Radius (شعاع) – شعاع دایره در جهت X و Y.

  • X (radx)

  • Y (rady)

Center (مرکز) – مرکز دایره در X ،Y و Z.

  • X (tx)

  • Y (ty)

  • Z (tz)

Reverse Anchors (معکوس کردن انکرها) – جهت نقاط انکر را برعکس می‌کند.

Anchor U , V – نقطه‌ای که نسبت به آن هندسه جابجا، مقیاس و چرخش داده می‌شود.

Order (مرتبه) – اگر منحنی اسپلاین انتخاب شود، با این ترتیب ساخته می‌شود.

Divisions (بخش‌ها) – تعداد اضلاع (نقاط +1) برای تعریف دایره. هرچه Divisions بیشتر باشد، دایره صاف‌تر دیده می‌شود.

  • 3 تقسیم = مثلث

  • 4 تقسیم = لوزی

  • 5 تقسیم = پنج‌ضلعی


  • برای قوس‌های باز، تعداد نقاط = Divisions + 1
    برای قوس‌های بسته، تعداد نقاط = Divisions + 2

Arc Type (نوع قوس) – نحوه ترسیم دایره (برای چندضلعی‌ها و اسپلاین‌های ناقص):

  • Closed (بسته) – یک منحنی بسته

  • Open Arc (قوس باز) – بخشی از منحنی باز

  • Closed Arc – قوس باز با اتصال به مرکز، شبیه برش کیک

  • Sliced Arc – مشابه Closed Arc اما همه نقاط به مرکز متصل می‌شوند

Arc Angles (زاویه‌های قوس) – زاویه شروع و پایان قوس.

  • اگر start=0 و end=360 باشد → یک دایره کامل

  • می‌تواند بیش از 360 درجه باشد و چند دور ایجاد کند.

Imperfect (ناقص/تقریب) – تنها برای دایره‌های Bezier و NURBS.

  • اگر فعال باشد → دایره‌ها به صورت تقریبی (non-rational)

  • اگر غیرفعال باشد → دایره‌های کامل (rational)

Texture Coordinates (مختصات بافت)

  • Off – بدون مختصات تکسچر

  • Face – مختصات پیش‌فرض تکسچر ساخته می‌شوند (برای تغییر آن باید از Texture SOP استفاده کنید).

Compute Normals (محاسبه نرمال‌ها)

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


تعداد ورودی اپراتور
  • Input 0: 

کانال‌های CHOP اطلاعات (Info CHOP Channels)

اطلاعات اضافی برای Circle SOP را می‌توان از طریق یک Info CHOP دریافت کرد.


کانال‌های مشترک اطلاعات SOP (Common SOP Info Channels)

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

  • num_prims → تعداد پرایمیتیوها (primitives) در این SOP

  • num_particles → تعداد ذرات در این SOP

  • last_vbo_update_time → مدت‌زمانی که در یک ترد دیگر صرف به‌روزرسانی داده‌های هندسه روی GPU از داده‌های CPU مربوط به SOP شده است. (چون بخشی از یک ترد دیگر است، این زمان جزو زمان معمولی فریم محسوب نمی‌شود.)

  • last_meta_vbo_update_time → مدت‌زمانی که در یک ترد دیگر صرف به‌روزرسانی داده‌های هندسه‌ی متا (مثل metaballs یا nurbs) روی GPU از داده‌های CPU مربوط به SOP شده است. (این هم جزو زمان فریم معمولی حساب نمی‌شود.)


کانال‌های مشترک اطلاعات اپراتور (Common Operator Info Channels)

  • total_cooks → تعداد دفعاتی که اپراتور از شروع پردازش تاکنون Cook شده است

  • cook_time → مدت Cook آخر بر حسب میلی‌ثانیه

  • cook_frame → شماره فریمی که اپراتور آخرین بار نسبت به تایم‌لاین کامپوننت Cook شده است

  • cook_abs_frame → شماره فریمی که اپراتور آخرین بار نسبت به زمان مطلق Cook شده است

  • cook_start_time → زمانی بر حسب میلی‌ثانیه که اپراتور Cook کردن را در آن فریم آغاز کرده است

  • cook_end_time → زمانی بر حسب میلی‌ثانیه که اپراتور Cook کردن را در آن فریم به پایان رسانده است

  • cooked_this_frame → اگر مقدار = 1 باشد یعنی اپراتور در همین فریم Cook شده است

  • warnings → تعداد هشدارهای موجود در این اپراتور (در صورت وجود)

  • errors → تعداد خطاهای موجود در این اپراتور (در صورت وجود)