Texture SOP

پرش به ناوبری | پرش به جستجو

خلاصه (Summary)

Texture SOP مختصات بافت (Texture Coordinates) شامل U، V و W را به هندسه‌ی ورودی (Source geometry) اختصاص می‌دهد تا در تکسچر مپینگ و بامپ مپینگ استفاده شوند.
این اپراتور می‌تواند چند لایه (Multi-layer) مختصات تکسچر تولید کند.


فهرست مطالب (Contents)

  1. خلاصه

  2. اصلاح درزها (Seams) و بازکردن هندسه (Unrolling Geometry)

  3. پارامترها – صفحه Page

  4. پارامترها – صفحه Texture

  5. پارامترها – صفحه Transform

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

  7. کانال‌های Info CHOP
     7.1 کانال‌های اطلاعات عمومی SOP
     7.2 کانال‌های اطلاعات عمومی اپراتور


اصلاح درزها و بازکردن هندسه

نکته: توضیحات زیر فقط مربوط به primitiveهای Face و Hull است.

اگر نوع تکسچر نیاز به اصلاح درزها داشته باشد و تکسچر روی Vertex اعمال شود، پرایمیتیوهای بسته (Wrapped primitives) قبل از محاسبه‌ی مختصات تکسچر باز (Unrolled) می‌شوند.
باز کردن یک primitive بسته باعث می‌شود به یک primitive باز تبدیل شود که رأس‌های جدید آن از همان pointهایی استفاده می‌کنند که از آن‌ها یکتا (Unique) شده‌اند.

بنابراین:

  • تعداد pointها تغییر نمی‌کند

  • در آینده ترک (Crack) در سطح ایجاد نمی‌شود

  • نیازی به Unroll دستی با Primitive SOP نیست

اصلاح درزها بعد از محاسبه مختصات تکسچر انجام می‌شود.
این کار چه تکسچر روی point اعمال شود چه روی vertex، ضروری است و می‌تواند روی U، V یا هر دو انجام شود.

انواع تکسچری که نیاز به اصلاح درز دارند:

  • Cylindrical → اصلاح درز در U

  • Polar → اصلاح درز در U و V

  • Row/Column → اصلاح درز در U و V

  • Spline‌ها:

    • Uniform

    • Chord Length

    • Average
      → اصلاح درز در U و V

نکته:
وقتی نوع Projection برابر Cylindrical یا Polar باشد، مش‌های بسته، سطوح Bezier و NURBS باز می‌شوند.
حداقل یک ردیف یا ستون vertex (و در NURBS احتمالاً بیشتر) اضافه می‌شود تا از اینترپولیشن ضعیف مختصات تکسچر در محل درز جلوگیری شود.


پارامترها – Page

Primitive Group (group)

اگر ورودی شامل گروه‌های primitive باشد، با مشخص‌کردن نام گروه در این فیلد، Texture SOP فقط روی همان گروه اعمال می‌شود.
⚠️ با Point Group یا Vertex Group کار نمی‌کند.
از الگوها (Patterns) طبق قوانین Pattern Matching پشتیبانی می‌کند.


پارامترها – Texture Page

Texture Layer (texlayer)

اگر هندسه چند لایه تکسچر داشته باشد، این پارامتر مشخص می‌کند Texture SOP روی کدام لایه UV تأثیر بگذارد.


Texture Type (type)

روش‌های Face، Uniform Spline و Arc-Length Spline هم منحنی‌های spline و هم polygonها را پشتیبانی می‌کنند.

در روش‌های مبتنی بر spline:

  • اگر در فیلد Group یک Paste Hierarchy مشخص شود، محاسبه مختصات تکسچر به تمام نودهای آن سلسله‌مراتب منتقل می‌شود.

  • روش‌های Projection معمولاً پیوستگی نرم‌تری بین سطوح Paste‌شده نسبت به روش‌های spline ایجاد می‌کنند.

  • گاهی کمک می‌کند که ویژگی‌های Paste شده با Basis SOP به صورت Chord-Length پارامتردهی شوند.


Projection Axis (axis)

محور Projection یا روش Projection از splineها.
محورهای X، Y یا Z.


Camera Name (camera)

زمانی استفاده می‌شود که نوع تکسچر Perspective From Camera انتخاب شده باشد.
از این منو می‌توان دوربین یا نور موردنظر برای Projection پرسپکتیو را انتخاب کرد.


