فهرست مستندات
افزودن مدل سهبعدی به یک محیط#
محیط شما رویهای شروع میشود — جعبه، فرم و نور. وقتی یک درخت، صندلی یا تیر چراغ واقعی خواستید، یکی دانلود کنید و یک دستور بزنید. لازم نیست گرافیست سهبعدی باشید و لازم نیست کار با نرمافزار مدلسازی یاد بگیرید.
۱. یک مدل بگیرید#
هر پنج مورد زیر رایگاناند و در یک محیط منتشرشده قابل استفاده. لایسنس را روی همان صفحهای که از آن دانلود میکنید ببینید؛ در همهٔ اینها نوشته شده است.
- Quaternius — مجموعههای بزرگ low-poly با سبک گرافیکی یکدست: طبیعت، مبلمان، ساختمان. سادهترین نقطهٔ شروع.
- Poly Haven — مدلهای فوتورئال، همه CC0.
- Kenney — کیتهای کوچک، شاد و آمادهٔ بازی.
- ambientCG — بیشتر متریال، مقداری مدل، همه CC0.
- Sketchfab — بسیار بزرگ، ولی حتماً روی CC0 فیلتر کنید وگرنه نمیتوانید منتشرش کنید.
۲. دنبال چه بگردید#
- Low-poly. دهها هزار مثلث، نه میلیونها.
- متریال کم. یکی دو تا بهتر از چهل تاست؛ چهل متریال یعنی چهل draw call.
- فرمت
.glb. اگر در گزینههای دانلود بود همان را انتخاب کنید..gltfهم کار میکند. FBX و OBJ نه. - Y-up و پیوت روی پایه. مبدأ یک درخت باید همانجایی باشد که به زمین میرسد، نه وسط تاجش.
۳. در پروژه بریزیدش#
برای هر مجموعه یک پوشه داخل assets/models/ بسازید. نام پوشه نام پک میشود، پس
چیزی بگذارید که بعداً بشناسید:
assets/models/
grove/
Poplar_1.glb
Poplar_2.glb
Flower_Gazania.glb
هیچچیز این پوشه با هیچکدام از مراحل بعد تغییر نمیکند و حذف نمیشود. این نسخهٔ خودِ شماست از آنچه دانلود کردهاید.
۴. پک را بسازید#
npm run assets:pack
کل دستور همین است — بدون آرگومان. برای هر پوشه یک فایل
public/models/PACK-grove.glb مینویسد و فقط پکهایی را دوباره میسازد که فایل
منبعشان تغییر کرده باشد.
۵. چیزی که چاپ میکند را بخوانید#
grove -> public/models/PACK-grove.glb
variant primitives triangles bbox (m)
Flower_Gazania 12 1,204 0.30 x 0.40 x 0.30
Poplar_1 2 4,812 1.40 x 8.20 x 1.40
دو ستون برای شما مهم است:
- variant — نامی که در کد صدا میزنید. همان نام فایل است، پس
Poplar_1.glbمیشود variant با نامPoplar_1. - bbox (m) — اندازهٔ واقعی مدل برحسب متر. یک تبریزی باید چند متر بلند باشد.
اگر نوشت
0.02، مدل با واحد سانتیمتر خروجی گرفته شده و باید صد برابرش کنید. اگر نوشت820، باید کوچکش کنید. این را قبل از نوشتن هر کدی چک کنید؛ مدلی که مقیاسش غلط باشد بیعیب رندر میشود و دیده نمیشود.
۶. به ایجنتتان بدهید#
مسیر پک و نام variantها را به ایجنت کدنویستان بگویید و بگذارید صحنه را بنویسد:
Place five Poplar_1 and about forty Flower_Gazania from
/models/PACK-grove.glb around the clearing.
قواعدی که ایجنت باید رعایت کند — اینکه پک را چطور لود کند، کِی clone کند و کِی نمونهسازی — برایش در رسپی مدلهای سهبعدی محیط نوشته شده است. اگر پرسید، همان را نشانش بدهید.
وقتی کار نکرد#
| چیزی که میبینید | چرا | چاره |
|---|---|---|
no .glb or .gltf files — skipped | پوشه .fbx یا .obj دارد، یا .zip را باز نکردهاید | دوباره دانلود کنید و glTF/GLB بگیرید، یا در Blender تبدیل کنید |
| پک خیلی بزرگتر از بقیه است | یکی از مدلها بافت ۴K دارد | با npm run assets:pack -- --max-texture 512 دوباره بزنید و مقایسه کنید |
| مدل در دنیا دیده نمیشود | جعبهٔ مرزی مرحلهٔ ۵ خیلی کوچک یا خیلی بزرگ است | در کد صحنه با ضریبی که جدول نشان میدهد مقیاسش کنید |
| مدل به پشت خوابیده | با Z-up ساخته شده | در کد صحنه -۹۰° حول X بچرخانیدش |
| بیست ثانیه صفحهٔ سیاه، بعد خطای لود | دیکودرهای بافت نیستند | dev server را ببندید و دوباره اجرا کنید؛ predev نصبشان میکند |
| مدل در یک جا هست و از جای دیگر غیب میشود | یک شیء دو بار mount شده | ایجنت قاعدهٔ clone را رد کرده — رسپی بالا را برایش بفرستید |