Skip to content

Commit 6b89d53

Browse files
authored
Merge pull request #2898 from keveleigh/FixSolversAfterCoordinateChange
Add rotated transform to Solvers after glTF coordinate system update
2 parents b5c1caa + f2ae00e commit 6b89d53

File tree

3 files changed

+46
-44
lines changed

3 files changed

+46
-44
lines changed

Assets/HoloToolkit-Examples/Utilities/Prefabs/SolverExample/WristWrapper.prefab

+3-8
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ Transform:
204204
m_GameObject: {fileID: 1142712698810798}
205205
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
206206
m_LocalPosition: {x: 0, y: 0, z: 0}
207-
m_LocalScale: {x: 4, y: 4, z: 4}
207+
m_LocalScale: {x: 1, y: 1, z: 1}
208208
m_Children:
209209
- {fileID: 4739880715010660}
210210
- {fileID: 4502422720436818}
@@ -303,7 +303,6 @@ MeshRenderer:
303303
m_MotionVectors: 1
304304
m_LightProbeUsage: 1
305305
m_ReflectionProbeUsage: 1
306-
m_RenderingLayerMask: 4294967295
307306
m_Materials:
308307
- {fileID: 2100000, guid: 30d693ff62c571241b431ef4e206b09a, type: 2}
309308
m_StaticBatchInfo:
@@ -338,7 +337,6 @@ MeshRenderer:
338337
m_MotionVectors: 1
339338
m_LightProbeUsage: 1
340339
m_ReflectionProbeUsage: 1
341-
m_RenderingLayerMask: 4294967295
342340
m_Materials:
343341
- {fileID: 2100000, guid: 30d693ff62c571241b431ef4e206b09a, type: 2}
344342
m_StaticBatchInfo:
@@ -373,7 +371,6 @@ MeshRenderer:
373371
m_MotionVectors: 1
374372
m_LightProbeUsage: 1
375373
m_ReflectionProbeUsage: 1
376-
m_RenderingLayerMask: 4294967295
377374
m_Materials:
378375
- {fileID: 2100000, guid: 30d693ff62c571241b431ef4e206b09a, type: 2}
379376
m_StaticBatchInfo:
@@ -408,7 +405,6 @@ MeshRenderer:
408405
m_MotionVectors: 1
409406
m_LightProbeUsage: 1
410407
m_ReflectionProbeUsage: 1
411-
m_RenderingLayerMask: 4294967295
412408
m_Materials:
413409
- {fileID: 2100000, guid: 811899e9ec1885f4cabed7937a48efbc, type: 2}
414410
m_StaticBatchInfo:
@@ -443,7 +439,6 @@ MeshRenderer:
443439
m_MotionVectors: 1
444440
m_LightProbeUsage: 1
445441
m_ReflectionProbeUsage: 1
446-
m_RenderingLayerMask: 4294967295
447442
m_Materials:
448443
- {fileID: 2100000, guid: 64165286eff98134b82f4a6081c52d0f, type: 2}
449444
m_StaticBatchInfo:
@@ -478,7 +473,6 @@ MeshRenderer:
478473
m_MotionVectors: 1
479474
m_LightProbeUsage: 1
480475
m_ReflectionProbeUsage: 1
481-
m_RenderingLayerMask: 4294967295
482476
m_Materials:
483477
- {fileID: 2100000, guid: 30d693ff62c571241b431ef4e206b09a, type: 2}
484478
m_StaticBatchInfo:
@@ -513,7 +507,6 @@ MeshRenderer:
513507
m_MotionVectors: 1
514508
m_LightProbeUsage: 1
515509
m_ReflectionProbeUsage: 1
516-
m_RenderingLayerMask: 4294967295
517510
m_Materials:
518511
- {fileID: 2100000, guid: 30d693ff62c571241b431ef4e206b09a, type: 2}
519512
m_StaticBatchInfo:
@@ -596,6 +589,7 @@ MonoBehaviour:
596589
m_Name:
597590
m_EditorClassIdentifier:
598591
element: 6
592+
handedness: 0
599593
trackedObjectToReference: 1
600594
additionalOffset: {x: 0, y: 0, z: 0}
601595
additionalRotation: {x: 0, y: 0, z: 0}
@@ -639,6 +633,7 @@ MonoBehaviour:
639633
m_Name:
640634
m_EditorClassIdentifier:
641635
element: 6
636+
handedness: 0
642637
trackedObjectToReference: 1
643638
additionalOffset: {x: 0, y: 0, z: 0}
644639
additionalRotation: {x: 0, y: 0, z: 0}

