Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add XRExperience to babylon.js #104

Open
wants to merge 862 commits into
base: testbranch
Choose a base branch
from
Open

Add XRExperience to babylon.js #104

wants to merge 862 commits into from

Conversation

impromedia
Copy link

I've tried to implement webXR in vscene.ts. It is working, but I didn't figure out how to parent the instantiated XR camera to the existing non XR camera. I've added controllers support, but we need to add actions for each button. In this version the controllers are not parented to the avatar hands in first person view like it should be. I've tested on Quest browser and it is loading fine.

vscene.ts.txt

No functional difference, just simplifies the class a little.
Remove the unnecessary "pre-scene" that was being created whilst loading the main scene.
This also fixes a bug where some objects were getting trapped in the pre-scene after it was disposed, breaking the objects.
Use "error" and "errorMessage" instead of "e", "err", or "errr".
Expand API interface names from "...Req" and "...Res" to "...Request" and "...Response".
- Rename `findErrorMsg` to `findErrorMessage`.
- Move the `findErrorMessage` function from the Metaverse module to the Debugging module.
- Update the `findErrorMessage` function.
- Convert `Log` IIFE into a class for better readability.
- Document Log methods.
- Rename log type "COMM" to "NETWORK".
- Unite MetaverseOps functions as API class.
- Update API methods documentation.
- Move `MetaverseInfoAPI` path and `MetaverseInfoResponse` interface from the APIAccount module to the APIInfo module.
- Simplify the process of fetching data from the Metaverse API.
- Remove: `P` to print all meshes to console.
- Move `Shift+/` and `resetPosition` to the KeyboardInput module.
- Rename "DomainMgr" to "DomainManager" for clarity.
- Convert DomainManager from an object literal to a static class for clarity.
- Remove unused functions, methods, types, and variables.
- Use `private` syntax instead of `#_` for clarity and consistency.
- Add TSDoc comments to all necessary class members.
- Expand and clarify all method and variable names. For example: `pD` to `domain`, and `avaMixer` to `avatarMixer`.
- Clarify all log messages.
- Make unused promises synchronous.
- Rename "MetaverseMgr" to "MetaverseManager" for clarity.
- Convert MetaverseManager from an object literal to a static class for clarity.
- Remove unused functions, methods, types, and variables.
- Use `private` syntax instead of `#_` for clarity and consistency.
- Add TSDoc comments to all necessary class members.
- Convert AudioIO to a static class.
- Use `private` syntax instead of `$` for clarity.
- Add TSDoc comments to all necessary class members.
- Remove unused methods.
- Create AudioLevel UI component to simplify displaying the mic input level.
- Convert AvatarStoreInterface from an object literal to a static class for clarity.
- Add TSDoc comments to all class members.
- Rename "AvatarEntry" and "AvatarEntryMap" interfaces to "AvatarModel" and "AvatarModelMap" for clarity.
- Add TSDoc comments to all necessary component methods.
- Remove unused component methods.
- Clarify method names.
- Simplify component logic.
- Ensure consistent formatting:
  - Style-Template-Script for all components.
  - `return {};` syntax for data and setup options to ensure consistent handling of `this`.
  - One blank line between all component options for clarity.
- Convert Utility from an object literal to a static class for clarity.
- Clarify variable and method names.
- Add TSDoc comments to all methods.
digisomni and others added 30 commits April 4, 2024 19:18
Toolbar button to release web entity input focus.
Signed-off-by: Kalila <[email protected]>
Added a config variable for hiding in-world position and rotation.
Fix collisions due to bad mapping of shape types.
…a World SDK. (#223)

* Update vircadia-world

* Minor improvements [pre-overhaul]

* Update vircadia-world-sdk structure.

* Remove Igloo experimental support.

* Bump vers number, also bump all packages (major).

* Fix keyword import, comment out Vircadia World init for now.

* Improve styling for light/dark modes.

* Improve log styling.

* Fix color issues with console. (color not working yet)
* Bump packages; add other packages; update paths for SDK.

* Update paths and include paths.

* Mild refactor; begin adding Script functionality.

* Scripting works now.

* Make skybox not pickable.

* Fix scripting timing.

* Bump Babylon to 7.27.0

* Remove unused code.

* Fix desktop build.

* Bump node vers for desktop build 16 -> 20

* WIP

* Revert "WIP"

This reverts commit 7b218d6.

* Update how avatars are handled.
* unparent skybox from zone

Skybox is no longer attached to zone and now displays behind everything else as "infinite." This is one step towards allowing for multiple zones to work properly.

* Fixed a repeated typo across multiple files

- changed entity.copyFormPacketData(props) to entity.copyFromPacketData(props) in multiple files
- changed `"Receive entity data:`, data)" to "Receive entity data:", data.length.toString())"

* Add compound shape url handling to zone entity.

* Added initial mesh to Zones

- each zone now has a child mesh matching dimensions. Used "shapeType" so that we can change the mesh later for custom shapes.

* Set skybox to a fixed distance of 10000

-skybox set to 10000 instead of pulling the zone dimensions

* redirected sara.glb to local file

-we were loading this file from a server rather than from the local copy (which was already in the assets folder).

* Zone now detects when MainCamera is within it's bounds

-detections for when a camera exists or enters a zone.

* Fixed "undefined" ZoneEntityController name

ZoneEntityController will now get it's suffix and ID from it's parent Zone

* Add timer to Zone check

- Instead of checking which zone we are in every frame, I've set the timer to every 200ms for the time being.

* Fixed small bugs to reduce start warnings

-minor bugfixes
-some defined but unused elements commented out with TODO

* Reverting changes

-pushed at the wrong stage. Whoopsie.

* Initial support for multiple zones added

-you can now have multiple zones that will switch skybox backgrounds and settings depending on which zone's bounding box/shape the camera within at the time.

* Zone Properties & Skybox Sync

-Switching of Zone Properties and the display of skyboxes are now on the same timer found in ZoneManager.ts

* -foundation for compound mesh shaped zones

-This lays the foundation for being able to use a glb file as your zone shape.

* Custom compound mesh for zones now working

-you can now enter a compound URL (glb) and use this to control the shape of your zone.

* Added option to disable bevels and regain 15-20 fps

-created "const enableBevels" Bool and set default to "false" for the time being.

* Added the option to enable or disable alpha effects on nametags/labels

added new "const enableAlpha " property and switched off transparency effects on labels as default.

* Attempt to fix macOS build.

---------

Co-authored-by: Aitolda <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants