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

پشتیبانی از رندرینگ#

Environment در الامر یک مقصد وب خنثی نسبت به موتور است. می‌تواند از DOM، Canvas 2D، WebGL، WebGPU، WASM یا هر موتور قابل‌اجرای دیگری در مرورگر، از جمله Three/R3F، Babylon، PlayCanvas، Phaser، Pixi، Unity Web یا Godot Web استفاده کند. مانیفست عمومی Environment عمداً هیچ فیلد engine یا renderer ندارد.

این صفحه فقط نمایهٔ رسمی و اختیاری رندرینگ R3F با شناسهٔ al-amr.r3f-webgpu@1 را توصیف می‌کند. یک package محلی وقتی عضو این نمایه است که نام خودش @al-amr/r3f یا @react-three/fiber باشد، یا یکی از این markerها را در هر بخش dependency اعلام کند. این metadata محلیِ نویسندگی محدودهٔ سیاست renderer را تعیین می‌کند و قرارداد عمومی Environment را تغییر نمی‌دهد. conformance عمومی Environment جدا و خنثی نسبت به موتور می‌ماند.

سازگاری Plugin محدود به ترکیب است#

یک انتشار Plugin می‌تواند چند adapter رابط کاربری ارائه کند. سازگاری برای یک انتشار تغییرناپذیر Plugin، یک adapter که composition plan خود Environment صریحاً انتخاب کرده، و evidence تأییدشدهٔ قابلیت‌های یک revision دقیق از Environment تصمیم‌گیری می‌شود. R3F نمایهٔ سه‌بعدی رسمی و پیشنهادی است، نه یک الزام برای Environment یا Plugin.

adapter فقط-R3F روی میزبان عمومی نتیجهٔ ALAMR_PLUGIN_HOST_RUNTIME_INCOMPATIBLE را با گزینه‌های محدود برمی‌گرداند: انتخاب Plugin سازگار، افزودن adapter تأییدشده، یا ساخت integration تازه. این نتیجه فقط ترکیب Plugin را رد می‌کند و هرگز Environment عمومی را نامعتبر نمی‌کند. evidence ناقص، قدیمی، صرفاً ادعاشده توسط ناشر، متعارض، یا runtime ناشناخته همیشه unknown است و سازگار شمرده نمی‌شود. ادعای پشتیبانی میزبان واقعی همچنان به اجرای همان artifact بسته‌بندی‌شده در Desktop بسته‌بندی‌شده نیاز دارد؛ مصرف‌کنندهٔ Node fixture چنین evidenceای نیست.

در این نمایه، پشتیبانی بر اساس قابلیت تعریف می‌شود، هرگز بر اساس فهرست نام مرورگر: یک دستگاه وقتی پشتیبانی‌شده است که صفحه در context امن (HTTPS) اجرا شود، renderer واقعاً روی WebGPU یا WebGL2 مقداردهی شود و نخستین فریم بدون خطا رندر شود. هر Environment که این نمایه را انتخاب می‌کند ابتدا WebGPU را امتحان می‌کند و به‌صورت خودکار به WebGL2 برمی‌گردد — نویسنده backend را خودش نمی‌سازد یا انتخاب نمی‌کند. اگر بررسی زمان‌دار WebGPU نتواند adapter بگیرد، بوت به‌جای انتظار نامحدود مستقیماً با WebGL2 ادامه پیدا می‌کند. دستگاه کند همچنان پشتیبانی‌شده است؛ جهان به‌جای امتناع از آغاز، سطح کیفیت خود را پایین می‌آورد. Environmentهای دارای موتور دیگر، سیاست پشتیبانی و fallback خودشان را در همان قراردادهای میزبان و امنیت تعریف می‌کنند.

مرورگرهای آزمایش‌شده برای این نمایه#

مرورگرWebGPUfallback WebGL2وضعیت
Chrome و Edge، نسخهٔ پایدار فعلی و یک نسخهٔ اصلی پیشینبلهبلهآزمایش کامل؛ بهترین تجربه
Safari 26 و جدیدتربلهبلهآزمایش‌شده
Firefoxوابسته به پلتفرمبلهWebGPU جایی که پلتفرم فراهم می‌کند، در غیر این صورت fallback WebGL2
سایر مرورگرهای مدرنمتفاوتمعمولاًمبتنی بر قابلیت: وقتی WebGPU یا WebGL2 واقعاً مقداردهی شود پشتیبانی‌شده است

مرورگر یا دستگاهی که نه WebGPU و نه WebGL2 داشته باشد — از جمله سیستم‌های فقط-WebGL1 — نمی‌تواند جهان سه‌بعدی این نمایه را اجرا کند و صفحهٔ پشتیبانی‌نشدهٔ توصیف‌شده در ادامه را دریافت می‌کند. این وضعیت به معنی ناتوانی دستگاه در اجرای یک Environment عمومی مبتنی بر DOM یا موتور دیگری نیست. به‌روز نگه‌داشتن مرورگر مهم است: در دسترس‌بودن و پایداری WebGPU با هر انتشار بهتر می‌شود.

وقتی دستگاه پشتیبانی‌نشده است#