Assets/HoloToolkit-Examples/Utilities/Scenes/SolverExamples.unity

+36-15
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ OcclusionCullingSettings:
1313
--- !u!104 &2
1414
RenderSettings:
1515
m_ObjectHideFlags: 0
16-
serializedVersion: 9
16+
serializedVersion: 8
1717
m_Fog: 0
1818
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
1919
m_FogMode: 3
@@ -39,7 +39,6 @@ RenderSettings:
3939
m_CustomReflection: {fileID: 0}
4040
m_Sun: {fileID: 0}
4141
m_IndirectSpecularColor: {r: 0.50217825, g: 0.5020953, b: 0.5018046, a: 1}
42-
m_UseRadianceAmbientProbe: 0
4342
--- !u!157 &3
4443
LightmapSettings:
4544
m_ObjectHideFlags: 0
@@ -55,10 +54,11 @@ LightmapSettings:
5554
m_EnableBakedLightmaps: 1
5655
m_EnableRealtimeLightmaps: 1
5756
m_LightmapEditorSettings:
58-
serializedVersion: 10
57+
serializedVersion: 9
5958
m_Resolution: 2
6059
m_BakeResolution: 40
61-
m_AtlasSize: 1024
60+
m_TextureWidth: 1024
61+
m_TextureHeight: 1024
6262
m_AO: 0
6363
m_AOMaxDistance: 1
6464
m_CompAOExponent: 1
@@ -311,7 +311,6 @@ MeshRenderer:
311311
m_MotionVectors: 1
312312
m_LightProbeUsage: 1
313313
m_ReflectionProbeUsage: 1
314-
m_RenderingLayerMask: 4294967295
315314
m_Materials:
316315
- {fileID: 2100000, guid: 67dd3ea9a59f8fb48a5a4a7d10f2a97f, type: 2}
317316
m_StaticBatchInfo:
@@ -547,7 +546,6 @@ MeshRenderer:
547546
m_MotionVectors: 1
548547
m_LightProbeUsage: 1
549548
m_ReflectionProbeUsage: 1
550-
m_RenderingLayerMask: 4294967295
551549
m_Materials:
552550
- {fileID: 2100000, guid: 67dd3ea9a59f8fb48a5a4a7d10f2a97f, type: 2}
553551
m_StaticBatchInfo:
@@ -637,7 +635,6 @@ MeshRenderer:
637635
m_MotionVectors: 1
638636
m_LightProbeUsage: 1
639637
m_ReflectionProbeUsage: 1
640-
m_RenderingLayerMask: 4294967295
641638
m_Materials:
642639
- {fileID: 2100000, guid: 67dd3ea9a59f8fb48a5a4a7d10f2a97f, type: 2}
643640
m_StaticBatchInfo:
@@ -722,7 +719,6 @@ MeshRenderer:
722719
m_MotionVectors: 1
723720
m_LightProbeUsage: 1
724721
m_ReflectionProbeUsage: 1
725-
m_RenderingLayerMask: 4294967295
726722
m_Materials:
727723
- {fileID: 2100000, guid: 67dd3ea9a59f8fb48a5a4a7d10f2a97f, type: 2}
728724
m_StaticBatchInfo:
@@ -981,7 +977,6 @@ MeshRenderer:
981977
m_MotionVectors: 1
982978
m_LightProbeUsage: 1
983979
m_ReflectionProbeUsage: 1
984-
m_RenderingLayerMask: 4294967295
985980
m_Materials:
986981
- {fileID: 2100000, guid: 67dd3ea9a59f8fb48a5a4a7d10f2a97f, type: 2}
987982
m_StaticBatchInfo:
@@ -1066,7 +1061,6 @@ MeshRenderer:
10661061
m_MotionVectors: 1
10671062
m_LightProbeUsage: 1
10681063
m_ReflectionProbeUsage: 1
1069-
m_RenderingLayerMask: 4294967295
10701064
m_Materials:
10711065
- {fileID: 2100000, guid: 67dd3ea9a59f8fb48a5a4a7d10f2a97f, type: 2}
10721066
m_StaticBatchInfo:
@@ -1488,6 +1482,38 @@ Prefab:
14881482
propertyPath: m_RootOrder
14891483
value: 1
14901484
objectReference: {fileID: 0}
1485+
- target: {fileID: 114148732877180316, guid: c484e6b755f90bd4eaa30a97ddeecfc1,
1486+
type: 2}
1487+
propertyPath: m_Enabled
1488+
value: 0
1489+
objectReference: {fileID: 0}
1490+
- target: {fileID: 114065663948585220, guid: c484e6b755f90bd4eaa30a97ddeecfc1,
1491+
type: 2}
1492+
propertyPath: m_Enabled
1493+
value: 0
1494+
objectReference: {fileID: 0}
1495+
- target: {fileID: 114675429442830900, guid: c484e6b755f90bd4eaa30a97ddeecfc1,
1496+
type: 2}
1497+
propertyPath: m_Enabled
1498+
value: 0
1499+
objectReference: {fileID: 0}
1500+
- target: {fileID: 114044496379295336, guid: c484e6b755f90bd4eaa30a97ddeecfc1,
1501+
type: 2}
1502+
propertyPath: m_Enabled
1503+
value: 0
1504+
objectReference: {fileID: 0}
1505+
- target: {fileID: 4379708329699554, guid: c484e6b755f90bd4eaa30a97ddeecfc1, type: 2}
1506+
propertyPath: m_LocalScale.x
1507+
value: 4
1508+
objectReference: {fileID: 0}
1509+
- target: {fileID: 4379708329699554, guid: c484e6b755f90bd4eaa30a97ddeecfc1, type: 2}
1510+
propertyPath: m_LocalScale.y
1511+
value: 4
1512+
objectReference: {fileID: 0}
1513+
- target: {fileID: 4379708329699554, guid: c484e6b755f90bd4eaa30a97ddeecfc1, type: 2}
1514+
propertyPath: m_LocalScale.z
1515+
value: 4
1516+
objectReference: {fileID: 0}
14911517
m_RemovedComponents: []
14921518
m_ParentPrefab: {fileID: 100100000, guid: c484e6b755f90bd4eaa30a97ddeecfc1, type: 2}
14931519
m_IsPrefabParent: 0
@@ -1522,7 +1548,6 @@ MeshRenderer:
15221548
m_MotionVectors: 1
15231549
m_LightProbeUsage: 1
15241550
m_ReflectionProbeUsage: 1
1525-
m_RenderingLayerMask: 4294967295
15261551
m_Materials:
15271552
- {fileID: 2100000, guid: 67dd3ea9a59f8fb48a5a4a7d10f2a97f, type: 2}
15281553
m_StaticBatchInfo:
@@ -1719,7 +1744,6 @@ MeshRenderer:
17191744
m_MotionVectors: 1
17201745
m_LightProbeUsage: 1
17211746
m_ReflectionProbeUsage: 1
1722-
m_RenderingLayerMask: 4294967295
17231747
m_Materials:
17241748
- {fileID: 2100000, guid: 67dd3ea9a59f8fb48a5a4a7d10f2a97f, type: 2}
17251749
m_StaticBatchInfo:
@@ -1985,7 +2009,6 @@ MeshRenderer:
19852009
m_MotionVectors: 1
19862010
m_LightProbeUsage: 1
19872011
m_ReflectionProbeUsage: 1
1988-
m_RenderingLayerMask: 4294967295
19892012
m_Materials:
19902013
- {fileID: 2100000, guid: 67dd3ea9a59f8fb48a5a4a7d10f2a97f, type: 2}
19912014
m_StaticBatchInfo:
@@ -2302,7 +2325,6 @@ MeshRenderer:
23022325
m_MotionVectors: 1
23032326
m_LightProbeUsage: 1
23042327
m_ReflectionProbeUsage: 1
2305-
m_RenderingLayerMask: 4294967295
23062328
m_Materials:
23072329
- {fileID: 2100000, guid: 67dd3ea9a59f8fb48a5a4a7d10f2a97f, type: 2}
23082330
m_StaticBatchInfo:
@@ -2502,7 +2524,6 @@ MeshRenderer:
25022524
m_MotionVectors: 1
25032525
m_LightProbeUsage: 1
25042526
m_ReflectionProbeUsage: 1
2505-
m_RenderingLayerMask: 4294967295
25062527
m_Materials:
25072528
- {fileID: 2100000, guid: 67dd3ea9a59f8fb48a5a4a7d10f2a97f, type: 2}
25082529
m_StaticBatchInfo:

