CubeCamera: Orient cameras right-side-up. #24921
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #3702, based on this suggestion.
CubeCamera
currently sets its cameras "upside down", by setting a negative up-axis prior to callingcamera.lookAt()
.three.js/src/cameras/CubeCamera.js
Lines 17 to 20 in 6671e7c
Doing so results in a mirroring of the rendered output in both the x-axis and y-axis.
This mirroring is required to accommodate the WebGL texture cube handedness and texture-origin conventions.
However, the same mirroring effect can be achieved by setting a negative
fov
.The advantage of applying a negative
fov
instead of rotating the camera is that sprites rendered by aCubeCamera
will now render right-side-up.Sprites which have
rotation
of zero always render right-side-up in camera space.//
Note: There will always be artifacts when a sprite straddles an edge of the top or bottom cube face. This is unavoidable.