Comments (13)
Can confirm. This example using envMap
- is broken with
MeshStandardMaterial
: https://jsfiddle.net/7hdo4bsj/1/ - works with
MeshPhongMaterial
: https://jsfiddle.net/7hdo4bsj/2/
from three.js.
Works like a charm; Thanks for the quick response!
from three.js.
It should work on your Quest if you open in a new tab that uses SSL: https://fgcmdc.csb.app/
from three.js.
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.
@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.
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.
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.
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.
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?
from three.js.
Okay, so it seems it isn't a regression within r163
. I need a closer look for this one...
from three.js.
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.
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.
OK - thanks for helping. I'll investigate further.
from three.js.
Related Issues (20)
- NormalScale in USDZ Exporter HOT 7
- Please add back unit tests for addons HOT 7
- No Pointer Lock HOT 2
- Editor keeps rendering video on background even if users had stopped it HOT 4
- WARN THREE.WebGLRenderer: Image in DataTexture is too big (8192x1024). HOT 1
- copyTextureToTexture using WebGL1 function signature HOT 2
- Chrome Text Distortion When New Elements Are Added HOT 13
- Not displayed after importing 3MF and AMF files HOT 1
- OrbitControls 's change Event dispatch wrong when dampling is true HOT 1
- Documentation for TeapotGeometry (add-on) HOT 2
- Editor: Missing `User Data` input in Geometry tab HOT 1
- readRenderTargetPixels() works for WebGLRenderTarget but is all 0 for WebGL3DRenderTarget HOT 21
- Please allow FBXLoader to use every non native texture that ThreeJS can load HOT 1
- It seems like there is an issue with outputNode in connection with depthNode HOT 1
- Rendering a scene including points with an override material causes inconsistent behavior HOT 2
- Target is not updated when panning the camera in ArcballControls HOT 1
- [WebGPU] Control Access Barriers HOT 1
- Suggestion of docs improvement. HOT 1
- ShaderMaterial for Hand breaks their motion tracking in WebXR (Quest3 tested) HOT 2
- [TSL] Invalid output, missing conversion of type in some cases HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from three.js.