خلاصه

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

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


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

  • GLSL Version (glslversion): انتخاب نسخه GLSL برای کامپایل شیدر (1.20، 3.30، 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 – حالت قدیمی).

  • 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, ivec2 …).

  • 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, 16x).


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

  • Vector: مجموعه بردارها به‌عنوان Uniform.

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

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


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

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

  • محدودیت تعداد مقادیر وابسته به نوع آرایه (Uniform Arrays یا Texture Buffers).

  • Name: نام آرایه.

  • Array: توالی آرایه‌ها برای استفاده به‌عنوان Uniform.


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

  • ماتریس‌ها برای تبدیل نقاط و بردارها بین فضاهای مختلف.

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

  • Relative Xforms: ترنسفورم نسبی از یک COMP به COMP دیگر.


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

  • تعریف مقادیر ثابت (Specialization Constants).

  • Constant: توالی ثابت‌ها.

  • Name: نام ثابت.

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


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

  • مشابه Depth MAT.

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

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

  • 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, Min, Max.

  • Source Color / Destination Color: انتخاب روش ترکیب رنگ منبع و مقصد.

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

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

🔹 Depth Test (تست عمق)

  • فعال/غیرفعال کردن تست عمق.

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

  • Write Depth Values: نوشتن مقدار عمق پس از عبور تست.

👉 تست عمق باعث می‌شود اجسام جلویی اجسام پشتی را بپوشانند.

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

  • تصمیم‌گیری برای رسم یا عدم رسم پیکسل بر اساس مقدار آلفا.

  • Alpha Threshold: پیکسل‌هایی با آلفا بیشتر از این مقدار نمایش داده می‌شوند.

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

  • رندر به حالت Wireframe (Off, Tesselated, Topology).

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

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

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

🔹 Polygon Depth Offset

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


Info CHOP Channels (اطلاعات CHOP)

اطلاعات اضافی 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: تعداد خطاها.