-
Notifications
You must be signed in to change notification settings - Fork 248
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 |
It looks cool on the flat screen right now, but it's not so great when you try it. You'd probably get motion sickness. I'm still working on it. |
sadly i dont think that's possible to stop this. |
This comment was marked as off-topic.
This comment was marked as off-topic.
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. |
@Xeltalliv Your extensions are good quality and you seem to know what you're doing with WebXR. I've looked at the code like 100 times. Do you mind taking a peek at the left-controller-manager and right-controller-manager A-frame components? Pressing any button significantly drops the FPS even without calling the event hat block. Additionally, pressing any button on the right controller returns its left controller counterparts except for X, Y, A, and B on Oculus Quest. Just asking for another pair of eyes, that's all. I've asked other developers I know and I've asked ChatGPT and I've referenced the A-frame docs and everything looks fine to me, I just can't narrow down the issue. |
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? |
Ok, no problem! I wasn't asking you to test the extension, and Google Cardboard-like devices aren't supported by it anyway, so you're fine, don't worry about it. As for the links, do you mean the XRViewerPose Mozilla Developer Docs links or the links to my controller code? Because as of right now the latest version of my extension is only available on private GitHub repo accessible only to me. You could always just view the added BlockifyVR.js commit here and scroll down to the [hand]-controller-component blocks of code. Just a note though, it does include the entire minified A-frame library, so it might lag your browser a bit. |
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.
This comment was marked as resolved.
This comment was marked as resolved.
Hi siskka7 it's me Thebloxers998 |
This comment was marked as resolved.
This comment was marked as resolved.
Not a supported event listener by A-frame, but I could look into adding it. Might be a bit more difficult though. Other platforms support a similar button, but Quest doesn't. Right now I'm kind of focused on fixing bugs and working on a release candidate rather than adding new features, but that doesn't stop small features like this from making it into beta. |
How do people get the extension |
I'll try to post a link after every commit for the latest file. You can see the commit above here. Alternatively, you can also just use this Simple3D Engine VR.zip file for testing as it can be imported into Turbowarp like a normal scratch project. It has the commit above included, but it will not be automatically updated as I push more commits here. |
Known bugs that need fixing before v1.0-release-candidate:
The above issues both return
I have no idea how to fix these. These issues will take some time, so I expect Beta to last at least a few more weeks before they can be fixed. |
It says "must be an instance of Node" I think you should make it an instance of node |
I think I figured that part out |
Ok |
I'm committed to keeping you guys updated, so here we go again: |
Nice 👍 |
Ideas I have Block: animate [object] with [animation] |
You could use keyframes |
Just remember, it will take a long time! |
Those ideas will not be added. This extension isn't a 3D engine, it's a framework for integrating VR functionality into other already existing 3D engines. Because of this, collision detection and animations should be managed by the project, not the extension. |
Fixes multiple issues where attempting to create a my block or change editor settings crashed the page. Also changes some controller connected blocks and adds a new when controller connected event hat.
I think you can add key simulation to controlers |
And if vr is in standby? |
??? |
Let's try to avoid minuscule feature updates while in beta unless they improve the core functionality of the extension, like button touch detection. For now I'm focused on bug fixing, optimizations, and preparing for release. |
Change display resolution that could make something faster idk or turbomode mode |
power button |
Progress UpdateI know you’re patiently waiting, but I’m taking longer than expected to complete my job. I’m finalizing some things and working on a major issue before moving into release candidate mode. I hope to do this before the end of the year, but no promises. I’ve added blocks for managing rendering settings, including high refresh rate, stereoscopy, foveation level, and exposure. The last exposure option mitigates an issue where the immersive experience stage texture was brighter than the original source image. I’m still testing, so there’s no commit yet. It’ll likely be several more weeks (or months) before we open this PR for review. The plan is to prepare this release as soon as possible without losing my sanity. Once ready, the PR will be opened for review. During the review period, the version will be v1.0-release-candidate. Once approved, it’ll be v1.0 (the first public release). To the reviewers: TL;DR: I'm still working on it and making updates, but it’ll take a bit longer than expected. |
I think I may have found a theoretically plausible solution to the display scaling issues, but I'll have to check it out tomorrow. More likely it won't work than it will, but it's worth a shot. |
i have a simple idea from Static Dropdown to Circle Dropdown (from square to circle dropdown ).for easier coding.in circele dropdown i can put variables in it. |
Some blocks have these, other blocks do not. For example, button blocks do, but enter/exit VR does not. This really depends on the kinds of functions the blocks do and when a variable would be most needed. If you have specific blocks that need reporter input capabilities, let me know, I'll add it if I deem it necessary. |
I'm still working on attempting to resolve this issue. I've already made several different tests of probable solutions and none of them worked. I'm back to the drawing board and will need to take a short break before I put my brain cells to work again. |
tell when you will start work |
Probably after Christmas break. I just need a week or two to clear the fog in my brain and then I'll get back to it. |
This is a very-much-still-work-in-progress Virtual Reality extension I've been working on since January of 2023.
The end goal is to have:
Right now, it meets most of these standards, but there's always room for improvement.
Here are some things to note:
Upcoming release plan:
v1.0-pre-alpha: Earliest version, showcased in the video above. 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: Current version. Cross-platform compatibility, major bug fixes, and optimizations have been added.
v1.0-release-candidate: Feature complete. Meets standards of full release with minimal issues, includes preparations for full release. This means 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-beta