Closed antont closed 11 years ago
Can you output the data that comes out of node->_getDerivedPosition(), node->_getDerivedOrientation(), node->_getDerivedScale() on those systems?
Below is a traceback, comes from sound listener, which has scale 0.
Got a hint from Jarkko, this can be due to locale -- finnish numeric local breaking txml reading. We confirm now still.. INDEED! Doing this helped, no warnings, and materials show \o/
LC_NUMERIC=C ./Tundra --file scenes/EntityMoveTest/scene.txml --server
without this got when system setting was: LC_NUMERIC=fi_FI.UTF-8
This is a duplicate of issue #473
#3 0x00007ffff2b791b2 in __assert_fail () from /lib/x86_64-linux-gnu/libc.so.6
#4 0x000000000054c03b in float3x4::Decompose (this=0x7fffffffce80, translate=..., rotate=..., scale=...)
at /home/ubiuser/src/naali/src/Core/Math/Math/float3x4.cpp:1387
#5 0x000000000054e36a in float3x4::Decompose (this=0x7fffffffce80, translate=..., rotate=..., scale=...)
at /home/ubiuser/src/naali/src/Core/Math/Math/float3x4.cpp:1371
#6 0x00007fffbe49d5c7 in EC_Placeable::WorldOrientation (this=<optimized out>)
at /home/ubiuser/src/naali/src/Core/OgreRenderingModule/EC_Placeable.cpp:887
#7 0x00007fffbd79fab4 in EC_SoundListener::Update (this=0x26feaf0)
at /home/ubiuser/src/naali/src/EntityComponents/EC_Sound/EC_SoundListener.cpp:51
#8 0x00007fffbd7a2faa in EC_SoundListener::qt_static_metacall (_o=0x26feaf0, _c=<optimized out>, _id=2,
_a=<optimized out>) at /home/ubiuser/src/naali/src/EntityComponents/EC_Sound/moc_EC_SoundListener.cxx:59
#9 0x00007ffff3cfe281 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) ()
from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#10 0x00000000004ba3c7 in FrameAPI::Updated (this=<optimized out>, _t1=1.45000001e-07)
at /home/ubiuser/src/naali/src/Core/Framework/moc_FrameAPI.cxx:120
I added a unit test to MathGeoLib to test that Quat::FromString works properly independent of the used locale. See here https://github.com/juj/MathGeoLib/commit/06a3d00ff1362150b88ad2cf45b600747c3791e1 The test passes successfully on my system. Perhaps the issue is somewhere in Tundra code?
closing as is a duplicate, would be good to fix still
getting these on some linux boxes on all scenes, and never with any scenes on other similar boxes. both with nvidia drivers and without.
visual symptomps are e.g. empty scene or some objects showing, but as black
Assumption "m.IsColOrthogonal()" failed! in file /home/ubiuser/src/naali/src/Core/Math/Math/Quat.cpp, line 364! Assumption "m.HasUnitaryScale()" failed! in file /home/ubiuser/src/naali/src/Core/Math/Math/Quat.cpp, line 365! Assumption "oldLength > 0.f" failed! in file /home/ubiuser/src/naali/src/Core/Math/Math/Quat.cpp, line 359! Assumption "q.IsNormalized()" failed! in file /home/ubiuser/src/naali/src/Core/Math/Math/Matrix.inl, line 854! Assumption "float3x4::FromTRS(translate, rotate, scale).Equals(*this, 0.1f)" failed! in file /home/ubiuser/src/naali/src/Core/Math/Math/float3x4.cpp, line 1375!
as suggested, checked places that call this in the Tundra code -- these seemed like the relevant in OgreRenderingModule:
./Core/OgreRenderingModule/EC_Mesh.cpp: 220 : return float3x4::FromTRS(node->getPosition(), node->getOrientation(), node->getScale()); 239 : float3x4 tm = float3x4::FromTRS(node->_getDerivedPosition(), node->_getDerivedOrientation(), node->_getDerivedScale()); 1359 : float3x4 localToWorld = float3x4::FromTRS(node->_getDerivedPosition(), node->_getDerivedOrientation(), node->_getDerivedScale());
./Core/OgreRenderingModule/EC_Placeable.cpp: 815 : SetTransform(float3x4::FromTRS(pos, orientation, scale)); 874 : SetWorldTransform(float3x4::FromTRS(pos, orientation, scale));
./Core/OgreRenderingModule/OgreWorld.cpp: 229 : float3x4 localToWorld = float3x4::FromTRS(node->_getDerivedPosition(), node->_getDerivedOrientation(), node->_getDerivedScale());