-
-
Notifications
You must be signed in to change notification settings - Fork 251
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
BlockifyVR (Virtual Reality) #1732
base: master
Are you sure you want to change the base?
Conversation
that looks cool |
sadly i dont think that's possible to stop this. |
Does this show the same scratch 3D perspective to both eyes? |
A-frame has stereoscopic rendering built in and I've enabled it in the rendering settings, so no. This fixes some issues with visualizing depth, so the eye offset allows your brain to process the image with more clarity. Even if the matrices aren't used in the renderer, it should properly use the correct eye offset. Why do you ask, just out of curiosity? If you'd like I could add a block that disables or enables this feature, in case the Scratcher wants to build that framework themselves, which I'd doubt. Keep in mind this is still a work in progress and most of the code is many months old so it's not the most efficient way to do VR. |
Yes. At one point I tried to extend my AR extension to support AR headsets and VR as well, but the multiple eye rendering has been the main thing holding me back. I was just curious to know how you solved it. |
I believe that there can be two XRViewerPose matrices for each eye if available, according to Mozilla Docs. You might want to look into that again. It'd be great if Augmented Reality could support AR headsets such as the Oculus Quest 3 in addition to just mobile touchscreen devices. There should be a views array that can do this. An example can be seen here. Just a suggestion though. I simply think having AR headsets would be a nice update. |
This comment was marked as resolved.
This comment was marked as resolved.
I'll take a look when I have time. Thought it will probably be hard because the only kind of VR I have access to is phone-based 3DOF no controller VR. Also, do you mind giving some links, so that I can faster figure out where to look? |
This comment was marked as resolved.
This comment was marked as resolved.
As for VR testing, you wouldn't really need a VR headset. I've used Meta Quest's Immersive Web Emulator extension for testing when I didn't care to load up the entire headset. |
ah yes, I remember seeing a trailer for this on scratch. I wanted to help, but now I can't |
nvm I think I can |
This comment was marked as resolved.
This comment was marked as resolved.
Hi siskka7 it's me Thebloxers998 |
Hi, nice extension |
I took a look and have no idea. It's all code specific to AFRAME. I don't know AFRAME. AFRAME is too big and complicated for me to try to debug, especially if the only tool in my disposal is WebXR API Emulator browser extension. |
This comment was marked as resolved.
This comment was marked as resolved.
Nic3 |
This comment was marked as resolved.
This comment was marked as resolved.
thank for your very fast response |
You're welcome. I try to stay on top of things. Unfortunately I don't have a fully functional Sample Project published for you to use but if you'd like I can put the work-in-progress one on the releases page. Just let me know |
"Ready for review" Yay |
Matrix blocks don't work. Attempting to resolve. Not ready for review |
it works now .i found on quest 3 that there is down black stripe like it looks like it was flat screen folowing me (no rotation lag) but screen ends down |
yes, I'm aware that in certain contexts there is a small "black strip" at the bottom of the screen. This is a result of the Display Plane scaling logic attempting to account for the variation in aspect ratio between the Scratch stage and physical display of the Quest 3. I'm still attempting to resolve this, so the temporary and best solution is to switch the stage size to a wider aspect ratio, such as 640x360, which is by far the best for quality and performance. |
For better viewing experience, use fullscreen mode with a stage size like 800x450 for a higher resolution. This may come with a small negative performance impact. |
Progress updateSo I've fixed the really big display scaling bug but in the process of testing for release I discovered that the get matrix block doesn't work at all because of entirely incorrect implementation. Probably just a few more weeks at most before I open this up again but it's hard to say |
i found that when blocks dont work on quest 3 (not big problem for me beceause i can live withow it + we have if blocks) |
Could you please specify which blocks weren't working on Quest 3? Please note that most blocks will return nothing at all unless you're in a VR session (e.g., pressing the block to reveal its value in the editor doesn't work). They must be used properly and will only return their proper values after the This is why I needed to provide a sample project, as I haven't made the blocks return any in-editor fallbacks yet. By my testing, all blocks currently work on quest 2 except the get matrix block. |
Oh i inspected only when (key/button) pressed and i was in vr mode not in editor |
3.0 big update idea body tracking (this is just idea. i am pretty sure that this will be hard to code) |
()-rotation of headset |
Not supported by A-frame (or WebXR as far as I'm aware of) probably nobody using the extension has a full-body tracking suit and Oculus standalone full-body tracking isn't consistent.
No idea what this is about. I haven't really tested on PC VR as my main focus is standalone. The blocks seem to work fine for me and I've never seen multiple menu options selected in a scratch block. Sometimes pressing menu inputs in the oculus browser with the oculus controllers is a little tricky |
i did not mean pc vr but when i was coding this bug showed up (i use github to share projects) |
This comment was marked as resolved.
This comment was marked as resolved.
I just published a new release version here which should fix the issue with the "when button" blocks. Note that I haven't yet tested this to confirm it's working but it was working last time before I changed the inputs to accept reporters. I've reverted this change. Note that this release also brings experimental WORK IN PROGRESS changes to the "get matrix" block which SHOULD NOT be used. For now, the best alternative is to just use the default perspective projection Simple3D offers and use the "camera FOV" block with it. This will only work if you confirm your headset rotation transformations are computed in the right order (ZXY, with headset Y rotation as X and headset X rotation as Y in Simple3D, varies between renderers) |
here is my test project that logs vr input https://github.com/siskka7/siskka7/blob/main/vr%20blockify%20input%20logger.sb3 |
Let's continue this discussion here and not take up so much of the extension PR discussion on testing. this discussion already has the most comments of all the PRs |
|
Good to know, but it would still be too impractical to implement, not many would use body tracking. Hand tracking is a different story, and may come in 2.0, but even then I doubt it'd be used often as controllers are just easier and more cross-platform I'll consider it but I've already been on this extension two years so idk also "This API primarily exposes the joints of a person's body. It can be used to render an avatar in VR scenarios. It does not provide access to a full hbodynd mesh." also "Each joint space is an XRSpace, with its -Y direction pointing perpendicular to the skin, outwards from the palm, and -Z direction pointing along their associated bone, away from the wrist. This space will return null poses when the joint loses tracking." Probably doesn't support leg tracking, only torso + arms + hands |
Don't know why the "when button" blocks still aren't working... sigh I guess I have another bug to fix cuz it was working earlier |
|
Dang, but how did it end up bugging. Did you check the logic of the block |
Yes, I checked the block but it was working earlier so it was probably a dumb oversight change that broke it. I'll just go back in the commit history and see when it was working. |
BlockifyVR
This is a very-much-still-work-in-progress Virtual Reality extension I've been working on since January 27th of 2023.
The end goal is to have:
Here are some things to note:
Upcoming release plan:
v1.0-pre-alpha: Earliest version. Minimal functionality, proof-of-concept version. Not available here. Not open source.v1.0-alpha: work-in-progress. Expect significant bugs and poor performance. Should not be used.v1.0-beta: Cross-platform compatibility, major bug fixes, and optimizations have been added.v1.0-release-candidate: Current version. Feature complete. Meets standards of full release with minimal issues. During this release period, preparations for full release include gallery thumbnail, sample project, documentation, etc.
v1.0: First release. Feature complete and meets all standards of great performance, very few issues, cross-platform compatibility, and intuitive design.
v1.5: Bugfixes and optimizations. Possibly a small feature or change, such as controller vibrations.
v2.0: Big update. Most likely something like hand tracking support for some platforms. Also will include some minor bugfixes and optimizations.
v2.2: Bugfixes and optimizations.
Active Development
v1.0-release-candidate