خلاصه (Summary)

Project SOP برای ایجاد منحنی‌ها روی سطوح (Trim یا Profile Curves) استفاده می‌شود. این عمل شبیه به انداختن سایه دوبعدی یک جسم سه‌بعدی روی یک سطح است.

دو روش برای پروجکت کردن وجود دارد:

  1. Along a Vector → پروجکشن در امتداد یک بردار.

  2. Parametric Mapping → نگاشت مستقیم چهره روی فضای پارامتری سطح.

🔹 معمولاً بعد از Project SOP نیاز به یکی از این SOPها دارید:

  • Trim SOP → برای ایجاد سوراخ در سطح پروجکت‌شده.

  • Bridge SOP → برای اتصال یک منحنی پروفایل به منحنی دیگر.

  • Profile SOP → برای استخراج یا بازنگاشت منحنی روی سطح.

نکته: اگر پروفایل تولید شد ولی در ویوپورت دیده نشد، همچنان وجود دارد. می‌توان با استفاده از middle-mouse click روی SOP اطلاعات پروفایل را مشاهده کرد.


عملیات اضافی برای منحنی‌های پروفایل (Additional Operations)

  • حذف پروفایل: با استفاده از Delete SOP و شماره پروفایل (مثال: ‎1.4 → پروفایل پنجم در پرایمیتیو دوم).

  • گروه‌بندی: با Group SOP و نوشتن شماره پروفایل‌ها.

  • تبدیل‌های پارامتریک: با Primitive SOP می‌توان پروفایل‌ها را باز، بسته، معکوس یا جابجا کرد.

⚠️ در Primitive SOP فقط امکان چرخش حول محور Z وجود دارد (چون پروفایل‌ها در فضای دوبعدی U/V تعریف می‌شوند).


پارامترها (Parameters)

🔹 Page

  • Face Group (facegroup): گروه فیس‌هایی که باید روی سطوح پروجکت شوند.

  • Surface Group (surfgroup): گروه سطوحی که پروجکشن روی آن‌ها انجام می‌شود.

  • Cycle Type (cycle):

    • All in Sequence (allseq): همه فیس‌ها به‌ترتیب کنار هم نگاشت می‌شوند.

    • All Overlapping (allover): همه فیس‌ها روی هم افتاده پروجکت می‌شوند.

    • One per Surface (oneeach): هر فیس روی یک سطح پروجکت می‌شود.

    • Cycled (cycled): مشابه One per Surface اما فیس‌ها دوباره از اول شروع می‌شوند.


🔹 Method Page

  • Method (method):

    • Along Vector: پروجکشن در امتداد یک بردار.

    • Parametric: نگاشت مستقیم مختصات فیس به دامنه پارامتری سطح.

  • Axis (axis):

    • X, Y, Z → پروجکشن در امتداد محورهای اصلی.

    • Face Normal: پروجکشن در امتداد نرمال هر فیس.

    • Minimum Distance: پروجکشن در کوتاه‌ترین فاصله به سطح (دقیق‌تر).

    • User Defined: تعریف دستی بردار (X,Y,Z).

  • Vector (vector1,2,3): مؤلفه‌های بردار پروجکشن.

  • Side (projside):

    • Closest: پروجکشن به نزدیک‌ترین سمت سطح.

    • Farthest: پروجکشن به دورترین سمت سطح.

  • Divisions per Span (sdivs): تعداد نقاط محاسبه‌شده روی فیس بین دو CV متوالی.

  • Ray Tolerance (rtolerance): دقت تقاطع پرتو با سطح.

  • Fit Tolerance (ftolerance): دقت فیت دوبعدی (معمولاً < ‎0.01).

  • Max UV Gap (%): حداکثر فاصله UV برای یکی کردن پروفایل‌ها.

  • Order (order): ترتیب اسپیلاین منحنی خروجی (Bezier یا NURBS).

  • Preserve Sharp Corners (csharp): حفظ گوشه‌های تیز در منحنی پروجکشن.

  • Super Accurate Projection (accurate): الگوریتم بسیار دقیق (اما کندتر) برای تقاطع.

  • U from / V from: انتخاب مؤلفه‌های X, Y, Z برای نگاشت به U و V.

  • Map Profile to Range (userange): نگاشت پروفایل به بازه دامنه سطح (به‌طور پیش‌فرض روشن).

  • U Range (urange): بازه U برای نگاشت پروفایل.

  • V Range (vrange): بازه V برای نگاشت پروفایل.

  • Mapping Type (maptype):

    • Uniform: نگاشت ساده بدون توجه به پارامترایزیشن.

    • Chord Length: نگاشت دقیق‌تر بر اساس پارامترایزیشن سطح.


نکات (Tips)

  • NURBS Scalp Patch برای مو:
    می‌توان روی یک سر NURBS، خط رویش مو را با پروجکت کردن منحنی به سطح ایجاد کرد. سپس با Trim SOP آن قسمت را برید و به‌عنوان پایه مو استفاده کرد.


مثال (Example)

  1. ایجاد Circle SOP (نوع: NURBS، شعاع: 0.3).

  2. ایجاد Tube SOP (نوع: NURBS).

  3. اتصال هر دو به Project SOP (Circle → Input0، Tube → Input1).

  4. افزودن Trim SOP → سوراخ‌کردن سطح طبق پروجکشن.

  5. فعال‌کردن Template روی Circle و Tube و نمایش Project SOP.


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

  • Input 0: چهره‌ها (Faces).

  • Input 1: سطوح (Surfaces).


کانال‌های Info (Info CHOP Channels)

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

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

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

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

  • last_meta_vbo_update_time → زمان آپدیت متاسطوح روی GPU.

Common Operator Info Channels

  • total_cooks → تعداد Cookها.

  • cook_time → مدت زمان آخرین Cook.

  • cook_frame → شماره فریم آخرین Cook.

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

  • cook_start_time / cook_end_time → زمان شروع/پایان Cook.

  • cooked_this_frame → آیا در این فریم Cook شده.

  • warnings / errors → هشدارها و خطاها.