Coder Social home page Coder Social logo

Comments (13)

drbct avatar drbct commented on June 14, 2024 1

Can confirm. This example using envMap

from three.js.

drbct avatar drbct commented on June 14, 2024 1

Works like a charm; Thanks for the quick response!

from three.js.

fromtheghost avatar fromtheghost commented on June 14, 2024 1

It should work on your Quest if you open in a new tab that uses SSL: https://fgcmdc.csb.app/

from three.js.

fromtheghost avatar fromtheghost commented on June 14, 2024 1

Thanks for the quick reply. Yes, I'm still seeing the distortion with that version loaded: https://yvqwqv.csb.app/

Here's the sandbox link if you want to check it over: https://codesandbox.io/p/sandbox/pmrem-threejs-forked-yvqwqv

from three.js.

Mugen87 avatar Mugen87 commented on June 14, 2024

@drbct Can you please replace all materials in your scene from MeshStandardMaterial to MeshPhongMaterial and test again? Scene.environment can't be used in this context so you have to assign the environment map to the envMap property instead. But since you said using envMap produces the same (wrong) result, it should be good for a test.

I want to clarify if PMREMGenerator breaks in XR. In might be necessary to disable XR in PMREMGenerator during the generation process. The generator is not used with MeshPhongMaterial.

from three.js.

Mugen87 avatar Mugen87 commented on June 14, 2024

Can you test with one of the build files of Mugen87@d2b06ee if the issue is fixed?

I've added a patch to PMREMGenerator that hopefully fixes its usage in XR.

from three.js.

fromtheghost avatar fromtheghost commented on June 14, 2024

Apologies if I'm misunderstanding this fix, but I'm not able to get the THREE.CubeCamera to update properly while using WebXR, and it seems to be related to the pmremVersion.

Here's a sandbox: https://codesandbox.io/p/sandbox/pmrem-threejs-fgcmdc

It's a slightly modified version of the official dynamic cube reflection example.

I've added a VR button. It renders fine on desktop. In my Meta Quest 2, it renders, but the perspective is warped and unusable.

The problem can be fixed by commenting out the MeshStandardMaterial in line 49 and uncommenting the MeshBasicMaterial in line 55, and then uncommenting line 113:

cubeCamera.renderTarget.texture.pmremVersion--;

With that, it renders fine on the Meta Quest, seemingly because the PMREM update is bypassed.

Is anyone else experiencing this? Or is using the cubeCamera to generate a dynamic envMap not supported yet in WebXR?

from three.js.

Mugen87 avatar Mugen87 commented on June 14, 2024

I can't test fiddles and codesanbox apps with a Quest since VR is not allowed inside their iFrames.

Any chances to share a standalone test application that demonstrates the issue?

@drbct Do you see any regressions in r163 with your XR apps compared to the dev version we have tested with? Is the original issue of this thread still solved with the current release?

from three.js.

Mugen87 avatar Mugen87 commented on June 14, 2024

Thanks! Indeed, I can confirm the perspective is completely broken.

Would it possible for you to make a test with this version of the build file? Does the bug disappear?

https://rawcdn.githack.com/mrdoob/three.js/d2b06eeb0ef72b54ddc0113e7bf30ba208aa2a6f/build/three.module.js

from three.js.

Mugen87 avatar Mugen87 commented on June 14, 2024

Okay, so it seems it isn't a regression within r163. I need a closer look for this one...

from three.js.

Mugen87 avatar Mugen87 commented on June 14, 2024

I can't edit the sandbox so I can't share a new link. But I suggest you remove the lines:

sphere.position.z -= 75;
cube.position.z -= 75;
torus.position.z -= 75;

You then have to move the camera away from the origin:

camera.position.z = 75;

The cube camera should be position at the location of the sphere like so:

cubeCamera.position.copy( sphere.position );

I was wondering why OrbitControls is broken in your app and the root cause is positioning the camera at the origin. I believe the side effects we see in XR could be related to the same issue.

Besides, a XR scene should honor real world scale so it's better to position the like so:

camera.position.set( 0, 1.75, 2 );

This requires a different transformation of the sphere, torus and box as well.

from three.js.

Mugen87 avatar Mugen87 commented on June 14, 2024

If the issue still persists, please file a new issue. The issue we see is unrelated to the problem originally discussed here.

from three.js.

fromtheghost avatar fromtheghost commented on June 14, 2024

OK - thanks for helping. I'll investigate further.

from three.js.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.