File tree Expand file tree Collapse file tree 1 file changed +9
-8
lines changed Expand file tree Collapse file tree 1 file changed +9
-8
lines changed Original file line number Diff line number Diff line change @@ -682,23 +682,24 @@ export function createXRStore<T extends XRElementImplementations>(options?: XRSt
682
682
if ( currentLayers == null ) {
683
683
return
684
684
}
685
- //sort by distance to camera
685
+ //layer sorting
686
686
const xrCamera = xrManager . getCamera ( )
687
687
xrCamera . getWorldPosition ( cameraWorldPosition )
688
688
; ( layerEntries as Array < XRLayerEntry > ) . sort ( ( entryA , entryB ) => {
689
+ const renderOrderDifference = entryA . renderOrder - entryB . renderOrder
690
+
691
+ //if renderOrder is the same, sort by distance to camera
692
+ if ( renderOrderDifference !== 0 ) {
693
+ return renderOrderDifference
694
+ }
695
+
689
696
entryA . object3D . getWorldPosition ( tempLayerWorldPosition )
690
697
const distA_sq = tempLayerWorldPosition . distanceToSquared ( cameraWorldPosition )
691
698
692
699
entryB . object3D . getWorldPosition ( tempLayerWorldPosition )
693
700
const distB_sq = tempLayerWorldPosition . distanceToSquared ( cameraWorldPosition )
694
701
695
- const depthDifference = distB_sq - distA_sq
696
-
697
- //if the distance is the same, fall back to renderOrder
698
- if ( Math . abs ( depthDifference ) < 0.00001 ) {
699
- return entryA . renderOrder - entryB . renderOrder
700
- }
701
- return depthDifference
702
+ return distB_sq - distA_sq
702
703
} )
703
704
let changed = false
704
705
const layers = layerEntries . map < XRLayer > ( ( { layer } , i ) => {
You can’t perform that action at this time.
0 commit comments