Experimental:Geo Text COMP

Experimental:Geo Text COMP

خلاصه

Geo Text COMP متن را در فضای سه‌بعدی (3D) رندر می‌کند.

  • این کامپوننت هیچ SOPی را نمی‌خواند یا تولید نمی‌کند، بلکه مستقیماً با استفاده از کتابخانه Slug رندر انجام می‌دهد.

  • می‌تواند با هر متریال MAT نورپردازی (lit) و تکسچرگذاری (textured) شود.

ویژگی‌ها

  • تنظیم فونت، رنگ، اندازه، بولد، ایتالیک، فاصله بین کاراکترها (tracking) و چندخطی، مشابه Text COMP.

  • برخلاف Text COMP که مرز Width و Height دارد، Geo Text این مرز را ندارد و به‌جای آن از Layout Box استفاده می‌کند.

    • Layout Box دارای عرض و ارتفاع است.

    • به‌صورت پیش‌فرض، گوشه پایین-چپ آن در مختصات (0,0,0) فضای شیء قرار می‌گیرد.

    • با تنظیم Layout Box Anchor U و V روی (0.5, 0.5)، می‌توان مرکز جعبه را روی (0,0,0) گذاشت.

  • با Layout Box می‌توان متن را راست‌چین یا بالا‌چین کرد، آن را به محدوده‌ی جعبه کلیپ نمود و حتی Padding به هر طرف اضافه کرد.

📌 معادل دوبعدی این کامپوننت: Text COMP
📌 برای تغییرات کاراکتر به‌صورت جداگانه: Text Formatting Codes


رندر چندرشته‌ای مستقل

برای رندر چند متن که هرکدام موقعیت و استایل جداگانه داشته باشند:

  • از Specification DAT و Specification CHOP استفاده می‌شود.

  • هر ردیف در Spec DAT یک بلاک متنی (Text Block) است.

  • ستون text رشته متن را مشخص می‌کند و پارامتر Text را override می‌کند.

  • بقیه ستون‌ها پارامترهای Geo Text (مثل tx، fontsize و غیره) را override می‌کنند.

  • بعضی ستون‌ها پارامتر مستقیم ندارند ولی رفتار خاص دارند (مثل append).

Spec CHOP

  • می‌تواند مقدارهای عددی (مثل tx, ty, rz, fontcolorr و …) برای هر بلاک بدهد.

  • تعداد سمپل‌های Spec CHOP باید برابر تعداد ردیف‌های Spec DAT باشد.

پارامترهایی که می‌توان override کرد

  • اندازه فونت، رنگ فونت، Tracking

  • همه‌ی پارامترهای مربوط به Layout Box و alignment

  • ستون‌های ترنسفورم (tx, ty, tz, rx, ry, rz, sx, sy, sz)

ستون append

  • وقتی مقدار append = 1 باشد، بلاک جدید دقیقاً بعد از بلاک قبلی قرار می‌گیرد.

  • ترنسفورم‌ها به بلاک‌های بعدی ارث می‌رسند.

ترنسفورم‌های محلی (Local)

  • ستون‌هایی مثل ltx, lrz ترنسفورم محلی اعمال می‌کنند که به بلاک‌های append بعدی منتقل نمی‌شوند.

  • اگر ستون localxform = pre باشد، ترنسفورم محلی قبل از ترنسفورم‌های ارث‌بری در فضای جهانی اعمال می‌شود.


نکته در رندر

Geo Text برای نمایش حروف از Blending و Transparency استفاده می‌کند.

  • هر کاراکتر (glyph) یک مستطیل نیمه‌شفاف است.

  • برای جلوگیری از دیدن پس‌زمینه مستطیل‌ها:

    • متن باید بعد از هندسه‌های پشت سرش رندر شود.

    • این کار با Draw Priority در صفحه Render انجام می‌شود (مقدار منفی‌تر یعنی دیرتر کشیده شود).

  • متن‌ها طبق ترتیب ردیف‌های Spec DAT کشیده می‌شوند.

    • پس بهتر است سطرهایی که عقب‌تر هستند زودتر در جدول بیایند.

📌 برای گزینه‌های ترنسفورم بیشتر: OP Snippets


شباهت

Geo Text شبیه Text COMP است، با این تفاوت که Text دوبعدی است و Geo Text سه‌بعدی.


