خلاصه

Cache SOP هندسه‌ی ورودی خودش رو در یک کش (Cache) ذخیره می‌کنه تا دسترسی تصادفی و سریع به چندین SOP امکان‌پذیر بشه.
از این نود باید زمانی استفاده کرد که زمان Cook زنجیره‌ای از SOPها طولانی باشه و نیاز به پخش سریع‌تر وجود داشته باشه.

وقتی که هندسه‌ها کش شدند، می‌شه به هر ترتیبی به اون‌ها دسترسی داشت.
این کار نسبت به یک Flipbook دوبعدی یا Scene Render مزیت داره، چون هندسه همچنان کاملاً سه‌بعدی باقی می‌مونه.
نتیجه‌اش اینه که می‌تونی انیمیشن‌های سنگین و کند رو در زمان واقعی (Real-Time) اسکراب کنی، چون همه‌چیز از قبل محاسبه و در کش ذخیره شده.


پارامترها – صفحه اصلی

  • Active (active): وقتی روشن باشه، این نود در هر Cook یک Snapshot از هندسه‌ی ورودی می‌گیره و کش می‌کنه.

  • Pre-Fill (prefill): این گزینه به اندازه‌ی Cache Size بار Cook می‌کنه تا کش پر بشه.

    • اگر مقدارش > 0 باشه → کش پر می‌شه.

    • اگر در حین Playback روی > 0 تنظیم بشه → بلافاصله پر می‌شه.

    • اگر روی > 0 تنظیم و فایل ذخیره بشه → دفعه‌ی بعد که فایل باز بشه، کش از قبل پر خواهد بود.

    • وقتی مقدارش > 0 باشه، نود طوری رفتار می‌کنه که انگار پارامتر On خاموشه.

    • اگر مقدارش رو 0 کنی و دوباره > 0 بذاری → داده‌های قبلی پاک می‌شن و دوباره Pre-Fill انجام می‌شه.

    • (برای جزئیات بیشتر به مقاله‌ی Pre-Filling مراجعه کن.)

  • Cache Size (cachesize): اندازه‌ی کش (تعداد فریم‌هایی که ذخیره می‌کنه).

  • Step Size (step): تعداد فریم‌هایی که نود Cook می‌کنه قبل از اینکه هندسه جدید رو کش کنه.

    • وقتی 1 باشه → هر Cook ذخیره می‌شه.

    • وقتی 2 باشه → هر دو Cook یکی ذخیره می‌شه.

    • و به همین ترتیب.

  • Output Index (outputindex): مشخص می‌کنه کدوم هندسه‌ی کش شده خروجی بده.

    • 0 = آخرین هندسه‌ی کش شده.

    • مقادیر معتبر بین 0 تا (cachesize – 1) هستن.

  • Cache Points Only (cachepoints): فقط توپولوژی اولین هندسه‌ی کش شده رو ذخیره می‌کنه و برای بقیه فقط داده‌های نقاط ذخیره می‌شن.

  • Blend Position (blendpos): نقاط بین هندسه‌ها رو به صورت میان‌یابی (Interpolation) جابجا می‌کنه.

  • Reset (reset): وقتی روشن باشه، تمام هندسه‌های کش شده پاک می‌شن.

  • Reset Pulse (resetpulse): بلافاصله همه‌ی هندسه‌های کش شده رو پاک می‌کنه.


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

  • Input 0: هندسه‌ای که باید کش بشه.


کانال‌های Info CHOP

اطلاعات اضافه برای Cache SOP از طریق Info CHOP قابل دسترسی هست.

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

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

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

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

  • last_vbo_update_time: مدت زمانی که در یک ترد دیگر صرف آپدیت داده‌های هندسی روی GPU از داده‌های CPU این SOP شده (جزو زمان فریم محسوب نمی‌شه).

  • last_meta_vbo_update_time: مدت زمانی که در یک ترد دیگر صرف آپدیت داده‌های متا (مثل Metaball یا NURBS) روی GPU از داده‌های CPU این SOP شده (جزو زمان فریم محسوب نمی‌شه).

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

  • total_cooks: تعداد دفعات Cook شدن این نود از شروع اجرا.

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

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

  • cook_abs_frame: شماره‌ی فریم مطلق آخرین Cook.

  • cook_start_time: زمان شروع Cook در میلی‌ثانیه در فریمی که Cook شد.

  • cook_end_time: زمان پایان Cook در میلی‌ثانیه در همون فریم.

  • cooked_this_frame: اگر در همین فریم Cook شده باشه → مقدار 1.

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

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


📌 خلاصه: Cache SOP برای ذخیره‌سازی هندسه در یک بافر استفاده می‌شه تا بتونی انیمیشن‌های سنگین رو سریع‌تر پخش یا اسکراب کنی.