Assets/HoloToolkit/Utilities/Scripts/Solvers/SolverHandler.cs

+7-21
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public TrackedObjectToReferenceEnum TrackedObjectToReference
4646
if (trackedObjectToReference != value)
4747
{
4848
trackedObjectToReference = value;
49-
TransformTarget = null;
49+
OnControllerLost();
5050
AttachToNewTrackedObject();
5151
}
5252
}
@@ -66,7 +66,7 @@ public Vector3 AdditionalOffset
6666
set
6767
{
6868
additionalOffset = value;
69-
UpdateOffsetTransform();
69+
TrackTransform(TransformTarget);
7070
}
7171
}
7272

@@ -76,7 +76,7 @@ public Vector3 AdditionalRotation
7676
set
7777
{
7878
additionalRotation = value;
79-
UpdateOffsetTransform();
79+
TrackTransform(TransformTarget);
8080
}
8181
}
8282

@@ -202,24 +202,7 @@ public virtual void AttachToNewTrackedObject()
202202

203203
private void TrackTransform(Transform newTrackedTransform)
204204
{
205-
if (RequiresOffset())
206-
{
207-
TransformTarget = MakeOffsetTransform(newTrackedTransform);
208-
}
209-
else
210-
{
211-
TransformTarget = newTrackedTransform;
212-
}
213-
}
214-
215-
private bool RequiresOffset()
216-
{
217-
return AdditionalOffset.sqrMagnitude != 0 || AdditionalRotation.sqrMagnitude != 0;
218-
}
219-
220-
private void UpdateOffsetTransform()
221-
{
222-
TransformTarget = MakeOffsetTransform(TransformTarget);
205+
TransformTarget = MakeOffsetTransform(newTrackedTransform);
223206
}
224207

225208
private Transform MakeOffsetTransform(Transform parentTransform)
@@ -233,6 +216,9 @@ private Transform MakeOffsetTransform(Transform parentTransform)
233216
transformWithOffset.transform.localPosition = AdditionalOffset;
234217
transformWithOffset.transform.localRotation = Quaternion.Euler(AdditionalRotation);
235218
transformWithOffset.name = string.Format("{0} on {1} with offset {2}, {3}", gameObject.name, TrackedObjectToReference.ToString(), AdditionalOffset, AdditionalRotation);
219+
// In order to account for the reversed normals due to the glTF coordinate system change, we need to provide rotated attachment points.
220+
transformWithOffset.transform.Rotate(0, 180, 0);
221+
236222
return transformWithOffset.transform;
237223
}
238224

0 commit comments

Comments
 (0)