پارامترها

Text Page

  • Mode (mode): مشخص می‌کند متن از کجا گرفته شود:

    • از پارامتر Text

    • یا از Specification DAT / CHOP

  • Text (text): وقتی در حالت Text باشد، رشته‌ای که رندر می‌شود را مشخص می‌کند.

  • Specification DAT (specdat):

    • داده از یک جدول DAT خوانده می‌شود.

    • هر ردیف یک خط متن است که می‌تواند ترنسفورم، رنگ، چینش و تنظیمات متفاوتی داشته باشد.

    • اگر ستونی خالی بماند، مقدار پیش‌فرض پارامتر اعمال می‌شود.

    • ستون‌های معتبر: text, tx, ty, tz, rx, ry, rz, sx, sy, sz, px, py, pz, ltx, lty, ltz, lrx, lry, lrz, lsx, lsy, lsz, lpx, lpy, lpz, fontcolorr, fontcolorg, fontcolorb, fontalpha, alignx, aligny, alignymode, fontsize, tracking, skew, horzstretch, linespacing, wordwrap, layoutsizew, layoutsizeh, layoutanchoru, layoutanchorv, textpaddingl, textpaddingr, textpaddingb, textpaddingt, render, append, localxform.

  • Specification CHOP (specchop): داده عددی را به بلاک‌های متنی اعمال می‌کند. هر سمپل مربوط به یک ردیف در Spec DAT است.

  • Sort by Depth (sorted): وقتی فعال شود، ردیف‌ها از عقب به جلو (نسبت به دوربین) کشیده می‌شوند تا شفافیت درست کار کند. (روی تعداد زیاد متن سنگین است).

  • Formatting Codes (formatcodes): فعال‌سازی کدهای فرمت مثل {#color(255,0,0);}.

  • Parse Escape Sequences (escapeseq): پشتیبانی از \t, \n, \r برای تب و خط جدید.

  • Smart Punctuation (smartpunct): جایگزینی خودکار گیومه‌ها، سه نقطه (…) و خط فاصله (—).

  • Word Wrap (wordwrap): شکستن متن وقتی از عرض Layout Box بیشتر شود.


Font Page

  • Font (font): انتخاب فونت از لیست سیستم. (اولین بار انتخاب ممکن است کمی طول بکشد).

  • Font File (fontfile): انتخاب فایل فونت دلخواه (غیرثبت‌شده در سیستم).

  • Bold (bold): نمایش متن بولد.

  • Italic (italic): نمایش متن ایتالیک.

  • Font Size (fontsize): اندازه فونت (واحد بر اساس فضای صحنه).

  • Tracking (tracking): فاصله افقی بین کاراکترها.

  • Skew (skew): کج کردن بالای کاراکترها.

  • Horz Stretch (horzstretch): کشیدگی افقی حروف.

  • Line Spacing (linespacing): فاصله بین خطوط.

  • Font Color (fontcolor): رنگ فونت (RGB).

  • Font Alpha (fontalpha): شفافیت فونت.

  • Layout Box Anchor U/V: مشخص‌کردن نقطه‌ی چرخش و مبنای جعبه.

  • Layout Box Size (layoutsize): عرض و ارتفاع جعبه مجازی.

  • Clip to Layout Box: برش متن بیرون از جعبه.

  • Text Padding: فاصله از لبه‌های جعبه.

  • Horizontal Align (alignx): چینش افقی (Left, Center, Right).

  • Vertical Align (aligny): چینش عمودی (Top, Center, Bottom).

  • Vertical Align Mode (alignymode):

    • با Font Metrics (ثابت، بسته به فونت)

    • یا Bounding Box (وابسته به متن، مناسب متن استاتیک).


Xform Page

  • Transform Order (xord): ترتیب اعمال Scale, Rotate, Translate.

  • Rotate Order (rord): ترتیب اعمال چرخش‌ها (Rx, Ry, Rz).

  • Translate (t): جابجایی روی محورهای X, Y, Z.

  • Rotate (r): چرخش روی محورهای X, Y, Z.

  • Scale (s): مقیاس روی محورهای X, Y, Z.

  • Pivot (p): نقطه مرجع برای مقیاس و چرخش.

وضیحات چرخش و مقیاس

  • Pivot Points: اگر یک کامپوننت با Pivot های مختلف بچرخد، نتایج متفاوتی می‌دهد.

  • Uniform Scale (مقیاس یکنواخت): اندازه کامپوننت را در هر سه محور به یک نسبت تغییر می‌دهد.

    • ⚠️ نکته: تغییر Scale در کانال‌های دوربین پیشنهاد نمی‌شود. ولی اگر انجام شود، خروجی رندر تا حد ممکن با Viewport هماهنگ خواهد بود.


پارامتر Parent Transform

  • Parent Transform Source: جایگزین پارامتر قدیمی Constrain To است. تعیین می‌کند موقعیت اولیه شیء از کجا گرفته شود:

    • Parent (Hierarchy) → از والد

    • Specify Parent Object → شیء مشخص

    • World Origin → مبدا جهان

  • Parent Object: اجازه می‌دهد این کامپوننت به مسیر شیء دیگری قفل شود.

  • Look At: باعث می‌شود کامپوننت همیشه به سمت یک کامپوننت دیگر نگاه کند (Origin آن).

    • مثال: دوربینی که همیشه حرکت یک شیء دیگر را دنبال می‌کند.

    • 📌 ترفند: اگر بخواهی دوربین روی نقطه‌ای که در صحنه وجود ندارد تمرکز کند → یک Null بساز، Display Flag آن را خاموش کن، دوربین را Parent آن کن و پارامتر Look At دوربین را روی Null بگذار.

  • Forward Direction: تعیین می‌کند کدام محور (±X, ±Y, ±Z) به‌عنوان جهت جلو در نظر گرفته شود.

  • Look At Up Vector: هنگام استفاده از Look At، یک Up Vector هم می‌توان تعریف کرد:

    • Don’t Use Up Vector → بدون بردار بالا (ممکن است انیمیشن بد شود).

    • Use Up Vector → دقیقاً تعیین می‌کند محور Y مثبت کجا باشد.

    • Use Quaternions → از کواترنیون برای محاسبه چرخش روان استفاده می‌کند.

    • Use Roll → زاویه Roll هم قابل کنترل است.


پارامتر Path

  • Path SOP: نام SOPی که مسیر حرکت را تعریف می‌کند (مثلاً مسیر حرکت دوربین).

  • Roll: زاویه چرخش شیء در طول مسیر.

  • Position: موقعیت روی مسیر، بین 0 (ابتدا) تا 1 (انتهای مسیر). تا عدد 10 هم قابل تکرار (Loop) است.

  • Orient along Path: اگر فعال شود، محور Z مثبت کامپوننت در راستای مسیر قرار می‌گیرد.

  • Orient Up Vector: تعیین می‌کند محور Y مثبت کجا باشد (X/Y/Z).

  • Auto-Bank Factor: چرخش خودکار بر اساس انحنای مسیر. مقدار 0 یعنی غیرفعال.


Parameters – Pre-Xform Page

این بخش دقیقاً مثل این است که یک والد برای شیء اضافه شود.
ترتیب اعمال:

PreXForm * Xform * Position
  • Apply Pre-Transform: فعال‌سازی Pre-Xform.

  • Transform Order / Rotate Order / Translate / Rotate / Scale / Pivot: مثل صفحه Xform.

  • Uniform Scale: مقیاس یکنواخت.

  • Reset Transform: ریست کردن ترنسفورم این صفحه.

  • Commit to Main Transform: انتقال مقادیر این صفحه به Xform اصلی.

  • Xform Matrix/CHOP/DAT: استفاده از یک ماتریس 4×4 برای ترنسفورم مستقیم. ترتیب اعمال:

    XformMatrix * PreXForm * Position

Parameters – Instance Page

قابلیت Instancing برای ساخت چند نسخه (Instance) از هندسه روی GPU.

  • Instancing: روشن/خاموش.

  • Instance Count Mode:

    • Manual → تعداد را دستی بدهی.

    • OP Length → تعداد از تعداد سطرهای DAT یا نمونه‌های CHOP گرفته شود.

  • Num Instances: تعداد نمونه‌ها (وقتی Manual باشد).

  • Default Instance OP: تعیین CHOP یا DAT پیش‌فرض برای داده‌های Instance.

  • First Row is: در صورت استفاده از DAT:

    • Ignored → ردیف اول نادیده گرفته می‌شود.

    • Names → ردیف اول نام ستون‌هاست.

    • Values → ردیف اول داده اولین Instance است.

  • Transform Order / Rotate Order: ترتیب اعمال ترنسفورم‌ها برای هر Instance.

  • Translate / Rotate / Scale / Pivot OP: می‌توان برای هرکدام یک CHOP/DAT/SOP داد.

  • هرکدام از محورهای X/Y/Z جداگانه قابل کنترل هستند.

  • Active: کانالی که تعیین می‌کند کدام Instance رندر شود (0 = خاموش).


Parameters – Instance 2 Page

وقتی داده از TOP/CHOP/SOP/DAT بیاید، به ترتیب به ویژگی‌های Instance نگاشت می‌شود.

  • Rotate to Vector: امکان چرخش هر Instance به سمت یک بردار خاص.

    • Forward Direction → تعیین محور جلو.

    • Rotate to OP → منبع داده.

    • X/Y/Z → داده‌ی چرخش.

  • Rotate Up Vector: تعیین محور بالا (X/Y/Z).

  • Instance Order: ترتیب اعمال World Transform و Instance Transform:

    • Instance → World

    • World → Instance

  • Texture Mode:

    • Replace → جایگزینی مختصات UV

    • Transform → انتقال UV

  • Color Mode:

    • Replace, Multiply, Add, Subtract

  • Instance Textures: می‌توان چندین TOP داد. هر Instance با استفاده از پارامتر Texture Index یکی از آن‌ها را انتخاب می‌کند.

    • محدودیت: ویندوز حداکثر 16384 بافت، macOS حداکثر 128 بافت همزمان.


Parameters – Instance 3 Page

اینجا می‌توان ویژگی‌های سفارشی (Custom Attributes) تعریف کرد که در GLSL MAT قابل استفاده باشند.

  • TDInstanceCustomAttrib0(), TDInstanceCustomAttrib1() و … برای دسترسی.

  • هر GPU تعداد متفاوتی ویژگی سفارشی پشتیبانی می‌کند.

  • پارامترها: OP منبع + مقادیر X/Y/Z/W.


Parameters – Render Page

کنترل متریال و رندرینگ کامپوننت.

  • Material: انتخاب MAT.

  • Render: روشن/خاموش بودن نمایش.

  • Draw Priority: ترتیب کشیدن (اعداد کوچکتر دیرتر کشیده می‌شوند → برای شفافیت مهم است).

  • Pick Priority: اولویت انتخاب هنگام استفاده از Render Pick.

  • Wireframe Color: رنگ نمایش در حالت Wireframe.

  • Light Mask: محدودکردن چراغ‌هایی که روی این هندسه تأثیر می‌گذارند.


Parameters – Extensions Page

مدیریت Extensionهای پایتون برای این کامپوننت.

  • Extension: لیست Extensionها.

  • Object: کلاس پایتونی متصل.

  • Name: نام اختیاری.

  • Promote: اگر روشن باشد متدها مستقیم در کامپوننت در دسترس هستند (n.SomeFunction). اگر خاموش باشد باید از .ext صدا زده شوند (n.ext.SomeFunction).

  • Re-Init Extensions: بازکامپایل تمام Extensionها.


Parameters – Common Page

تنظیمات عمومی مربوط به نمایش، کپی و ارتباط با فایل‌ها.

  • Parent Shortcut / Global OP Shortcut: نام مستعار برای دسترسی سریع به مسیر کامپوننت.

  • Internal OP: تعریف اپراتورهای داخلی و نام میانبر برایشان.

  • Node View: تعیین نمایشگر گره.

  • Enable Cloning / Clone Master: تنظیمات Clone.

  • Load on Demand: فقط هنگام نیاز بارگذاری شود.

  • Enable External .tox: وصل‌کردن فایل خارجی tox.

  • External .tox Path: مسیر فایل tox.

  • Reload Custom/Built-in Parameters: هنگام بارگذاری مجدد، مقادیر پارامترها را ریست کند یا نه.

  • Save Backup of External: بکاپ گرفتن داخل toe.

  • Sub-Component to Load: انتخاب یک COMP خاص از فایل tox.

  • Relative File Path Behavior: تنظیم اینکه مسیرهای نسبی داخل کامپوننت نسبت به toe باشد یا tox یا والد.

دیدگاهتان را بنویسید