خلاصه

GLSL MAT به شما امکان می‌دهد متریال‌های سفارشی خود را در TouchDesigner بنویسید یا وارد کنید. اگر شیدر GLSL دارای خطای کامپایل باشد، یک شیدر خطای شطرنجی آبی/قرمز نمایش داده می‌شود.

برای اطلاعات بیشتر درباره شیدرنویسی، به مقاله Write a GLSL Material و دسته‌بندی GLSL مراجعه کنید.


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

  • GLSL Version (glslversion): انتخاب نسخه GLSL برای کامپایل شیدر (1.20 تا 4.60).

  • Preprocess Directives (predat): اضافه‌کردن دستورات پیش‌پردازنده مثل #extension در ابتدای شیدر.

  • Vertex Shader (vdat): مسیر DAT شامل کد شیدر ورتکس.

  • Pixel Shader (pdat): مسیر DAT شامل کد شیدر پیکسل.

  • Geometry Shader (gdat): مسیر DAT شامل کد شیدر هندسه.

  • Load Uniform Names: خواندن Uniformهای تعریف‌شده و پرکردن نام‌ها.

  • Clear Uniform Names: پاک‌کردن نام‌های Uniform.

  • Inherit Uniforms/Samplers from: ارث‌بری Uniformها و سمپلرها از یک GLSL MAT دیگر.

  • Lighting Space: تغییر فضای نوری (World Space یا Camera Space قدیمی).

  • TDSimplexNoise(): انتخاب بین حالت Performance و Quality برای نویز Simplex.

  • Input Primitive Type: نوع هندسه ورودی به شیدر هندسه (Points, Lines, Triangles).

  • Output Primitive Type: نوع هندسه خروجی شیدر هندسه (Points, Line Strip, Triangle Strip).

  • Num Output Vertices: حداکثر تعداد ورتکس خروجی.

  • Two Sided Coloring: پشتیبانی از رنگ‌گذاری دوطرفه (Front/Back).


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

  • Attribute: تعریف ویژگی‌هایی که باید به شیدر ارسال شوند.

  • Name: نام ویژگی.

  • Type: نوع داده (float, vec2, vec3, vec4, int, uint, double و انواع آرایه‌ای).

  • Array Size: اندازه آرایه (۱ = بدون آرایه).


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

  • Sampler: لیست سمپلرها برای استفاده در شیدر.

  • Name: نام سمپلر در GLSL.

  • TOP: انتخاب TOP مرجع برای سمپلر.

  • Extend U/V/W: حالت‌های تکرار یا نگهداری (Hold, Zero, Repeat, Mirror).

  • Filter: نوع فیلتر (Nearest, Linear, Mipmap Linear).

  • Anisotropic Filter: وضوح بیشتر با سطوح (Off, 2x, 4x, 8x, 16x).


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

  • Vector: تعریف بردارها به‌عنوان Uniform.

  • Name: نام بردار.

  • Value: مقدار اختصاص داده‌شده (x, y, z, w).


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

  • ارسال داده‌های CHOP به GLSL به‌صورت آرایه.

  • محدودیت تعداد مقادیر بستگی به نوع دارد:

    • Uniform Arrays: محدود بر اساس $SYS_GFX_GLSL_MAX_UNIFORMS.

    • Texture Buffers: محدودیت بسیار بزرگ‌تر (بر اساس $SYS_GFX_MAX_TEXTURE_BUFFER_SIZE).


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

  • Matrix: تعریف ماتریس‌ها به‌عنوان Uniform.

  • Relative Xforms: تبدیل نسبی بین دو COMP.

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

  • Xform From / To: انتخاب مبدا و مقصد برای ترنسفورم نسبی.


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

  • Constant: تعریف ثابت‌ها (Specialization Constants).

  • Name: نام ثابت.

  • Value: مقدار ثابت.


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

  • Deform: فعال‌سازی تغییر شکل روی متریال.

  • Get Bone Data: دریافت داده استخوان از SOP، MAT یا DeformIn MAT.

  • SOP with Capture Data: SOP شامل داده کپچر.

  • pCaptPath / pCaptData: ویژگی‌های کپچر برای گروه استخوان.

  • Skeleton Root Path: مسیر ریشه اسکلت.

  • MAT: انتخاب MAT مرجع برای داده Deform.


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

🔹 Blending (ترکیب/شفافیت)

ترکیب رنگ پیکسل در حال رسم با رنگ موجود در Color Buffer.
فرمول:
Final Pixel = (Source Blend * Source Color) + (Dest Blend * Destination Color)

  • Blend Operation: Add, Subtract, Reverse Subtract, Min, Max.

  • Source / Destination Color: روش ترکیب رنگ‌ها.

  • Separate Alpha Function: ترکیب جداگانه برای آلفا.

  • Post-Mult Color by Alpha: ضرب رنگ در آلفا پس از عملیات.

  • Point Color Pre-Multiply: پیش‌ضرب شدن رنگ نقطه‌ای با آلفا.

🔹 Depth Test (تست عمق)

  • مقایسه عمق پیکسل جدید با Depth Buffer.

  • Depth Function: کمتر، مساوی، بیشتر و …

  • Write Depth Values: نوشتن مقدار عمق پس از تست.
    👉 باعث می‌شود اجسام جلویی، اجسام پشتی را بپوشانند.

🔹 Alpha Test (تست آلفا)

  • نگه‌داشتن یا حذف پیکسل‌ها بر اساس مقدار آلفا.

  • Alpha Threshold: آستانه برای نمایش یا حذف پیکسل.

🔹 Wireframe (نمای سیمی)

  • رندر سیمی (Off, OpenGL Tesselated, Topology).

  • Line Width: ضخامت خطوط.

🔹 Cull Face (حذف وجه‌ها)

  • انتخاب وجه‌ها برای رندر (Back, Front, Both, None).

🔹 Polygon Depth Offset

  • جابجایی جزئی پلی‌گون‌ها برای جلوگیری از Z-Fighting یا هنگام رسم سایه.


Info CHOP Channels

اطلاعات GLSL MAT از طریق Info CHOP:

  • total_cooks: تعداد دفعات پردازش.

  • cook_time: مدت آخرین پردازش (ms).

  • cook_frame / cook_abs_frame: شماره فریم آخرین پردازش.

  • cook_start_time / cook_end_time: زمان شروع و پایان پردازش.

  • cooked_this_frame: پردازش در این فریم (۱ یا ۰).

  • warnings: تعداد هشدارها.

  • errors: تعداد خطاها.