خلاصه
Node یا Lattice SOP به شما اجازه می‌دهد تغییرات متحرک (Animated Deformation) روی هندسه ورودی خود ایجاد کنید، با دستکاری شبکه‌ها یا یک جعبه subdivide شده که هندسه منبع ورودی را احاطه کرده است.

تغییر شکل یک شی با حرکت چند شبکه بسیار ساده‌تر از آن است که بخواهید هر نقطه‌ی شی را به صورت جداگانه انیمیت کنید.

این SOP ظاهر ساده‌ای دارد و دکمه‌های کمی دارد، اما مهم است که نحوه عملکرد آن را درک کنید:

  • ورودی اول با نام Geometry to Deform: هندسه‌ای که می‌خواهید تغییر دهید.

  • ورودی دوم با نام Rest Geometry: باید یک شبکه با فاصله مساوی باشد که به‌طور کامل هندسه‌ای را که می‌خواهید تغییر دهید احاطه کند.

  • ورودی سوم با نام Deformed Geometry: نسخه‌ای از شبکه اولیه است که به‌طور خاص تغییر داده شده است، یا با استفاده از کانال‌های انیمیشن، کشیدن نقاط در Model Editor، یا عبور از Spring SOP که با شبیه‌سازی نیروهای فیزیکی آن را منحرف می‌کند.

Lattice تغییر شکل را بر اساس اختلاف بین Rest Geometry و Deformed Geometry محاسبه می‌کند و آن را به هندسه ورودی اعمال می‌کند. خروجی SOP، هندسه تغییر شکل یافته‌ی ورودی است. اگر Deformed Geometry انیمیت شود، خروجی نیز در هر فریم خم، پیچ و کشیده خواهد شد.


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

  • Group (گروه) – group
    زیرمجموعه‌ای از نقاط در ورودی اول که باید تغییر شکل داده شوند. الگوها (Patterns) را می‌پذیرد، همان‌طور که در Pattern Matching توضیح داده شده.

  • Deform Type (نوع تغییر شکل) – deformtype
    مشخص می‌کند تغییر شکل باید با استفاده از شبکه منظم (Lattice) انجام شود یا با ابر نقاط دلخواه (Arbitrary Point Cloud).

    • Lattice (lattice): تغییر شکل با شبکه منظم.
      هم Rest Geometry و هم Deformed Geometry باید شبکه باشند و ترتیب نقاط مشخصی داشته باشند. این ترتیب توسط Box SOP هنگام فعال بودن گزینه Use Divisions تولید می‌شود. تعداد تقسیم‌بندی‌ها باید با هندسه ورودی مطابقت داشته باشد. در غیر این صورت خطا داده می‌شود.

    • Points (points): تغییر شکل با ابر نقاط دلخواه.
      هم Rest Geometry و هم Deformed Geometry باید همان ابر نقاط را داشته باشند. نقاطی که در شعاع مشخص از نقاط Rest Geometry نباشند، تغییر شکل داده نمی‌شوند. میزان تغییر شکل اعمال شده به یک نقطه بر اساس میانگین وزن‌دار اختلاف بین Rest Geometry و Deformed Geometry است. تابع وزن از Metaball Kernel مشخص شده گرفته می‌شود، بنابراین رفتار شبیه اعمال یک متابال مغناطیسی روی هر نقطه از Rest Geometry است.

  • Divisions (تقسیم‌بندی‌ها) – divs
    باید با تعداد تقسیم‌بندی‌های شبکه منطبق باشد.

    • X – divsx

    • Y – divsy

    • Z – divsz

  • Kernel Function (تابع کرنل) – kernel
    تغییر شکل با مشخص کردن تابع کرنل و نقاط باعث آسان‌تر شدن تغییر شکل ابر نقاط دلخواه می‌شود، زیرا توپولوژی شبکه مانند یک متابال رفتار می‌کند نه یک شبکه ثابت. تابع کرنل تعیین می‌کند کدام متا کرنل برای تعیین تأثیر یک نقطه استفاده شود.

    • Wyvill model – wyvill

    • Elendt model – elendt

    • Blinn model – blinn

    • Links model – links

  • Radius (شعاع) – radius
    اندازه مناطق تحت تأثیر نقاط.


ورودی‌های Operator

  • Input 0: Geometry to deform

  • Input 1: Rest Geometry

  • Input 2: Deformed Geometry


کانال‌های Info CHOP

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

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

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

  • num_prims – تعداد primitiveها در این SOP

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

  • last_vbo_update_time – زمان صرف‌شده در یک thread دیگر برای به‌روزرسانی داده‌های هندسی روی GPU از داده‌های CPU. این زمان بخشی از زمان فریم معمولی نیست.

  • last_meta_vbo_update_time – زمان صرف‌شده در یک thread دیگر برای به‌روزرسانی داده‌های هندسی سطح متا روی GPU. این زمان هم بخشی از زمان فریم معمولی نیست.

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

  • total_cooks – تعداد دفعاتی که اپراتور از زمان شروع پردازش اجرا شده است

  • cook_time – مدت زمان آخرین cook بر حسب میلی‌ثانیه

  • cook_frame – شماره فریمی که آخرین بار پردازش شد

  • cook_abs_frame – شماره فریمی که آخرین بار در زمان مطلق پردازش شد

  • cook_start_time – زمان شروع پردازش در فریمی که پردازش شد (میلی‌ثانیه)

  • cook_end_time – زمان پایان پردازش در فریمی که پردازش شد (میلی‌ثانیه)

  • cooked_this_frame – اگر در همین فریم پردازش شده باشد، ۱

  • warnings – تعداد هشدارها در این اپراتور

  • errors – تعداد خطاها در این اپراتور