خلاصه

Capture SOP برای وزن‌دهی به نقاط در یک هندسه به‌منظور گرفتن (Capture) نواحی استفاده می‌شود. طرح وزن‌دهی در بخش بعدی یعنی Capture Region SOP توضیح داده شده است.

وزن‌ها و نواحی‌ای که با آن‌ها مرتبط هستند، به‌عنوان ویژگی‌های نقطه‌ای (Point Attributes) و جزئیات (Detail Attributes) در زنجیره SOP منتقل می‌شوند.

این SOP می‌تواند یک ورودی دوم اختیاری هم بگیرد تا نواحی اضافه‌ای برای Capture در فرآیند استفاده شوند. هر ناحیه‌ای که در ورودی دوم وجود داشته باشد، بعد از نواحی Capture که در سلسله‌مراتب (Hierarchy) شیء مشخص شده توسط پارامتر Hierarchy هستند پردازش می‌شود. حتی می‌توانید فقط ورودی دوم را بدهید و هیچ «شیء والد» (Parent Object) تعیین نکنید.


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

  • Group (group): گروه نقاط ورودی اول (input0) که عملیات روی آن‌ها انجام می‌شود.

  • Hierarchy (rootbone): یک سلسله‌مراتب شیء پیمایش می‌شود تا نواحی Capture برای وزن‌دهی پیدا شوند. این پارامتر ابتدای سلسله‌مراتب پیمایش را مشخص می‌کند.

  • Weight From (weightfrom) ⊞: مشخص می‌کند وزن از کجا گرفته شود.

    • Surface (surface) (پیش‌فرض): از سطح برای محاسبه وزن نقطه (یا CV در NURBS) استفاده می‌کند. این برای NURBS مفید است چون ممکن است CVها از سطح دور باشند. هر CV بر اساس موقعیت سطح نسبت به یک Capture Region وزن می‌گیرد. این کار با محاسبه «بیشترین نقطه تأثیر» روی سطح NURBS انجام می‌شود.

    • Points (cv): موقعیت نقطه درون ناحیه برای وزن‌دهی استفاده می‌شود.

  • Capture Frame (captframe): شماره فریمی که محاسبات Capture در آن انجام می‌شود. هر بار که تایم‌لاین به این فریم می‌رسد، هندسه دوباره Capture می‌شود. معمولاً این فریم را بیرون از بازه انیمیشن تنظیم می‌کنند (مثلاً -1).
    ⚠️ توجه: وقتی یک فایل .toe بارگذاری می‌شود، همه نواحی Capture در فریم Capture محاسبه می‌شوند. بنابراین باید کلیدفریم‌ها در این فریم درست تنظیم شده باشند، وگرنه وزن‌دهی هندسه در بارگذاری بعدی اشتباه خواهد بود.

  • Point Coloring (color) ⊞: هر نقطه را بر اساس Capture Region و وزنش رنگ می‌کند.

    • نقاط رنگشان را از نواحی Capture می‌گیرند. مثلاً اگر نقطه‌ای هم در ناحیه آبی و هم زرد باشد، سبز می‌شود (بیشتر متمایل به آبی یا زرد بسته به وزن غالب).

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

    • اگر نقطه‌ای در هیچ ناحیه‌ای نیفتد، قرمز روشن می‌شود.

    • Default Source Color (coldefault)

    • Color by Capture Region (colregion)

  • Override File (captfile): نام فایل override (با پسوند .ocapt). این فایل بعد از وزن‌دهی اصلی TouchDesigner بارگذاری می‌شود. هر خط شامل شماره نقطه، ناحیه (مسیر و شماره پرایمیتیو) و وزن است.

    • فرمت:

      0 /obj/chain_bone1/cregion 0 0.0
      0 /obj/chain_bone2/cregion 0 3.757989
      0 /obj/chain_bone3/cregion 0 1.757989

      این یعنی نقطه 0 به سه ناحیه وزن گرفته (در عمل دوتا، چون وزن اول صفر است).

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

    • وزن می‌تواند هر عددی باشد و میزان تأثیر ناحیه روی نقطه را مشخص می‌کند. بازه وزن‌ها توسط پارامتر Inner/Outer Weight در Capture Region SOP تعیین می‌شود.

    • راحت‌ترین راه ساخت Override File استفاده از دکمه Save Override File است.


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

  • Save File (savefile): فایل کاری برای ذخیره وزن نقاط (همه یا فقط تعدادی).

  • Increment Save File (autoincr): نام فایل را قبل از ذخیره افزایش می‌دهد. خاموش کردنش می‌تواند باعث بازنویسی فایل قبلی شود.

  • Save All Data to File (savecaptfile): ذخیره وزن‌دهی همه نقاط.

  • Save Selected Points to File (savesel): فقط نقاط انتخاب‌شده در Viewport ذخیره می‌شوند. (باید این SOP در حال ویرایش در Viewport باشد).


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

  • Input 0: هندسه‌ای که قرار است Capture شود.

  • Input 1: نواحی Capture اضافی (اختیاری).


Info CHOP Channels

اطلاعات اضافه Capture SOP را می‌توان با Info CHOP گرفت.

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

  • num_points → تعداد نقاط

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

  • num_particles → تعداد ذرات

  • last_vbo_update_time → مدت زمان آپدیت داده‌های هندسی روی GPU

  • last_meta_vbo_update_time → مدت زمان آپدیت داده‌های متاسطح (مثل metaball یا NURBS) روی GPU

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

  • 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 → تعداد خطاها