Facet SOP

خلاصه

Facet SOP به شما امکان می‌دهد میزان نرمی یا زاویه‌دار بودن (faceting) یک شیء مشخص را کنترل کنید. همچنین می‌تواند نقاط یا نرمال‌های سطحی را یکپارچه کند.

Facet SOP درست مانند Divide SOP به‌صورت خط لوله‌ای (pipeline) عمل می‌کند تا هندسه را در مراحل مختلف تغییر دهد. به همین دلیل گزینه Compute Normals دوبار ظاهر می‌شود. برای مثال، می‌توانید نرمال‌های سطحی را قبل از یکتا کردن رأس‌ها (نقاط هر چندضلعی) محاسبه کنید. این کار نتیجه‌ای غیرمعمول ایجاد می‌کند: سایه‌زنی نرم با وجود نقاط یکتا، زیرا نرمال‌ها زمانی محاسبه می‌شوند که نقاط همچنان به‌طور مشترک استفاده می‌شوند.


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

  • Group group: اگر گروه‌های ورودی وجود داشته باشند، وارد کردن نام یک گروه در این قسمت باعث می‌شود SOP فقط روی همان گروه اعمال شود. از الگوها (patterns) مطابق توضیحات در Pattern Matching پشتیبانی می‌کند.

  • Make Normals Unit Length unit: اگر فعال باشد، طول نرمال‌ها به یک واحد نرمال‌سازی می‌شود.

  • Compute Normals prenml: در صورت انتخاب، نرمال‌های سطحی محاسبه می‌شوند. جایی که نقاط بین چندضلعی‌ها مشترک باشند، سایه‌زنی نرم اتفاق می‌افتد، و اگر نقاط یکتا باشند (غیر مشترک)، لبه‌ها زاویه‌دار (faceted) خواهند شد. اگر در این مرحله نرمال‌ها محاسبه شوند، بر اساس هندسه ورودی محاسبه می‌شوند.

  • Unique Points unique: هر رأس یک نقطه یکتا خواهد داشت. نتیجه این است که همه رأس‌ها یکتا می‌شوند و در نتیجه همه لبه‌ها زاویه‌دار می‌شوند، بدون سایه‌زنی نرم.

  • Consolidate cons – ⊞: این گزینه تکرار نقاط نزدیک به هم را حذف می‌کند و آن‌ها را با یکدیگر ادغام می‌کند تا مجموعه‌ای کوچک‌تر از نقاط مشترک ساخته شود. این کار برای تمیز کردن لبه‌هایی مفید است که ممکن است بین چندضلعی‌های مجاور که ادغام شده‌اند ظاهر شوند.

    • No Consolidate none: هیچ ادغامی انجام نمی‌شود.

    • Consolidate Points Slow points

    • Consolidate Points Fast fpoints

    • Consolidate Normals Slow normals

    • Consolidate Normals Fast fnormals

  • Distance dist: فاصله‌ای که در آن نقاط و نرمال‌ها برای ادغام یا میانگین‌گیری در نظر گرفته می‌شوند، بسته به گزینه انتخاب‌شده در Consolidate. معمولاً باید از مقادیر بسیار کوچک (مثل 0.01) استفاده شود. اگر مقدار 0.0 باشد، فقط نقاط دقیقاً هم‌مکان (منطبق) برای ادغام در نظر گرفته می‌شوند.

  • Remove Inline Points inline: نقاطی را که دقیقاً در خط بین نقاط مجاور قرار دارند حذف می‌کند.

  • Distance inlinedist: آستانه فاصله برای حذف نقاط خطی، وقتی گزینه بالا فعال باشد.

  • Orient Polygons orientpolys: همه چندضلعی‌ها را طوری جهت‌دهی می‌کند که یک جهت گردش (winding direction) یکسان داشته باشند.

  • Cusp Polygons cusp: اغلب لازم است برخی چندضلعی‌ها نرم سایه‌زنی شوند و برخی زاویه‌دار بمانند. معمولاً چندضلعی‌هایی که در زوایای کم به هم می‌رسند باید نرم

    • Cusp Angle angle – زاویه Cusping اجازه می‌دهد زاویه آستانه‌ای را مشخص کنید که لبه‌ها در آن حالت Facet (زاویه‌دار) پیدا کنند. مقدار معمول و مناسب معمولاً ۲۰ درجه است.

    • Remove Degenerate remove – گاهی (نه زیاد) هندسه شما ممکن است خراب شود؛ به‌عنوان مثال نقاطی وجود دارند که به هیچ چیز متصل نیستند یا پرمی‌تیوهایی که معنایی ندارند. این گزینه این موارد را بررسی کرده و حذف می‌کند.

    • Compute Normals postnml – امکان محاسبه مجدد نرمال‌ها پس از مراحل Consolidate یا Cusping را فراهم می‌کند. اگر هر یک از گزینه‌های Cusp یا Consolidate فعال باشد، این گزینه را انتخاب کنید.


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

    • Input 0: – ورودی اصلی هندسه


    کانال‌های Info CHOP

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

    کانال‌های مشترک اطلاعات SOP:

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

    • num_prims – تعداد پرمی‌تیوها در این SOP

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

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

    • last_meta_vbo_update_time – زمان صرف‌شده در یک thread دیگر برای به‌روزرسانی داده‌های هندسه سطح متا (مانند metaball یا NURBS) روی GPU از داده‌های CPU SOP. این زمان نیز جزو زمان فریم معمولی نیست.

    کانال‌های مشترک اطلاعات اپراتور:

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

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

    • cook_frame – شماره فریم زمانی که اپراتور آخرین بار اجرا شده نسبت به timeline کامپوننت

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

    • cook_start_time – زمان شروع اجرای اپراتور در همان فریم به میلی‌ثانیه

    • cook_end_time – زمان پایان اجرای اپراتور در همان فریم به میلی‌ثانیه

    • cooked_this_frame – مقدار ۱ اگر اپراتور در این فریم اجرا شده باشد

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

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