Phong MAT

Phong MAT

Phong MAT

خلاصه (Summary):
Phong MAT یک متریال می‌سازد با استفاده از مدل نورپردازی Phong. از بافت‌ها (textures)، بازتاب‌ها (reflections)، برجستگی‌ها (bumps)، نور مخروطی (cone lights)، نور کناره‌ای (rim lights)، نقشه‌های آلفا (alpha maps) و موارد دیگر پشتیبانی می‌کند. می‌توان شیدر GLSL آن را با پارامتر Output Shader به دو DAT خروجی داد تا برای استفاده در GLSL MAT تنظیم شود.

انواع نور بازتابی در Phong:

  • Ambient (نور محیط): نوری که از هیچ جهت مشخصی نمی‌آید و در سطح یکنواخت است. در دنیای واقعی از بازتاب نور از سطوح محیط ایجاد می‌شود.

  • Diffuse (نور پخشی): نور بازتابی از سطوح مات که به صورت یکنواخت در تمام جهات پراکنده می‌شود و موقعیت ناظر تاثیری روی شدت آن ندارد.

  • Specular (نور بازتابی براق): نور بازتابی از سطوح براق که عمدتاً در جهت پرتو بازتابی منعکس می‌شود و شدت آن با درخشندگی جسم تعیین می‌شود. موقعیت ناظر شدت هایلایت روی سطح را مشخص می‌کند.

توجه: ما رنگ یک جسم را به دلیل رنگ نوری که سطح آن بازتاب می‌دهد می‌بینیم.

Phong نورهای براق بسیار خوبی تولید می‌کند اما تقریباً یک تقریب است و کاملاً فیزیکی دقیق نیست. برخلاف مدل Gouraud که نور را در هر راس محاسبه می‌کند، Phong نور را در هر پیکسل محاسبه می‌کند.


پارامترها – RGB Page

Ambient ambdiff – استفاده از پارامتر Diffuse برای نور محیط در صورت فعال بودن.

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 – به رنگ نهایی اضافه می‌شود. بافت یا شفافیت روی آن تاثیری ندارد:

  • Red constantr

  • Green constantg

  • Blue constantb

Shininess shininess – کنترل درخشندگی هایلایت‌ها: مقادیر بالاتر براق‌تر، مقادیر پایین‌تر مات‌تر.

Color Map colormap – بافت TOP که با نتایج نورپردازی ضرب می‌شود، شامل تنظیمات:

  • Extend U/V/W: Hold / Zero / Repeat / Mirror

  • Filter: Nearest / Linear / Mipmap Linear

  • Anisotropic Filter: Off / 2x / 4x / 8x / 16x

  • Texture Coord: uv0 تا uv7 و Screen Space

  • Coord Interpolation: Perspective Correct / Linear

Normal Map (Bump) normalmap – ایجاد اثر برجستگی با نقشه نرمال:

  • Extend U/V/W، Filter، Anisotropic Filter، Texture Coord، Coord Interpolation مشابه بالا

  • Bump Scale: ضریب اثر برجستگی

Height Map heightmap – فعال‌سازی نقشه ارتفاع و پارالاکس:

  • Extend U/V/W، Filter، Anisotropic Filter، Texture Coord، Coord Interpolation

  • Channel Source: Luminance / Red / Green / Blue / Alpha / RGB Average / RGBA Average

  • Parallax Scale: ضریب ارتفاع

  • Parallax Occlusion: فعال‌سازی پارالاکس پیشرفته

  • Displace Vertices: فعال‌سازی جابجایی واقعی رئوس

  • Displace Scale / Midpoint: تنظیم میزان و نقطه میانی جابجایی

Diffuse Map diffusemap – TOP ضرب شده با رنگ Diffuse، شامل تنظیمات مشابه Normal Map.

Specular Map specmap – TOP ضرب شده با رنگ Specular، شامل تنظیمات مشابه Normal Map.

Emit Map emitmap – TOP ضرب شده با رنگ Emit، شامل تنظیمات مشابه Normal Map.

Emit Map – پارامترهای Texture Coord

Emit Map Texture Coord emitmapcoord – انتخاب لایه بافت برای Emit Map:

  • Texture Layer 0 (uv[0-2]) → uv0

  • Texture Layer 1 (uv[3-5]) → uv1

  • Texture Layer 2 (uv[6-8]) → uv2

  • Texture Layer 3 (uv[9-11]) → uv3

  • Texture Layer 4 (uv[12-14]) → uv4

  • Texture Layer 5 (uv[15-17]) → uv5

  • Texture Layer 6 (uv[18-20]) → uv6

  • Texture Layer 7 (uv[21-23]) → uv7

  • Screen Space Coordinates → screenspace

Coord Interpolation emitmapcoordinterp – نوع درون‌یابی مختصات بافت:

  • Perspective Correct → perspectivecorrect

  • Linear (noperspective) → linear


Environment Map – نقشه محیطی

