وب وی آر

**WebVR** یک رابط برنامه‌نویسی کاربردی تجربی جاوا اسکریپت است که پشتیبانی از دستگاه‌های واقعیت مجازی مانند HTC Vive ,Oculus Rift , Google Cardboard یا OSVR را در مرورگر وب ایجاد می‌کند.

این API با اهداف زیر طراحی شده‌است:
* توانایی شناسایی دستگاه‌های واقعیت مجازی را داشته باشد.
* امکانات و توانایی‌های دستگاه واقعیت مجازی را بررسی کند.
* موقعیت و جهت دستگاه واقعیت مجازی را تشخیص دهد.
* تصاویر را با فریم ریت مناسب نمایش دهد.

## تاریخچه
WebVR ابتدا در بهار ۲۰۱۴ توسط ولادیمیر Vukićević از موزیلا معرفی شد. مشارکت کنندگان در این پروژه عبارتند از: Brandon Jones , Boris Smus و افراد دیگری از تیم موزیلا. در ۱ مارس ۲۰۱۶, تیم VR موزیلا و تیم گوگل کروم انتشار پروپوزال نسخه 1.0 WebVR API را اعلام کردند. بازسازی API پیشرفت‌های بسیاری برای WebVR به ارمغان آورد.

آخرین نسخه تگ شده 1.1 است که آخرین ویرایش آن در۵ مارس۲۰۱۷ انجام شده‌است. ویرایشگران این نسخه اعضای تیم موزیلا و گوگل بودند البته افرادی از تیم مایکروسافت هم به آنها ملحق شدند و به صورت فعال در نوشتن نسخه ۲٫۰ رابط کاربردی برنامه‌نویسی webvr مشارکت می‌کنند.

## طراحی
Api مربوط به webvr با چند رابط کاربردی جدید (مثل webvr display یا webvr pose) که اجازه می‌دهند نرم افزارهای تحت وب، محتوای واقعیت مجازی را توسط WebGL و با تنظیمات لازم دوربین و فعل و انفعالات دستگاه (مثل controller یا point of view) نمایش دهند.
ءApi از چند راه مشخص پیروی می‌کند که بسیار مشابه سایر Apiهای نفوذی مثل Geolocation API است.
گام‌های ضروری شامل:
# درخواست بررسی لیست دستگاه‌های واقعیت مجازی موجود
# بررسی اینکه آیا دستگاه مورد نظر از ویژگی نمایشی که نرم‌افزار احتیاج دارد، پشتیبانی می‌کند
# اگر بله، نرم‌افزار توانایی واقعیت افزوده را به کاربر نمایش می‌دهد
# کاربر حرکتی که نشان دهنده تمایل به ورود به حالت vr است را انجام می‌دهد
# درخواست شروع جلسه ای برای نماش محتوای vr داده می‌شود.
# حلقه ای که به تولید فریم‌های گرافیکی که روی دستگاه واقعیت مجازی به نمایش در می‌آید شروع می‌شود.
# تا وقتی که کاربر تمایل به خروج از حالت vr داشته باشد، حلقه ادامه پیدا می‌کند
# پایان جلسه vr

## پشتیبانی
Webvr ۱٫۰ در حال حاضر در نسخه منتشر شده ۵۵+ فایر فاکس برای ویندوز (فقط ورژن ۶۴ بیت) و در کروم برای اندروید به عنوان منبع آزمایشی پشتیبانی می‌شود، یعنی، برنامه نویسان برای فعال کردن webvr به صورت یکپارچه بایستی درخواست یک کلید عبور (token) بکنند و ان را به وبسایتشان اضافه کنند. Webvr1.1 در ساخت 15002 Microsoft Edge و در Samsung Internet, Chromium, Servo و Oculus Carmel. پشتیبانی می‌شود. d

کروم برای ویندوز در ساخت مخصوصی webvr 1.1 را پشتیبانی می‌کند. اگر تنظیمات توسط کاربر فعال شده باشد، فایرفاکس ۵۵+ برای ویندوز از webvr در macos پشتیبانی می‌کند.

## Notable uses
* IdeaSpaceVR is an open source content management system with an API to create VR themes in order to create, publish and manage VR experiences.
* Rodin (VR) enables creation and deployment of virtual reality experiences cross-platform using just JavaScript.
* JanusVR JanusVR is a suite of software that makes it simple to create, share and experience spatially rich internet content.
* A-Frame (VR) is an open-source web framework for building VR experiences with HTML from Mozilla.
* Archilogic has successfully used WebVR to produce 3D models that can be visited in virtual reality.
* Blend4Web is used for authoring WebVR-based applications such as heritage reconstruction and games.
* Kokowa: Kokowa is a webVR publishing platform aimed at non-programmers. It provides a drag and drop editor to build and share webVR experiences on the web and on social media.
* Goocreate: Goo Create is a cloud based 3D WebGL content creation editor. It can be used to create games, ads, campaign websites product showcases and scientific visualizations that run in a web browser.
* PlayCanvas: PlayCanvas is an open source 3D game engine/interactive 3D application engine.
* Vizor: Vizor is a platform for creating and sharing VR content on the web.
* Sketchfab: allows people to display and share 3D content online. It provides a 3D model viewer that allows the display of 3D models on any mobile, desktop webpage or VR headset.
* X3DOM: is an open-source framework and runtime for 3D graphics on the Web including WebVR. It leverages X3D, the current ISO open standard for web3D.
* Within: Extraordinary storytelling in Virtual Reality. Choose and watch many movies from the Within catalog in WebVR.

## تکنولوژی‌های مشابه
هرچند webvr به عنوان یک api منحصر به فرد است، اپلیکیشنهای نیتیو ای روی سخت‌افزارهای زیادی وجود دارد که قابلیت دسترسی به شبکه و دسترسی به محتوای وب را می‌دهد. چندین ابزار کلیدی مثل unity و بلندر قابلیت دادن خروجی محتوای وب را دارند و به کاربران این امکان را می‌دهند که از محتوای آنها بدون نصب اپلیکیشن اختصاصی استفده کنند.

## منابع

رده:اچ‌تی‌ام‌ال۵
رده:واقعیت مجازی