PBR چیست و چرا استاندارد شده؟
قبل از PBR، تنظیم material در ۳D یک هنر تاریک بود. هر renderer خاص خودش (V-Ray، Mental Ray، Octane) فرمول متفاوت داشت. material ای که در یک render نرم به نظر میرسید، در دیگری plastic میشد. کالیبراسیون تجربی و وقتگیر بود.
PBR این مشکل را با یک مدل فیزیکی واحد حل کرد. هر سطح با چند پارامتر اساسی توصیف میشود: Albedo (رنگ پایه)، Roughness (مات/براق)، Metallic (فلز/غیرفلز)، Normal (جزئیات micro). این پارامترها در فیزیک واقعی معنادارند.
نتیجه: هر renderer که PBR را drive میکند (Unity HDRP، Unreal، Cycles، V-Ray Next، Octane) از همان maps استفاده میکند و نتیجه مشابه میدهد. material شما در همه platforms portable است.
برای صنعت گیم این یک انقلاب بود: artist میتواند material را در Substance Painter بسازد، در Unity نتیجه مشابه ببیند، و در render engine سینمایی هم همان material بهخوبی کار میکند.
انتخاب مدل PBR-ready در CGTrader
در CGTrader هنگام browse، علامت "PBR" یا "PBR-Ready" را در صفحه مدل ببینید. اما این کافی نیست - باید کیفیت maps را بررسی کنید:
۱. Maps موجود: tab "Files" مدل باید این maps را شامل شود: Albedo/BaseColor، Normal، Roughness، Metallic، AO. اگر فقط Diffuse و Normal دارد، PBR کامل نیست.
۲. Texture resolution: حداقل ۲K برای hero asset، ۴K برای close-up. مدلهایی که فقط ۱K ارائه میکنند برای game-ready خوبند اما برای cinematic ضعیف.
۳. UV layout: در tab "Wireframe" preview UV را ببینید. باید بدون overlap و efficient packed باشد. اگر UV chaotic است، maps باکیفیت دور از انتظار است.
۴. Workflow type: PBR دو workflow دارد: Metallic-Roughness (استاندارد جدید) و Specular-Glossiness (قدیمی). برای Unity HDRP و Unreal از Metallic-Roughness استفاده کنید.
۵. Format files: maps باید PNG یا EXR باشند نه JPG (JPG compression artifacts روی Normal map).
مدلهای CGTrader 5-star معمولاً تمام این الزامات را دارند. ۴-star هم اغلب قابل قبول. کمتر از ۴-star ریسک است.
Import در Substance Painter
وقتی مدل را از سازه دریافت کردید، فرآیند Substance Painter:
گام ۱ - تنظیم پروژه جدید: File → New. Template انتخاب کنید: "Metallic Roughness" یا "PBR Metallic Roughness" بسته به version. این تعیین میکند خروجی شما چه workflow استفاده میکند.
گام ۲ - import mesh: Mesh field را به فایل FBX یا OBJ مدل اشاره کنید. Document Resolution ۲۰۴۸ (برای game) یا ۴۰۹۶ (برای cinematic).
گام ۳ - bake mesh maps: کلید مهم. Texture Set Settings → Mesh Maps → Bake Mesh Maps. این بسیاری از maps automatic ایجاد میکند: AO، Curvature، Position، Normal World Space، Thickness. این maps پایه شما برای smart materials است.
گام ۴ - apply material: میتوانید smart material library SP استفاده کنید (Metal، Wood، Fabric)، یا base color خود را apply کنید. layer ها قابل ترکیب هستند.
گام ۵ - paint و detail: layer جدید بسازید، با brush detail اضافه کنید. tools مهم: Mask (gen procedural)، Decal (logo، scratches)، Smart Mask (curvature، AO based).
گام ۶ - export: File → Export Textures. Output Template انتخاب کنید: "Unity 5 (Metallic Standard)" یا "Unreal Engine 4 (Packed)". این automatic maps را در فرمت صحیح آن engine export میکند.
Output templates برای engines مختلف
Substance Painter output template ها مهمترین نکته در workflow صنعتی هستند. هر engine maps متفاوت میخواهد:
Unity 5 (Metallic Standard): Albedo، Metallic+Smoothness (one map)، Normal، AO+Detail. ۴ map. ساده برای import.
Unity HDRP: Albedo، Mask Map (Metallic+AO+Detail+Smoothness packed)، Normal، Bent Normal، Subsurface Mask. پیچیدهتر اما کاملتر.
Unreal Engine 4-5 (Packed): BaseColor، Normal، ORM Map (Occlusion+Roughness+Metallic packed). فرمت standard Unreal.
Blender Cycles/Eevee (Principled): Albedo، Normal، Roughness، Metallic، AO. فرمت open standard.
Arnold (Maya): Albedo، Normal، Roughness، Metallic، Specular. سینماییتر.
برای export سریع: استفاده از "Document channels + Normal + AO (No Alpha)" تنظیم اولیه. سپس template engine target را اعمال کنید.
فایل خروجی معمولاً در یک folder قرار میگیرد با naming convention: "ModelName_Albedo.png"، "ModelName_Normal.png"، و غیره. Drag-drop این folder در Unity یا Unreal آسان است.
تکنیکهای پیشرفته PBR
Smart Materials: SP کتابخانه ۲۰۰+ smart material دارد. هر کدام procedural rules برای دادن ظاهر طبیعی (Wood Grain، Metal Brushed، Fabric Cotton). drag-drop روی mesh و آماده.
Generators: tools برای detail عاری از noise. Edge Wear (سایش لبهها)، Dirt (آلودگی در گوشهها)، Dust (پودر سطح). based on baked maps (curvature، AO).
Anchor Points: feature پیشرفته. اجازه میدهد layer A معیار برای layer B باشد. مثلاً: rust فقط در نواحی که paint scratched off (مدل layered بسازید).
Channel Packing: optimization مهم برای game. بهجای ۵ texture جدا، RGB channel ها را combine کنید: R=AO، G=Roughness، B=Metallic. یک texture بهجای سه. ۳ برابر memory صرفهجویی.
Subsurface Scattering: برای پوست، wax، marble. SP layer SSS اضافه میکند که در HDRP و Cycles correct render میشود.
Triplanar Mapping: برای assets با UV problems (rocks، organic). projection روی ۳ axis automatic. آمده SP 2021+.
Optimization برای real-time
برای game و real-time rendering:
Texture Resolution: ۱K برای character standard، ۲K برای hero، ۵۱۲ برای background. ۴K فقط cinematic.
Compression: استفاده از BC7 (Unity) یا DXT5 (older). در صادر نیاز ندارد، Unity automatic compress میکند.
Map Reduction: گاهی AO و Normal کافی است (نه separate Roughness). اگر sharp roughness ندارید، میتوانید Roughness uniform در material قرار دهید.
Texture Atlas: چندین asset را در یک texture pack کنید. در gpu کمتر draw calls = FPS بالاتر.
Mip Maps: Unity automatic generate میکند. اطمینان حاصل کنید enabled است.
LOD textures: برای far LOD، resolution کمتر استفاده کنید (۲۵۶ یا ۱۲۸). user differences نمیبیند.
برای mobile game: ۱K maximum، ۵۱۲ متوسط، ۲۵۶ background. این کاهش تأثیر چشمگیر بر FPS دارد.
workflow کامل از CGTrader تا engine
فلوی کامل کار:
۱. خرید از CGTrader: مدل PBR-ready با ۲K+ textures. لینک در تلگرام @cults3dpay یا محاسبهگر. تحویل ۳۰ دقیقه.
۲. unzip files: فایلها معمولاً FBX/OBJ + folder textures است. structure را organize کنید.
۳. (اختیاری) modification در Substance Painter: اگر میخواهید texture خودتان (variant رنگ، logo، detail اضافه)، در SP کار کنید. اگر اصلی کافی است، این مرحله را رد کنید.
۴. import در Unity/Unreal: drag-drop folder. material setup automatic اگر naming درست است. در غیر این صورت manual setup لازم.
۵. tweaking material: در engine نهایی، با material editor تنظیمات نهایی (intensity، tiling). ممکن است نیاز به adjust roughness یا metallic value باشد.
۶. lighting test: زیر چندین لایت (سعی روی، آفتاب، نور آبی) test کنید. material خوب در همه شرایط طبیعی به نظر میرسد.
۷. profiling: در game profiler memory و draw calls را check کنید. اگر بالاست، optimization (channel packing، LOD) لازم.
این فلوی کامل ۲-۴ ساعت برای یک hero asset حرفهای میبرد. با تجربه، سرعت بیشتر میشود. توضیح کامل خرید در راهنمای CGTrader Game-Ready.