خلاصه
Phong MAT یک متریال با استفاده از مدل سایهزنی Phong ایجاد میکند. این متریال از تکسچرها، بازتابها، برجستگیها (Bump)، نورهای مخروطی، نورهای لبه (Rim Lights)، نقشههای آلفا و موارد دیگر پشتیبانی میکند. شما میتوانید شیدر GLSL آن را با استفاده از پارامتر Output Shader به دو DAT خروجی بدهید تا در یک GLSL MAT تغییرات بیشتر روی آن انجام دهید.
مدل سایهزنی Phong سه نوع بازتاب نور را مدلسازی میکند:
Ambient (محیطی): نوری که از جهت خاصی نمیآید و به صورت یکنواخت روی سطح پخش است. در دنیای واقعی نور محیطی از بازتاب نور اجسام اطراف ایجاد میشود.
Diffuse (پخشی): بازتاب نوری که توسط سطوح مات اتفاق میافتد. این نور در همه جهتها به یک اندازه پخش میشود و بنابراین موقعیت ناظر روی شدت نور دیدهشده تأثیر ندارد.
Specular (آینهای/براق): بازتاب نوری که توسط سطوح براق ایجاد میشود. این نور عمدتاً در جهت پرتو بازتابیده منعکس میشود و شدت آن به «براق بودن» سطح بستگی دارد. در اینجا موقعیت ناظر تعیین میکند که در کجا روی سطح درخشش (Highlight) دیده شود.
توجه: ما رنگ یک جسم را به این دلیل میبینیم که متریال آن، نور با آن رنگ خاص را بازتاب میدهد.
سایهزنی Phong هایلایتهای براق بسیار زیبایی تولید میکند، اگرچه هنوز تقریبی است و بهطور کامل فیزیکی دقیق نیست. در مقابل مدل Gouraud که نور را در هر رأس محاسبه کرده و بین سطوح درونیابی میکند، Phong نور را در هر پیکسل محاسبه میکند.
برای دیدن نحوه ترکیب همه اجزای نورپردازی میتوانید به مقالهی معادله نورپردازی Phong مراجعه کنید.
فهرست
خلاصه
پارامترها – صفحهی RGB
پارامترها – صفحهی Alpha
پارامترها – صفحهی Multi-Texturing
پارامترها – صفحهی Rim
پارامترها – صفحهی Advanced
پارامترها – صفحهی Deform
پارامترها – صفحهی Common
Blending
Depth Test
Alpha Test
Wire Frame
Cull Face
Polygon Depth Offset
کانالهای Info CHOP
کانالهای عمومی MAT Info
کانالهای عمومی Operator Info
پارامترها – صفحهی RGB
Ambient uses Diffuse (ambdiff): اگر فعال شود، مقدار Diffuse برای Ambient نیز استفاده میشود.
Diffuse (diff): ⊞ رنگ نور پخشی که از متریال بازتاب میشود.
Red (diffr) – قرمز
Green (diffg) – سبز
Blue (diffb) – آبی
Ambient (amb): ⊞ رنگ نور محیطی که از متریال بازتاب میشود.
Red (ambr) – قرمز
Green (ambg) – سبز
Blue (ambb) – آبی
Specular (spec): ⊞ رنگ نور بازتابیدهی براق. این رنگ هایلایتها روی سطوح براق را تغییر میدهد.
Red (specr) – قرمز
Green (specg) – سبز
Blue (specb) – آبی
Emit (emit): ⊞ رنگی که متریال بدون وجود نور هم از خودش ساطع میکند.
Red (emitr)
Green (emitg)
Blue (emitb)
Constant (constant): ⊞ رنگی که به رنگ نهایی اضافه میشود. فرمول:
Final Color += Point Color * Constant Color
. شبیه حالتی است که نور محیطی برابر (1,1,1) وجود دارد. روی تکسچر یا شفافیت تأثیر ندارد.Red (constantr)
Green (constantg)
Blue (constantb)
Shininess (shininess): کنترل درخشش (Specular Highlight). مقادیر بالاتر سطح را براقتر (مانند پلاستیک یا فلز صیقلی) میکند. مقادیر پایین سطحی مات ایجاد میکنند.
Color Map (colormap): ⊞ یک تکسچر TOP که خروجی کل محاسبات نورپردازی در آن ضرب میشود. آلفای این نقشه بخشی از آلفای نهایی جسم را تعیین میکند. دکمهی فلش کنار این پارامتر تنظیمات نمونهبرداری تکسچر را باز میکند.
Extend U/V/W (colormapextendu/v/w): نحوه تکرار تکسچر در جهتهای مختلف
Hold – نگه داشتن آخرین پیکسل
Zero – مقدار صفر
Repeat – تکرار
Mirror – بازتاب
Filter (colormapfilter): نوع فیلتر تکسچر
Nearest – نزدیکترین پیکسل
Linear – میانیابی خطی
Mipmap Linear – فیلتر چندسطحی
Anisotropic Filter (colormapanisotropy): کیفیت بالاتر نمونهبرداری
Off, 2x, 4x, 8x, 16x
Texture Sampling Mode (texturesamplingmode): نحوه نمونهبرداری از تکسچر
Regular – مختصات UV معمولی
Screen Space – مختصات فضای صفحه
Triplanar Mapping – نگاشت سهمحوره (برای POPها)
SOP Texture Coord (colormapcoord): انتخاب لایه UV از 0 تا 7
Coord Interpolation (colormapcoordinterp): نوع درونیابی
Perspective Correct – اصلاحشده بر اساس پرسپکتیو
Linear (No Perspective) – خطی بدون پرسپکتیو
Normal Map (Bump)
Normal Map (normalmap): ⊞ استفاده از یک نقشهی نرمال از TOPها برای شبیهسازی برجستگی (Bump). این کار باعث میشود سطح عمق سهبعدی پیدا کند. نیازمند وجود ویژگی Tangent در هندسه (T[4]).
Extend U/V/W: همانند Color Map.
Filter / Anisotropic / Sampling Mode: همانند Color Map.
SOP Texture Coord: انتخاب لایه UV.
Coord Interpolation: همانند Color Map.
Bump Scale (bumpscale): شدت اثر برجستگی ایجادشده توسط Normal Map.
Height Map (Parallax)
Enable Height Map (heightmapenable): فعالسازی نقشه ارتفاع.
Height Map (heightmap): ⊞ مشخص کردن نقشهی ارتفاع. همراه با Normal Map برای پارالاکسمپینگ استفاده میشود.
Extend U/V/W, Filter, Anisotropic, Sampling Mode: مشابه بخشهای قبل.
SOP Texture Coord و Coord Interpolation: مشابه قبل.
Channel Source (heightmapchannelsource): انتخاب کانال منبع:
Luminance (روشنایی)
Red / Green / Blue / Alpha
RGB Average (میانگین RGB)
RGBA Average (میانگین RGBA)
مقیاس اختلاف منظر (Parallax Scale)
Parallax Scale – مقداری است که روی نقشهی ارتفاع (Height Map) اعمال میشود. این مقدار میتواند برای افزایش یا اغراق در اثر اختلاف منظر استفاده شود.
Parallax Occlusion – فعالسازی انسداد اختلاف منظر. این ویژگی یک بهبود در تکنیک اختلاف منظر است که همراه با نقشهی ارتفاع استفاده میشود. انسداد اختلاف منظر کیفیت جابجایی بافت در نگاشت اختلاف منظر را بهبود میدهد بهگونهای که بخشهای بالاتر نقشهی ارتفاع، بخشهای پایینتر را میپوشانند و توهم بهتری از عمق ایجاد میکنند.
Displace Vertices – هنگامی که گزینهی Enable Height Map فعال باشد، روشن کردن این پارامتر باعث میشود تغییر مکان واقعی روی رأسهای هندسه انجام شود و آنها بر اساس نقشهی ارتفاع جابهجا شوند.
Displace Scale – یک ضریب برای مقدار جابهجایی.
Displace Midpoint – نقطهی میانی نقشهی جابهجایی را بهعنوان موقعیت شروع اثر جابهجایی تنظیم میکند.
نقشههای بافت (Maps)
Diffuse Map – یک TOP را مشخص میکند که با رنگ پخش (Diffuse Color) ضرب میشود. جسم باید مختصات بافت داشته باشد. آلفای این نقشه نادیده گرفته میشود.
(گزینههای Extend U, V, W / Filter / Anisotropic Filter / Texture Sampling Mode / SOP Texture Coord / POP Texture Coord Attribute / Coord Interpolation برای تنظیم روش نمونهبرداری از این بافت استفاده میشوند.)Specular Map – یک بافت TOP مشخص میکند که با پارامتر رنگ براقیت (Specular Color) ماده ضرب میشود. جسم باید مختصات بافت داشته باشد. آلفای این نقشه نادیده گرفته میشود.
Emit Map – یک بافت TOP را مشخص میکند که با پارامتر رنگ نشر (Emit Color) ماده ضرب میشود. جسم باید مختصات بافت داشته باشد. آلفای این نقشه نادیده گرفته میشود.
Environment Map (نقشه محیطی) – از یک بافت TOP برای تعریف نقشه محیطی استفاده میکند. نقشهی محیطی شبیهسازی بازتاب محیط اطراف روی یک جسم است. بافت مشخصشده همان تصویری است که بازتاب داده خواهد شد.
نقشهی محیطی به نورپردازی عادی اضافه میشود.
برای ساخت یک جسم کاملاً بازتابنده باید پارامترهای Diffuse و Specular را روی صفر قرار دهید.
ورودی انتظار یک Sphere Map دارد اما یک Cube Map هم قابل استفاده است (مثل خروجی Cube Map TOP یا Render TOP).
Environment Map Color – رنگی است که در نهایت با بافت نقشهی محیطی ضرب میشود.
Environment Map Rotate – امکان چرخاندن نقشهی محیطی بر اساس محورهای X, Y, Z را فراهم میکند.
Environment Map 2D Type – انتخاب بین Sphere Map یا Equirectangular Map بهعنوان نوع نقشه محیطی.نورپردازی وجوه چندضلعی
Polygon Front Faces – مشخص میکند که نرمال چندضلعی چگونه برای نورپردازی سطح جلویی استفاده شود. (طبق مقاله Two-Sided Lighting)
Use Per-Light(s) Parameter
Front Lit
Back Lit
Polygon Back Faces – مشابه حالت بالا اما برای وجوه پشتی چندضلعیها.
خروجی شیدر (Output Shader)
دکمهی Output Shader… یک پنجره باز میکند که در آن یک GLSL MAT و چند Text DAT با کد شیدر مطابق با اثر فعلی Phong MAT ساخته میشوند.
شیدرها وابسته به تعداد و نوع نورها هستند.
اگر در لیست چیزی ظاهر نشود، یعنی تاکنون شیدری در این نشست از TouchDesigner ساخته/کامپایل نشده است.
کافیست نمای Phong MAT را فعال کنید یا یک رندر در Render TOP بسازید تا شیدرها تولید شوند.
مثلاً اگر بخواهید شیدری ببینید که نگاشت سایه (Shadow Mapping) انجام دهد، یک رندر با نگاشت سایه تنظیم کنید تا گزینهی آن در لیست ظاهر شود.
پارامترهای صفحه آلفا (Alpha Page)
نکته: صرفاً اعمال آلفا به یک جسم آن را شفاف نمیکند. برای اطلاعات بیشتر به مقالهی Transparency مراجعه کنید.
Alpha Map – نقشهای که مقدار آلفای جسم را ضرب میکند. از کانال قرمز نقشه استفاده میشود، بقیه کانالها نادیده گرفته میشوند.
Uniform Alpha – اگر خاموش باشد، مقدار آلفا بسته به جهت نرمال هر چندضلعی نسبت به دوربین تغییر میکند:
نرمالهایی که رو به دوربیناند مقدار Alpha Front میگیرند.
نرمالهای عمود بر دوربین مقدار Alpha Side خواهند داشت.
Alpha Front – میزان شفافیت ماده. این مقدار در آلفای نقاط جسم ضرب میشود (همراه با سایر منابع آلفا).
Alpha Side – مقدار آلفا برای چندضلعیهایی که از دوربین رویگردان هستند.
Alpha Rolloff – کنترل میکند تغییر آلفا بین حالت Front و Side چگونه باشد.
Post-Mult Color by Alpha – در پایان همه محاسبات، رنگ (RGB) در آلفای محاسبهشده ضرب میشود. با خاموش کردن این گزینه میتوانید جلوی این کار را بگیرید.
Mult Alpha by Light Luminance – وقتی فعال باشد، روشنایی نور در آلفا ضرب میشود تا آن را کم یا زیاد کند.
پارامترهای صفحه Multi-Texturing
در این صفحه میتوان تا ۴ نقشه بافت تعریف کرد و برای هر کدام یکی از ۸ مختصات بافت ممکن را انتخاب نمود.
بهطور پیشفرض نقشهها در هم ضرب میشوند.
اما میتوان کد GLSL دلخواه نوشت.
نامگذاری بافتها:
t0, t1, t2, t3
فرمول پیشفرض:
میتوان از ثابتها و عملگرهای ریاضی هم استفاده کرد. مثلاً:
همچنین میتوان به کانالهای خاص اشاره کرد (.r .g .b .a). مثلاً برای ترکیب t0 روی t1:
خروجی باید یک vec4 باشد:
آلفای حاصل از این محاسبات استفاده میشود.
Multi-Texturing (Disables Color Map) – فعالسازی Multi-Texturing، که باعث غیرفعال شدن پارامتر Color Map میشود.
Texture 1, Texture 2, Texture 3, Texture 4 – میتوان تا ۴ بافت مشخص کرد.
هر کدام شامل گزینههای: Extend U/V/W، Filter، Anisotropic Filter، Coord Interpolation، Sampling Mode و انتخاب مختصات بافت (SOP/POP) هستند.فیلتر (Filter) – texture2mapfilter
Nearest (نزدیکترین) → انتخاب نزدیکترین پیکسل (تکسچر تیز ولی پیکسلی).
Linear (خطی) → میانیابی خطی بین پیکسلها (تکسچر نرمتر).
Mipmap Linear (میپمپ خطی) → استفاده از میپمپینگ برای کیفیت بهتر در فاصلههای مختلف.
🔹 فیلتر آنیزوتروپیک (Anisotropic Filter) – texture2mapanisotropy
Off (خاموش)
2x, 4x, 8x, 16x → هرچه مقدار بالاتر باشد کیفیت بهتر در زاویهها و پرسپکتیو.
🔹 درونیابی مختصات (Coord Interpolation) – texture2coordinterp
Perspective Correct (تصحیح پرسپکتیو) → دقیقتر و واقعیتر.
Linear (noperspective) (خطی، بدون پرسپکتیو) → سادهتر، سریعتر.
🔹 حالت نمونهبرداری تکسچر (Texture Sampling Mode) – texture2samplingmode
Regular (معمولی) → استفاده از مختصات UV استاندارد.
Screen Space Coordinates (مختصات فضای صفحه) → استفاده از مختصات صفحهنمایش.
Triplanar Mapping (نگاشت سهصفحهای) → نگاشت سهجهتی برای هندسههای پیچیده (فقط برای POPها).
🔹 مختصات تکسچر SOP – texture2coord
مشخص میکند کدام لایه مختصات تکسچر استفاده شود:
uv0 → لایه ۰ (uv[0-2])
uv1 → لایه ۱ (uv[3-5])
uv2 → لایه ۲ (uv[6-8])
uv3 → لایه ۳ (uv[9-11])
uv4 → لایه ۴ (uv[12-14])
uv5 → لایه ۵ (uv[15-17])
uv6 → لایه ۶ (uv[18-20])
uv7 → لایه ۷ (uv[21-23])
🔹 ویژگی POP Texture Coord Attribute – texture2mapcoordattr
برای مشخص کردن ویژگی مختصات تکسچر در دادههای POP.
🖼 Texture 3 – texture3
شما میتوانید تا ۴ تکسچر برای Multi-Texturing مشخص کنید.
Extend U / V / W → روش کشش تکسچر در محورهای U, V, W:
Hold (ثابت نگهدار)
Zero (صفر شود)
Repeat (تکرار شود)
Mirror (آینهای)
Filter / Anisotropy / Coord Interpolation / Sampling Mode → دقیقاً مشابه Texture 2.
SOP Texture Coord (مختصات UV لایهها) → uv0 تا uv7.
POP Texture Coord Attribute – texture3mapcoordattr
🖼 Texture 4 – texture4
چهارمین تکسچر که میتوان برای Multi-Texturing تعریف کرد.
Extend U / V / W → همان گزینهها (Hold, Zero, Repeat, Mirror).
Filter / Anisotropy / Coord Interpolation / Sampling Mode → مشابه Texture 2 و 3.
SOP Texture Coord (uv0 تا uv7) برای انتخاب مختصات تکسچر.
حالت نمونهبرداری تکسچر (Texture Sampling Mode) –
darknessemitmapsamplingmode
روش انتخاب نمونهبرداری تکسچر:
Regular (معمولی) → استفاده از مختصات UV استاندارد برای نمونهبرداری.
Screen Space Coordinates (مختصات فضای صفحه) → نمونهبرداری با مختصات صفحهنمایش.
Triplanar Mapping (نگاشت سهصفحهای) → نگاشت سهجهتی با مختصات تریپلنار (فقط در POPها).
مختصات Triplanar میتوانند از طریق Texture Map POP ایجاد شوند.
🔹 مختصات تکسچر SOP –
darknessemitmapcoord
مشخص میکند کدام لایه UV برای تکسچر استفاده شود:
uv0 → لایه ۰ (uv[0-2])
uv1 → لایه ۱ (uv[3-5])
uv2 → لایه ۲ (uv[6-8])
uv3 → لایه ۳ (uv[9-11])
uv4 → لایه ۴ (uv[12-14])
uv5 → لایه ۵ (uv[15-17])
uv6 → لایه ۶ (uv[18-20])
uv7 → لایه ۷ (uv[21-23])
🔹 ویژگی POP Texture Coord Attribute –
darknessemitmapcoordattrib
مشخص میکند مختصات تکسچر از کدام ویژگی در دادههای POP گرفته شود.
🔹 درونیابی مختصات (Coord Interpolation) –
darknessemitmapcoordinterp
Perspective Correct (تصحیح پرسپکتیو)
Linear (بدون پرسپکتیو، خطی)
✨ هایلایت اسپکولار ثانویه (Secondary Specular) –
spec2
افزودن رنگ درخشش ثانویه روی سطح.
کانالها:
قرمز (spec2r)
سبز (spec2g)
آبی (spec2b)
✨ براقی ثانویه (Secondary Shininess) –
shininess2
کنترل شدت هایلایت ثانویه (میزان براق بودن).
مقادیر بالا → سطح براق (مثل پلاستیک یا فلز صیقلی).
مقادیر پایین → سطح مات.
📸 نوشتن عمق دوربین در آلفا –
writecameradepthtoalpha
باعث میشود مقدار عمق پیکسل در فضای دوربین داخل کانال آلفا نوشته شود.
کاربردی برای افکتهای Post-Processing.
توجه: در این حالت نتیجهی محاسبات کامل آلفا در خروجی نخواهید داشت (مگر اینکه گزینهی Post-Mult Color by Alpha فعال باشد).
🎨 استفاده از رنگ نقاط –
applypointcolor
بهطور پیشفرض ویژگی رنگ (
Cd[4]
) از SOP وارد محاسبات نورپردازی میشود.با غیرفعال کردن این گزینه میتوانید از رنگ نقاط صرفنظر کنید.
🖼 تکسچر اینستنسها –
instancetexture
وقتی در Geometry COMP تکسچر بهصورت per-instance داده شود، این پارامتر تعیین میکند به کدام مپ اعمال شود:
Color Map
Normal Map
Diffuse Map
Specular Map
Emit Map
Alpha Map
Darkness Emit Map
Rim Light Map
🎨 Color Buffers –
color0output
ارسال دادهها به بافرهای مختلف رندر در یک پاس:
Zero
One
World Space Position
World Space Normal
Camera Space Position
Camera Space Normal
Point Color
Texture Coord 0
Diffuse Map
Normal Map
Spec Map
Emit Map
Emit Color
Diffuse Color
Diffuse Lighting
Final Diffuse Color
Specular Color
Secondary Specular Color
Specular Lighting
Secondary Specular Lighting
Final Specular Color
Shadow Strength
Normalized Shadow Strength
🦴 پارامترهای Deform Page
Deform (dodeform) → فعالسازی Deform روی متریال.
Get Bone Data (deformdata):
از یک SOP
از یک MAT
از یک DeformIn MAT
SOP با Capture Data (targetsop) → مشخص کردن SOP شامل دادههای Capture.
pCaptPath Attrib (pcaptpath) → مشخص کردن نام ویژگی مسیر Capture (برای گروه Boneها).
pCaptData Attrib (pcaptdata) → مشابه مورد بالا ولی دادهها.
Skeleton Root Path (skelrootpath) → مسیر COMP که ریشه اسکلت در آن قرار دارد.
MAT (mat) → اگر دادهی Deform از MAT یا DeformIn MAT گرفته شود، اینجا مشخص میشود.
⚙️ پارامترهای Common Page
🔹 Blending (ترکیب رنگ / شفافیت)
شبیهسازی شفافیت با ترکیب پیکسل جدید و پیکسل موجود در بافر.
فرمول:
حالتهای Blend: Add, Subtract, Reverse Subtract, Min, Max.
کنترل جداگانه برای RGB و Alpha.
امکان استفاده از Constant Color.
گزینهی Post-Mult Color by Alpha برای واقعیسازی شفافیت.
🔹 Depth Test (آزمون عمق)
مقایسهی عمق پیکسل جاری با عمق موجود در Depth Buffer.
حالتها: Less, LessEqual, Equal, Greater, GreaterEqual, NotEqual, Always.
گزینهی Write Depth Values → نوشتن عمق پیکسل در Depth Buffer.
🔹 Alpha Test (آزمون آلفا)
نگهداشتن یا حذف پیکسل بر اساس مقدار آلفا.
مقایسه با پارامتر Alpha Threshold.
🔹 Wireframe Rendering (نمایش وایرفریم)
Off
OpenGL Tesselated
Topology Wireframe
پارامتر Line Width برای ضخامت خطوط.
🔹 Cull Face (حذف سطوح)
Neither → هیچ سطحی حذف نمیشود.
Back Faces → سطوح پشتی حذف میشوند.
Front Faces → سطوح جلویی حذف میشوند.
Both Faces → هر دو حذف میشوند.
🔹 Polygon Depth Offset
هل دادن سطحها به عقب برای جلوگیری از Z-Fighting.
مهم برای کار با سایهها.
ℹ️ Info CHOP Channels
اطلاعات اضافی از Phong MAT که میتوانید با Info CHOP بخوانید:
total_cooks
→ تعداد دفعات Cook شدنcook_time
→ مدت زمان آخرین Cook (میلیثانیه)cook_frame
→ شماره فریم آخرین Cook (نسبت به تایملاین کامپوننت)cook_abs_frame
→ شماره فریم آخرین Cook (نسبت به زمان مطلق)cook_start_time
→ زمان شروع Cookcook_end_time
→ زمان پایان Cookcooked_this_frame
→ آیا در این فریم Cook شده یا نهwarnings
→ تعداد هشدارهاerrors
→ تعداد خطاها