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