Engine COMP

Engine COMP

خلاصه

Engine COMP یک فایل .tox (کامپوننت) را در یک پردازش جداگانه اجرا می‌کند. این عمل با استفاده از TouchEngine انجام می‌شود تا هم مدیریت این پردازش‌ها و هم تبادل داده میان کامپوننت بارگذاری‌شده و پروژه اصلی را بر عهده بگیرد.


ورودی‌ها و خروجی‌ها

ورودی‌ها و خروجی‌های سطح بالای کامپوننت انتخاب‌شده به عنوان ورودی و خروجی در Engine COMP نمایش داده می‌شوند. تنها انواع TOP، CHOP و DAT به عنوان ورودی و خروجی پشتیبانی می‌شوند.


پارامترهای سفارشی

هر پارامتر سفارشی که در سطح بالای کامپوننت تعریف شده باشد به پارامترهای Engine COMP افزوده می‌شود.
اما پارامترهای سفارشی که به نودهای دیگر شبکه (مثل TOP، CHOP یا DAT) اشاره دارند، پشتیبانی نمی‌شوند. در این حالت باید آن نودها را از طریق ورودی‌ها متصل کنید.

نکته: پارامترها فقط در یک جهت کار می‌کنند؛ یعنی شما نمی‌توانید از درون فایل .tox بارگذاری‌شده پارامتری را تغییر دهید.


مسیرهای فایل خارجی

به‌طور پیش‌فرض، مسیرهای نسبی (در OPها یا اسکریپت‌ها) داخل کامپوننت بارگذاری‌شده، نسبت به موقعیت فایل .tox تفسیر می‌شوند.
این رفتار را می‌توان با پارامتر Asset Paths تغییر داد.
پارامترهای سفارشی سطح بالای کامپوننت (که روی Engine COMP ظاهر می‌شوند) همیشه نسبت به پروژه اصلی در نظر گرفته می‌شوند.


پایش وضعیت Engine

پایش وضعیت و کارایی Engine COMP اهمیت دارد.
به‌طور پیش‌فرض، یک Info DAT به Engine COMP متصل است که مسیر فایل و شناسه پردازش (PID) را نشان می‌دهد.
همچنین یک Info CHOP متصل وجود دارد که سه نوع کانال مانیتورینگ ارائه می‌دهد:

  • TouchEngine Status → وضعیت بارگذاری / اجرا / خطا

  • TouchEngine Perform → آمار کارایی موتور

  • Initialize/Start → اطلاعات مربوط به آماده‌سازی، اجرا و توقف کامپوننت بارگذاری‌شده


کنترل وضعیت Engine

پردازش Engine توسط TouchDesigner راه‌اندازی شده و فایل .tox را به‌طور خودکار اجرا می‌کند.
با این حال، شما می‌توانید با پارامترهای Unload و Reload مدیریت بیشتری بر زمان و حافظه داشته باشید.
در صفحه Advanced، پارامترهای Launch Engine Process و Quit Engine Process امکان توقف/راه‌اندازی مجدد کل پردازش Engine را می‌دهند.


چرخه عمر کامپوننت

کامپوننت‌ها در TouchEngine داخل یک نمونه‌ی در حال اجرا بارگذاری می‌شوند.
به همین دلیل:

  • متدهای onStart() و onExit() در Execute DAT هیچ‌وقت اجرا نمی‌شوند.

  • متد onCreate() هنگام بارگذاری اجرا می‌شود و بهترین مکان برای تنظیمات اولیه‌ای است که معمولاً در onStart() انجام می‌دادید.


زمان در TouchEngine

وقتی Engine COMP یک کامپوننت را اجرا می‌کند، زمان در TouchEngine از ۰ شروع می‌شود.
این زمان یا همگام با Engine COMP پیش می‌رود یا بر اساس ساعت داخلی TouchEngine (بسته به تنظیمات پارامتر Clock).

برای هماهنگ‌سازی نرخ پردازش، از input buffer و output buffer استفاده می‌شود.
این بافرها را می‌توان در صفحه Tune تنظیم کرد تا از افت فریم جلوگیری شود یا عملکرد صوتی/تصویری روان‌تر گردد.


نسخه‌های TouchEngine

TouchEngine به همراه TouchDesigner نصب می‌شود و نسخه‌ی فعال آن برای بارگذاری .tox استفاده خواهد شد.
اگر بخواهید از نسخه‌ی دیگری استفاده کنید، می‌توانید:

  • متغیر محیطی TOUCHENGINE_APP_PATH را روی مسیر نصب TouchDesigner تنظیم کنید.

  • یا پوشه‌ای به نام TouchEngine در کنار فایل .tox ایجاد کنید و TouchDesigner را در آن نصب کنید.

  • یا یک لینک به نام TouchEngine بسازید که به محل نصب یا اپلیکیشن TouchDesigner اشاره کند.


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

  • Engine Page → انتخاب فایل .tox، مدیریت بارگذاری/خالی‌سازی، مسیرها و Callbackها

  • Tune Page → کنترل نرخ فریم، بافر ورودی/خروجی، تایم‌اوت و همگام‌سازی

  • InitStart Page → مدیریت Pre-roll، آماده‌سازی، شروع، توقف و رفتار هنگام اتمام

  • Advanced Page → رفتار هنگام ساخت Engine COMP، راه‌اندازی یا توقف کل موتور

  • Extensions Page → مدیریت افزونه‌های پایتون و تعریف توابع سفارشی

  • Common Page → تنظیمات کلون، مسیر فایل‌های خارجی، بارگذاری بر اساس نیاز


Info CHOP Channels

اطلاعات اضافی مربوط به Engine COMP از طریق یک Info CHOP در دسترس است.
از جمله:

  • تعداد فریم‌های موجود در input/output buffer

  • وضعیت آماده‌سازی، اجرا، توقف یا خطا

  • میزان حافظه GPU/CPU مصرف‌شده

  • نرخ فریم موتور (FPS) و مدت زمان پردازش هر فریم

  • تعداد فریم‌های افتاده یا جاافتاده

  • تعداد نودهای فعال، غیرفعال و کل نودها

  • تایمرها و مدت زمان اجرای کامپوننت


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

  • num_children → تعداد زیرکامپوننت‌ها

  • total_cooks → تعداد دفعات cook شدن از شروع اجرا

  • cook_time → مدت cook آخر (میلی‌ثانیه)

  • cook_frame → شماره فریم هنگام cook شدن

  • warnings / errors → تعداد هشدارها یا خطاها

دیدگاهتان را بنویسید