Environment دارای این نمایه فقط وقتی به صفحهٔ پشتیبانی‌نشده می‌رسد که هیچ مسیر گرافیکی کارکردنی برای نمایه وجود نداشته باشد:

  • صفحه از context امن (HTTPS) سرو نمی‌شود (insecure_context
  • شتاب‌دهندهٔ سخت‌افزاری گرافیک غیرفعال یا در دسترس نیست، پس نه WebGPU و نه WebGL2 می‌تواند آغاز شود (hardware_acceleration_unavailable
  • WebGPU و fallback WebGL2 هر دو در مقداردهی شکست می‌خورند (webgpu_init_failed، webgl2_unavailable، webgl2_init_failed، renderer_initialization_failed، renderer_unknown
  • دستگاه گرافیکی گم شده است — برای نمونه پس از بازنشانی درایور — و بازیابی خودکار محدود موفقیت‌آمیز نبوده است (device_lost_unrecovered).

صفحهٔ پشتیبانی‌نشده#

صفحهٔ پشتیبانی‌نشدهٔ این نمایه یک صفحهٔ DOM ساده است: هیچ بوم سه‌بعدی، پلاگین یا اتصال حضوری روی آن mount نمی‌شود و refresh آن امن است. این صفحه سازگار با راست‌به‌چپ و دوزبانه (فارسی و انگلیسی) است و این موارد را نشان می‌دهد:

  • توضیح کوتاهی از آنچه رخ داده است؛
  • گام‌های بازیابی که در ادامه فهرست شده‌اند؛
  • تلاش دوباره — تشخیص کامل را در حالت پیش‌فرض WebGPU-first دوباره اجرا می‌کند؛
  • تلاش در حالت سازگار — backend WebGL2 را پین می‌کند و در پایین‌ترین سطح کیفیت آغاز می‌شود؛ وقتی این موفق شود، انتخاب روی همین دستگاه برای بازدیدهای آینده به خاطر سپرده می‌شود؛
  • یک کد دلیل قابل‌کپی از جدول زیر — هنگام درخواست کمک آن را ذکر کنید.

کدهای دلیل#

کد دلیلمعنیچه کاری انجام دهید
insecure_contextصفحه در context امن باز نشده است.نشانی https:// را باز کنید (localhost برای توسعهٔ محلی مجاز است).
webgpu_init_failedمقداردهی WebGPU روی این دستگاه شکست خورد.مرورگر را به‌روزرسانی کنید، سپس حالت سازگار را امتحان کنید.
webgl2_unavailableWebGL2 در این مرورگر در دسترس نیست.شتاب‌دهندهٔ سخت‌افزاری را فعال و مرورگر را به‌روزرسانی کنید.
webgl2_init_failedfallback سازگار WebGL2 نیز شکست خورد.درایور گرافیک و سیستم‌عامل را به‌روزرسانی کنید.
hardware_acceleration_unavailableشتاب‌دهندهٔ سخت‌افزاری غیرفعال یا در دسترس نیست.شتاب‌دهندهٔ سخت‌افزاری را در تنظیمات مرورگر فعال کنید و مرورگر را دوباره اجرا کنید.
device_lost_unrecoveredدستگاه گرافیکی گم شد و بازیابی شکست خورد.دوباره تلاش کنید؛ اگر تکرار شد درایور گرافیک را به‌روزرسانی کنید.
renderer_initialization_failedموتور رندر مقداردهی نشد.تلاش دوباره، سپس حالت سازگار؛ مرورگر و درایور را به‌روزرسانی کنید.
renderer_unknownموتور با خطای دسته‌بندی‌نشده متوقف شد.تلاش دوباره؛ اگر ادامه یافت کد را گزارش کنید.

اول چه کاری انجام دهید#

  1. از آخرین نسخهٔ Chrome برای بهترین تجربه استفاده کنید.
  2. شتاب‌دهندهٔ سخت‌افزاری را در تنظیمات مرورگر فعال کنید و سپس مرورگر را دوباره اجرا کنید.
  3. مرورگر، سیستم‌عامل و درایور گرافیک خود را به‌روزرسانی کنید.
  4. اگر جهان همچنان آغاز نشد، روی صفحهٔ پشتیبانی‌نشده از تلاش در حالت سازگار استفاده کنید یا ?al-amr-rendering=force-webgl2 را به نشانی اضافه کنید.

این گام‌ها همان راهنمایی است که روی خود صفحهٔ پشتیبانی‌نشده نمایش داده می‌شود.

حریم خصوصی#

تشخیص رندرینگ این نمایه امن برای حریم خصوصی است. وقتی چیزی اشتباه پیش می‌رود، پلتفرم فقط می‌تواند ثبت کند کدام backend انتخاب شد (WebGPU یا WebGL2)، آیا fallback استفاده شد، سطح کیفیت، یک سطل درشت مدت مقداردهی، کد دلیل پایدار و اینکه بازیابی موفق بود یا نه. پلتفرم هرگز فروشنده یا مدل GPU شما، رشته‌های maskنشدهٔ renderer، اندازهٔ VRAM، اطلاعات خام adapter، خطاهای خام درایور یا سورسهای shader را جمع‌آوری یا نمایش نمی‌دهد. قواعد سراسری پلتفرم در اعتماد و امنیت و قرارداد فنی renderer در زمان اجرای رندرینگ آمده است.