تولید محتوای سهبعدی همواره یکی از گلوگاههای پرهزینه در بازیسازی، جلوههای ویژه و شبیهسازی بوده است. کمبود مجموعهدادههای تمیز سهبعدی و حجم محاسباتی سنگین شبکههای واکسل، ساخت مستقیم مدلها را دشوار میکرد. ظهور پاشش گاوسی سهبعدی (3D Gaussian Splatting) در سال 2023 و ترکیب آن با مدلهای دیفیوژن چندنما، این معادله را به نفع توسعهدهندگان تغییر داد.
در معماریهای جدید، ابتدا تصاویر چندنما با مدلهای دیفیوژن دوبعدی ساخته میشوند و سپس به کمک روشهای بازسازی سریع یا برازش پاشش گاوسی، داراییهای سهبعدی با متریال واقعی (PBR) تولید میشوند. این رویکرد به شما اجازه میدهد تا بدون نیاز به پایپلاینهای پیچیدهی قدیمی، مستقیماً از یک متن یا تکعکس به خروجی مناسب موتورهای بازی برسید.
برای اجرای تستها و آموزش مدلهای کامل، دسترسی به کارتهای گرافیک قدرتمند ضروری است؛ از آنجا که اجارهی GPUهای ابری خارجی به دلیل محدودیتهای پرداخت ارزی و دسترسی برای کاربران داخل ایران چالشبرانگیز است، در این درس پیادهسازی مفهومی پاشش گاوسی را در قالب یک شبیهسازی دوبعدی ساده و سبک بررسی میکنیم که روی هر سیستمی بهراحتی اجرا میشود.
دنیای سهبعدی جایی است که اهرم تبدیل دوبعدی به سهبعدی بیشترین قدرت را دارد. دستاورد بزرگ سال 2023، پاشش گاوسی سهبعدی (3D Gaussian Splatting) بود. در ادامهی این مسیر، موج فناوریهای زاینده در سالهای 2024 تا 2026 با سوار کردن مدلهای دیفیوژن چندنما (multi-view diffusion) روی بازسازی سهبعدی، تولید اشیا و صحنهها را تنها با یک پرامپت (prompt) یا عکس ممکن کرد.
صورت مسئله
کار با محتوای سهبعدی دردسرساز است:
- بازنمایی (Representation): مِشها، ابر نقاط (point clouds)، شبکههای واکسل (voxel grids)، توابع علامتدار فاصله (SDFs)، میدانهای تابش عصبی (NeRFs) و گاوسیهای سهبعدی؛ هرکدام معایب و مزایای خود را دارند.
- کمبود داده: مجموعهدادهی ImageNet حدود 14 میلیون تصویر دارد، درحالیکه بزرگترین مجموعهدادهی تمیز سهبعدی (Objaverse-XL، سال 2023) نزدیک به 10 میلیون شیء دارد که اکثرشان هم بیکیفیت هستند.
- حافظه: یک شبکهی واکسل 512³ شامل 128 میلیون واکسل است؛ یک مدل نرفِ کاربردی برای یک صحنه، به 1 میلیون نمونه در ازای هر پرتو نیاز دارد. تولید سهبعدی بسیار سختتر از بازسازی آن است.
- نظارت (Supervision): در تصویر دوبعدی پیکسلها در اختیارتان هستند؛ اما در فضای سهبعدی معمولاً چند نمای دوبعدیِ پراکنده دارید و باید آنها را به مدل سهبعدی ارتقا دهید.
فناوریهای سال 2026 این دو مسئله را از هم تفکیک کردهاند: ابتدا تصاویر چندنمای دوبعدی را با یک مدل دیفیوژن تولید میکنند و سپس یک بازنمایی سهبعدی (معمولاً پاشش گاوسی) را روی این تصاویر مینشانند (fit میکنند).
مفهوم
بازنمایی: پاشش گاوسی سهبعدی (Kerbl et al., 2023)
صحنه به شکل ابری از حدود 1 میلیون گاوسی سهبعدی نمایش داده میشود. هر گاوسی 59 پارامتر دارد: موقعیت (3)، کوواریانس (6، یا کواترنیون 4 + مقیاس 3)، شفافیت (1) و رنگ بر پایهی هارمونیکهای کروی (48 پارامتر در درجهی 3، 3 پارامتر در درجهی 0).
رندرینگ = تصویر کردن (projection) + ترکیب آلفا (alpha-compositing). بسیار سریع (حدود 100 فریم بر ثانیه با کیفیت 1080p روی کارت 4090)، مشتقپذیر و برازششده با گرادیان کاهشی (gradient descent) در برابر عکسهای واقعیِ مبنا. برازش یک صحنه روی یک GPU معمولی بین 5 تا 30 دقیقه زمان میبرد.
دو نوآوری کلیدی سالهای 2023 تا 2024 روی این پایه شکل گرفت:
- پاششهای گاوسی زاینده: مدلهایی مثل LGM، LRM و InstantMesh که ابر گاوسی را مستقیماً از یک یا چند تصویر پیشبینی میکنند.
- پاشش گاوسی چهاربعدی: گاوسیهایی با جابهجاییهای مجزا در هر فریم برای صحنههای متحرک و پویا.
دیفیوژن چندنما
تنظیم دقیق (Fine-tune) یک مدل دیفیوژنِ تصویر ازپیشآموزشدیده برای تولید چندین نمای سازگار از یک شیء بر اساس پرامپت متنی یا یک تکتصویر؛ مانند Zero123 (Liu et al., 2023)، MVDream (Shi et al., 2023)، SV3D (Stability, 2024) و CAT3D (Google, 2024). این مدلها معمولاً 4 تا 16 نما دور شیء خروجی میدهند که با پاشش گاوسی یا نرف به فرمت سهبعدی تبدیل میشوند.
پایپلاینهای متن به سهبعدی
| مدل | ورودی | خروجی | زمان |
|---|---|---|---|
| DreamFusion (2022) | متن | نرف از طریق SDS | حدود 1 ساعت به ازای هر دارایی |
| Magic3D | متن | مِش + بافت | حدود 40 دقیقه |
| Shap-E (OpenAI, 2023) | متن | سهبعدی ضمنی (implicit) | حدود 1 دقیقه |
| SJC / ProlificDreamer | متن | نرف / مِش | حدود 30 دقیقه |
| LRM (Meta, 2023) | تصویر | ترایپلین (triplane) | حدود 5 ثانیه |
| InstantMesh (2024) | تصویر | مِش | حدود 10 ثانیه |
| SV3D (Stability, 2024) | تصویر | نماهای جدید | حدود 2 دقیقه |
| CAT3D (Google, 2024) | 1 تا 64 تصویر | نرف سهبعدی | حدود 1 دقیقه |
| TripoSR (2024) | تصویر | مِش | حدود 1 ثانیه |
| Meshy 4 (2025) | متن + تصویر | مِش PBR | حدود 30 ثانیه |
| Rodin Gen-1.5 (2025) | متن + تصویر | مِش PBR | حدود 60 ثانیه |
| Tencent Hunyuan3D 2.0 (2025) | تصویر | مِش | حدود 30 ثانیه |
جهتگیری سالهای 2025 تا 2026: مدلهای مستقیم متن به مِش با متریالهای PBR، کاملاً مناسب برای موتورهای بازیسازی. بااینحال، استفاده از دیفیوژن چندنما بهعنوان مرحلهی میانی، هنوز هم بهترین بازدهی را برای اشیای عمومی دارد.
نرف (برای آشنایی با زمینه)
میدان تابش عصبی (Mildenhall et al., 2020). یک MLP بسیار کوچک (x, y, z, view direction) را میگیرد و (color, density) تحویل میدهد. رندرینگ با انتگرالگیری در امتداد پرتوها انجام میشود. کیفیت آن در سنتز نماهای جدید روشهای مبتنی بر مِش را شکست میدهد، اما رندر کردنش 100 تا 1000 برابر کندتر است. برای اغلب کاربردهای بیدرنگ (real-time)، پاشش گاوسی جایگزین آن شده؛ هرچند در پژوهشها همچنان دست بالا را دارد.
پیادهسازی
اسکریپت code/main.py یک برازش سادهی دوبعدی به روش «پاشش گاوسی» را پیاده میکند: تصویر هدفِ ساختگی (یک گرادیان نرم) را با مجموعهای از پاششهای گاوسی دوبعدی نمایش میدهیم. سپس موقعیتها، رنگها و کوواریانسها را با گرادیان کاهشی بهینهسازی (optimization) میکنیم تا با هدف تطبیق پیدا کنند. در اینجا دو عملیات محوری را میبینید: رندر در گذر رو به جلو (forward pass) یعنی پاشش + ترکیب آلفا، و برازش با گرادیان کاهشی.
گام 1: پاشش گاوسی دوبعدی
def gaussian_at(x, y, gaussian):
px, py = gaussian["pos"]
sigma = gaussian["sigma"]
d2 = (x - px) ** 2 + (y - py) ** 2
return math.exp(-d2 / (2 * sigma * sigma))
گام 2: رندر از طریق جمع زدن پاششها
def render(image_size, gaussians):
img = [[0.0] * image_size for _ in range(image_size)]
for g in gaussians:
for y in range(image_size):
for x in range(image_size):
img[y][x] += g["color"] * gaussian_at(x, y, g)
return img
در پاشش گاوسی سهبعدی واقعی، گاوسیها بر اساس عمق مرتب شده و ترکیب آلفا به ترتیب روی آنها اعمال میشود. پیادهسازی سادهی دوبعدی ما فقط آنها را جمع میزند.
گام 3: برازش با گرادیان کاهشی
for step in range(steps):
pred = render(size, gaussians)
loss = mse(pred, target)
gradients = compute_grads(pred, target, gaussians)
update(gaussians, gradients, lr)
چالشها و دامها
- ناسازگاری نماها (View inconsistency): اگر 4 نما را مستقل از هم تولید کنید و بر سر ساختار شیء توافق نداشته باشند، خروجی برازش سهبعدی تار میشود. راهحل: دیفیوژن چندنما با اتنشن (attention) مشترک.
- توهم نمای پشت (Back-side hallucination): در تبدیل تکعکس به مدل سهبعدی، مدل باید وجه نادیده را از خودش ابداع کند؛ بنابراین کیفیت نهایی نوسان شدیدی خواهد داشت.
- انفجار پاششهای گاوسی: اگر آموزش بدون قیدوبند پیش برود، به 10 میلیون پاشش میرسد و مدل بیشبرازش (overfit) میکند. استفاده از قواعد ابتکاری متراکمسازی (densification) و هرس کردن (pruning) که در مقالهی اصلی 3D-GS آمده، حیاتی است.
- مشکلات توپولوژی: مِشهایی که از میدانهای ضمنی (مانند SDFها) استخراج میشوند، اغلب حفره یا تلاقی درونی دارند. حتماً پیش از ارسال به محصول نهایی، یک ریمشر (مانند voxel remesh در Blender) اجرا کنید.
- مجوز دادههای آموزشی: دادههای Objaverse مجوزهای مختلفی دارند؛ شرایط استفادهی تجاری در مدلهای گوناگون متفاوت است.
کاربرد عملی
| کاربرد | انتخاب مناسب در سال 2026 |
|---|---|
| بازسازی صحنه از روی عکس | پاشش گاوسی (3DGS، Gsplat، Scaniverse) |
| شیء سهبعدی از روی متن برای بازیها | Meshy 4 یا Rodin Gen-1.5 (خروجی PBR) |
| تبدیل تصویر به سهبعدی | Hunyuan3D 2.0، TripoSR، InstantMesh |
| سنتز نماهای جدید از چند تصویر محدود | CAT3D، SV3D |
| بازسازی صحنههای پویا | پاشش گاوسی چهاربعدی |
| آواتار / انسان با لباس | Gaussian Avatar، HUGS |
| پژوهش / مرزهای دانش (SOTA) | هرآنچه همین هفته منتشر شده باشد |
برای استفاده در پایپلاین تولید بازی یا فروشگاه اینترنتی: ابزارهای Meshy 4 یا Rodin Gen-1.5 مِشهای PBR خروجی میدهند که مستقیماً وارد Unity یا Unreal میشوند.
تحویل پروژه
خروجی را در فایل outputs/skill-3d-pipeline.md ذخیره کنید. این مهارت مشخصات پروژهی سهبعدی را میگیرد (ورودی: متن / یک تصویر / چند تصویر؛ خروجی: مِش / پاشش گاوسی / نرف؛ کاربرد: رندر / بازی / واقعیت مجازی) و این موارد را تحویل میدهد: پایپلاین (دیفیوژن چندنما + برازش، یا مدل مِش مستقیم)، مدل پایه، سقف تعداد تکرارها، پسپردازش توپولوژی و کانالهای متریال مورد نیاز.
تمرینها
- ساده. اسکریپت
code/main.pyرا با 4، 16 و 64 گاوسی اجرا کنید. در نهایت میانگین مربعات خطا (MSE) را نسبت به تصویر هدف گزارش دهید. - متوسط. کد را برای پشتیبانی از گاوسیهای رنگی (RGB) توسعه دهید. تأیید کنید که خروجی بازسازیشده با الگوی رنگی هدف مطابقت دارد.
- سخت. با استفاده از gsplat یا Nerfstudio، یک شیء واقعی را بر اساس مجموعهای از 50 عکس بازسازی کنید. زمان برازش و مقدار نهایی معیار SSIM را روی نماهای ارزیابی گزارش دهید.
اصطلاحات کلیدی
| اصطلاح | در گفتار رایج | معنای دقیق فنی |
|---|---|---|
| 3D Gaussian Splatting | «3DGS» | نمایش صحنه بهصورت ابری از گاوسیهای سهبعدی؛ رندر مشتقپذیر به روش ترکیب آلفا. |
| NeRF | «میدان تابش عصبی» | شبکهی MLP که رنگ و چگالی را در یک نقطهی سهبعدی برمیگرداند؛ رندرینگ با انتگرالگیری پرتوها. |
| Triplane | «سه صفحهی دوبعدی» | تجزیهی فضای سهبعدی به سه شبکهی دوبعدی همراستای محورها؛ بسیار ارزانتر از شبکههای حجمی. |
| SDS | «نمونهبرداری تقطیر امتیاز» | آموزش مدل سهبعدی با استفاده از امتیاز دیفیوژن دوبعدی بهمنزلهی شبهگرادیان. |
| Multi-view diffusion | «چند نما همزمان» | مدل دیفیوژنی که دستهای از نماهای دوربینِ هماهنگ و سازگار با یکدیگر را تولید میکند. |
| PBR | «رندر مبتنی بر فیزیک» | متریال شامل کانالهای albedo، roughness، metallic و normal. |
| Densification | «رشد دادن پاششها» | قاعدهی ابتکاری در آموزش 3DGS برای تفکیک یا تکثیر پاششها در نواحی دارای گرادیان بالا. |
نکتهی فنی عملیاتی: دادههای سهبعدی هنوز بستر زیرساختی واحدی ندارند
برخلاف تصویر (دیفیوژن نهان + DiT) و ویدیو (DiT فضا-زمانی)، حوزهی سهبعدی در سال 2026 هنوز یک محیط اجرای (runtime) قالب و یکپارچه ندارد. درخت تصمیم (decision tree) تولید بر اساس شیوهی بازنمایی چندشاخه میشود:
- نرف / ترایپلین: استنتاج از نوع پیمایش پرتو (ray-marching) بههمراه یک گذر رو به جلو در MLP به ازای هر نمونه است. یک رندر 512² به میلیونها بار گذر رو به جلو در MLP نیاز دارد. باید نمونههای پرتو را بهشکل تهاجمی بچ کنید؛ تکنیکهای بهینهسازی SDPA و xformers در اینجا کاربرد دارند.
- دیفیوژن چندنما + بازسازی با LRM: پایپلاین دو مرحلهای. مرحلهی 1 (DiT چندنما) یک سرور دیفیوژن درست مانند درس 07 است. مرحلهی 2 (ترنسفورمر LRM) یک گذر رو به جلوی تکمرحلهای روی نماهاست. مشخصات تأخیر (latency) کل سیستم بهصورت «دیفیوژن + تکمرحلهای» است؛ زیرساخت سرویسدهی هر مرحله را متناسب با همین ساختار انتخاب کنید.
- SDS / DreamFusion: این روش بهینهسازی اختصاصی برای هر شیء است، نه استنتاج ساده. برای این کار باید جابهای پردازشی بسازید، نه پاسخدهندههای لحظهای درخواستها.
برای اکثر محصولات در سال 2026، رویکرد منطقی این است: «مدل دیفیوژن چندنما را در لحظهی درخواست اجرا کنید، بازسازی به 3DGS را بهصورت ناهمگام انجام دهید و فایل 3DGS را برای مشاهدهی بیدرنگ در اختیار کاربر بگذارید». این شیوه بار کاری را بهطور شفاف میان یک سرور استنتاج (inference server) سریع با GPU و یک بهینهساز آفلاینِ کُند تقسیم میکند.
برای مطالعهی بیشتر
- Mildenhall et al. (2020). NeRF: Representing Scenes as Neural Radiance Fields — مقالهی نرف (NeRF).
- Kerbl et al. (2023). 3D Gaussian Splatting for Real-Time Radiance Field Rendering — مقالهی 3DGS.
- Poole et al. (2022). DreamFusion: Text-to-3D using 2D Diffusion — روش SDS.
- Liu et al. (2023). Zero-1-to-3: Zero-shot One Image to 3D Object — مدل Zero123.
- Shi et al. (2023). MVDream — دیفیوژن چندنما.
- Hong et al. (2023). LRM: Large Reconstruction Model for Single Image to 3D — مدل LRM.
- Gao et al. (2024). CAT3D: Create Anything in 3D with Multi-View Diffusion Models — مدل CAT3D.
- Stability AI (2024). Stable Video 3D (SV3D) — مدل SV3D.