Environment Map envmap – استفاده از بافت TOP برای شبیه‌سازی بازتاب محیط روی جسم. اگر بخواهید جسم کاملاً بازتاب‌دهنده باشد، پارامترهای Diffuse و Specular را صفر کنید. این ورودی معمولاً Sphere Map یا Cube Map می‌پذیرد.

Extend U/V/W envmapextendu/envmapextendv/envmapextendw – رفتار تکرار بافت: Hold / Zero / Repeat / Mirror

Filter envmapfilter – نوع فیلتر: Nearest / Linear / Mipmap Linear

Anisotropic Filter envmapanisotropy – فیلتر غیرهمسانگرد: Off / 2x / 4x / 8x / 16x

Environment Map Color envmapcolor – رنگی که با بافت Environment Map ضرب می‌شود:

  • Red envmapcolorr

  • Green envmapcolorg

  • Blue envmapcolorb

Environment Map Rotate envmaprotate – چرخش بافت:

  • X/Y/Z → envmaprotatex / y / z

Environment Map 2D Type envmaptype2d – انتخاب نوع بافت محیط: Sphere Map یا Equirectangular


Polygon Lighting

Polygon Front Faces frontfacelit – نحوه نوردهی به رویه جلوی پلی‌گون: Use Per-Light(s) / Front Lit / Back Lit

Polygon Back Faces backfacelit – نحوه نوردهی به پشت پلی‌گون: Use Per-Light(s) / Front Lit / Back Lit

Output Shader outputshader – ایجاد GLSL MAT و DATهای متناظر با شیدری که Phong MAT تولید می‌کند. بسته به نورهای موجود، گزینه‌های مختلف شیدر ارائه می‌شود.


Parameters – Alpha Page

توجه: اعمال آلفا به جسم به تنهایی آن را شفاف نمی‌کند.

Alpha Map alphamap – نقشه‌ای که آلفای جسم را ضرب می‌کند، فقط کانال قرمز استفاده می‌شود.

Uniform Alpha alphamode – خاموش کردن این گزینه باعث تغییر آلفا بسته به جهت نرمال پلی‌گون نسبت به دوربین می‌شود.

Alpha Front alphafront – شفافیت ماده، ضرب در Point Alpha جسم می‌شود.

Alpha Side alphaside – آلفای پلی‌گون‌هایی که از دوربین دور هستند.

Alpha Rolloff rolloff – کنترل تغییر آلفا از Front به Side.

Post-Mult Color by Alpha postmultalpha – ضرب رنگ نهایی در آلفای محاسبه شده.

Mult Alpha by Light Luminance alphamultlight – ضرب آلفا در روشنایی نور برای افزایش/کاهش آن.


Parameters – Multi-Texturing Page

  • حداکثر 4 بافت و 8 مختصات بافت برای هر کدام.

  • بافت‌ها به صورت پیش‌فرض ضرب می‌شوند، اما می‌توان از GLSL سفارشی هم استفاده کرد.

Texture 1 / 2 / 3 / 4 texture1..4 – هر کدام شامل:

  • Extend U/V/W: Hold / Zero / Repeat / Mirror

  • Filter: Nearest / Linear / Mipmap Linear

  • Anisotropic Filter: Off / 2x / 4x / 8x / 16x

  • Texture Coord: uv0 تا uv7 و Screen Space

  • Coord Interpolation: Perspective Correct / Linear

GLSL Expression multitexexpr – کد GLSL برای ترکیب تصاویر بافت، می‌تواند خالی باشد که یعنی بافت‌ها فقط ضرب شوند.

Parameters – Rim Page

سایر Rim Lightها همان پارامترها را دارند و تنها شماره داخلی متفاوت است.

Rim Light rimlight – دنباله‌ای از اطلاعات Rim Light

Enable rimlight0enable – فعال‌سازی این Rim Light

Color Map rimlight0map – این نقشه رنگ Rim Light محاسبه شده را ضرب می‌کند.

  • Extend U/V/W: Hold / Zero / Repeat / Mirror

  • Filter: Nearest / Linear / Mipmap Linear

  • Anisotropic Filter: Off / 2x / 4x / 8x / 16x

Texture Coord rimlight0mapcoord – انتخاب مختصات بافت: uv0 تا uv7 یا Screen Space
Coord Interpolation rimlight0mapcoordinterp – Perspective Correct / Linear

Color rimlight0color – رنگ Rim Light

  • Red / Green / Blue → rimlight0colorr / g / b

Center rimlight0center – مرکز مکان Rim Light روی دایره ۳۶۰ درجه

Width rimlight0width – فاصله Rim Light از مرکز

Strength rimlight0strength – روشنایی Rim Light

Strength Ramp rimlight0strengthramp – انتخاب Ramp افقی که شدت Rim Light را کنترل می‌کند (v=0.5 نمونه‌برداری می‌شود)


Parameters – Advanced Page

Shadow Strength shadowstrength – کنترل میزان تأثیر سایه روی رنگ نور. ۱ = استفاده از Shadow Color، ۰ = رفتار بدون سایه

Shadow Color shadowcolor – رنگ نواحی سایه

  • Red / Green / Blue → shadowcolorr / g / b