Apply to (coord)

مشخص می‌کند مختصات تکسچر کجا اعمال شوند:

  • Natural Location

  • Point Textures

  • Vertex Textures

وقتی Natural Location انتخاب شود:

  • در حالت‌های Polar، Cylindrical، Rows & Columns و Face، UVها روی Vertex اعمال می‌شوند.

  • حالت‌های Orthographic، Uniform Spline، Average Spline و Arc-Length Spline همیشه UVهای Point-based تولید می‌کنند.

همچنین اگر:

  • در حال ساخت لایه جدید تکسچر باشید

  • و برای لایه ۰ از قبل Vertex UV وجود داشته باشد

Natural Location به صورت خودکار Vertex UV ایجاد می‌کند.

اگر primitive از هر دو جهت باز باشد (مثل Grid یا Surface)، مزیت Vertex UV از بین می‌رود چون درز بسته‌ای وجود ندارد که نگران آن باشیم.

Vertex UV:

  • در محل درز بسته، pointهای یکتا ایجاد می‌کند

Point UV:

  • درزها را به صورت مشترک نگه می‌دارد

  • به صورت پیش‌فرض مقدار U یا V آن‌ها صفر می‌شود

اگر بخواهید یک سطح بسته را باز کنید:

  • کافی است یک Carve SOP در مسیر قرار دهید

  • و یک carve در جهتی که سطح بسته است ایجاد کنید


Scale (s)

مختصات تکسچر را به مقدار مشخصی مقیاس می‌دهد.

Offset (offset)

مختصات تکسچر را به مقدار مشخصی جابه‌جا می‌کند.

Rotate (angle)

مختصات تکسچر را به اندازه تعیین‌شده می‌چرخاند.

نکته کاربردی:
قبل از استفاده از Projectionهای مبتنی بر spline، بهتر است:

  • پایه U و/یا V سطح spline را با Basis SOP بین ۰ و ۱ Remap کنید

  • اگر یک تکسچر باید بین چند سطح مشترک باشد، ابتدا Baseهای سطح را به هم متصل (Concatenate) و سپس Remap کنید


Fix Face Seams (fixseams)

سعی می‌کند پیوستگی تکسچر را در محل درزهای Face اصلاح کند.


پارامترها – Transform Page

برای اعمال Transformهای بیشتر روی فضای مختصات تکسچر.

Transform Order (xord)

ترتیب کلی Transformها را تعیین می‌کند.
ترتیب انجام Transformها روی نتیجه نهایی تأثیر مستقیم دارد.


Rotate Order (rord)

ترتیب چرخش‌ها را درون Transform Order مشخص می‌کند.


Translate (t)

مختصات تکسچر را در سه محور جابه‌جا می‌کند.

Rotate (r)

مختصات تکسچر را در سه محور می‌چرخاند.

Scale (scaletwo)

مختصات تکسچر را در سه محور مقیاس می‌دهد.


Pivot (p)

نقطه Pivot برای Transformها (مستقل از Pivot کانال‌ها).
این نقطه مشخص می‌کند Scale و Rotate حول کدام موقعیت انجام شوند.

مثال:
اگر Pivot روی (-1, -1, 0) باشد و Scale = 0.5 اعمال شود، تکسچر به سمت Pivot جمع می‌شود و به پایین و چپ سر می‌خورد.

در تصویر مثال:
چرخش تکسچر با Pivotهای مختلف، نتایج کاملاً متفاوتی ایجاد می‌کند.


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

Input 0:


کانال‌های Info CHOP

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


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

  • num_points – تعداد pointها

  • num_prims – تعداد primitiveها

  • num_particles – تعداد particleها

  • last_vbo_update_time – زمان صرف‌شده برای آپدیت داده‌های هندسه روی GPU

  • last_meta_vbo_update_time – زمان آپدیت هندسه‌های Meta مثل Metaball یا NURBS روی GPU


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

  • total_cooks – تعداد دفعات Cook از شروع اجرا

  • cook_time – زمان آخرین Cook (میلی‌ثانیه)

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

  • cook_abs_frame – شماره فریم آخرین Cook نسبت به زمان مطلق

  • cook_start_time – زمان شروع Cook

  • cook_end_time – زمان پایان Cook

  • cooked_this_frame – اگر در این فریم Cook شده باشد مقدار ۱

  • warnings – تعداد هشدارها

  • errors – تعداد خطاها