Experimental:GLSL MAT

Experimental:GLSL MAT

خلاصه

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

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