Darkness Emit darknessemit – محاسبه روشنایی فعلی جسم و اعمال Darkness Emit Color بر نواحی تاریک

Darkness Emit Color darknessemitcolor – رنگ نواحی تاریک

  • Red / Green / Blue → darknessemitcolorr / g / b

Darkness Emit Map darknessemitmap – ضرب Darkness Emit Color

  • Extend U/V/W: Hold / Zero / Repeat / Mirror

  • Filter: Nearest / Linear / Mipmap Linear

  • Anisotropic Filter: Off / 2x / 4x / 8x / 16x

  • Texture Coord: uv0 تا uv7 یا Screen Space

  • Coord Interpolation: Perspective Correct / Linear

Secondary Specular spec2 – رنگ هایلایت ثانویه

  • Red / Green / Blue → spec2r / g / b

Secondary Shininess shininess2 – کنترل درخشندگی هایلایت ثانویه (Glossiness)

Write Camera Space Depth to Alpha writecameradepthtoalpha – نوشتن عمق فضای دوربین به کانال آلفا

Apply Point Color applypointcolor – استفاده از رنگ ورودی SOP در محاسبات نوردهی

Instance Texture instancetexture – انتخاب نوع نقشه برای Instance Texture: Color / Normal / Diffuse / Specular / Emit / Alpha / Darkness Emit / Rim Light

Color Buffer color – دنباله‌ای از بافرهای رنگ برای خروجی به Render TOP:

  • RGB, Zero, One, World Space Position, Camera Space Normal, Point Color, Texture Coord, Diffuse, Normal, Specular, Emit, etc.


Parameters – Deform Page

Deform dodeform – فعال‌سازی تغییر شکل (Deform) در این ماده

Get Bone Data deformdata – منبع داده‌های استخوان: SOP / MAT / DeformIn MAT

SOP with Capture Data targetsop – انتخاب SOP که شامل Attributes تغییر شکل است

pCaptPath Attrib pcaptpath – نام Attribute مسیر capture استخوان

pCaptData Attrib pcaptdata – مشابه pCaptPath

Skeleton Root Path skelrootpath – مسیر COMP ریشه اسکلت

MAT mat – MAT مورد استفاده برای دریافت داده‌های Deform


Parameters – Common Page

Blending – جمع کردن مقدار رنگ پیکسل جدید و پیکسل موجود در Color-Buffer. برای شبیه‌سازی شفافیت استفاده می‌شود.

  • فرمول: Final Pixel Value = (Source Blend * Source Color) + (Dest Blend * Destination Color)

Blend Operation blendop – Add / Subtract / Reverse Subtract / Minimum / Maximum

Source Color * srcblend / Destination Color * destblend – مقادیر ضرب شده برای منبع و مقصد (Source/ Dest) با گزینه‌های مختلف: Zero, One, Color, Alpha, Constant, One Minus …

Separate Alpha Function separatealphafunc – فعال/غیر فعال کردن ترکیب جداگانه آلفا

Alpha Threshold alphathreshold – مقایسه مقدار آلفای پیکسل برای تصمیم‌گیری درباره رسم شدن آن

Wire Frame wireframe – فعال/غیر فعال کردن رندر Wireframe (OpenGL یا Topology)

  • Off / OpenGL Tesselated / Topology

Line Width wirewidth – ضخامت خطوط Wireframe (پیکسل)

Cull Face cullface – انتخاب Faces برای رندر: None / Back / Front / Both / Use Render Setting

Polygon Depth Offset polygonoffset – فعال‌سازی ویژگی Offset برای جلوگیری از Z-Fighting و بهبود سایه‌ها

  • Offset Factor / Offset Units

Depth Test depthtest – فعال/غیر فعال کردن تست عمق

Depth Test Function depthfunc – Less / Less or Equal / Equal / Greater / Greater or Equal / Not Equal / Always

Write Depth Values depthwriting – نوشتن مقدار عمق پیکسل در Depth-Buffer

Discard Pixels Based on Alpha alphatest – فعال/غیر فعال کردن تست آلفا

Keep Pixels with Alpha alphafunc – تعیین پیکسل‌های نگه داشته شده بر اساس مقدار آلفا

  • Less / Less or Equal / Greater / Greater or Equal


Info CHOP Channels

اطلاعات اضافی MAT از طریق Info CHOP قابل دسترسی است

Common MAT Info Channels / Common Operator Info Channels

  • total_cooks → تعداد دفعات Cook شدن Operator

  • cook_time → مدت زمان آخرین Cook (ms)

  • cook_frame → شماره فریم آخرین Cook نسبت به Timeline

  • cook_abs_frame → شماره فریم آخرین Cook نسبت به زمان مطلق

  • cook_start_time → زمان شروع Cook در ms

  • cook_end_time → زمان پایان Cook در ms

  • cooked_this_frame → ۱ اگر Operator در این فریم Cook شده باشد

  • warnings → تعداد هشدارها

  • errors → تعداد خطاها

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