فهرست مستندات

افزودن مدل سه‌بعدی به یک محیط#

محیط شما رویه‌ای شروع می‌شود — جعبه، فرم و نور. وقتی یک درخت، صندلی یا تیر چراغ واقعی خواستید، یکی دانلود کنید و یک دستور بزنید. لازم نیست گرافیست سه‌بعدی باشید و لازم نیست کار با نرم‌افزار مدل‌سازی یاد بگیرید.

۱. یک مدل بگیرید#

هر پنج مورد زیر رایگان‌اند و در یک محیط منتشرشده قابل استفاده. لایسنس را روی همان صفحه‌ای که از آن دانلود می‌کنید ببینید؛ در همهٔ این‌ها نوشته شده است.

  • 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 را رد کرده — رسپی بالا را برایش بفرستید