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