e.novikov Posted November 13, 2012 Posted November 13, 2012 If we using OpenGL ES render and animated object located outside of frustum, animation will not show when isPlaying() property is true. The problem is reproduced only when we use OpenGL ES render (all fine with OpenGL). I've attached a demo project (just unpack it to /SDK folder/data/ and launch start.sh) smesh_bug.tar.gz
frustum Posted November 14, 2012 Posted November 14, 2012 There are no differences between OpenGL and OpenGLES renderers. If you need to update invisible nodes you can call engine.world.addUpdateNode() or engine.world.addUpdateNodes() functions.
e.novikov Posted November 14, 2012 Author Posted November 14, 2012 do you launch demo project? In OpenGL all works fine, but in GLES render animation never displayed.
manguste Posted November 27, 2012 Posted November 27, 2012 Did you try to use engine.world.addUpdateNodes() as recommended?
e.novikov Posted November 30, 2012 Author Posted November 30, 2012 I tried, but support different unigine-script code for different renders is very expensive. Do you consider that different behavior of the same code, when render is changed is not a bug?
manguste Posted December 20, 2012 Posted December 20, 2012 Just checked it again on OpenGL ES, animation is displayed. And the message is logged. It is possible that because of a smaller screen resolution on a target device (and different precision of compilers), the node is not visible on the screen -> it is not updated -> animation is not played. Adding a node to the list of always updated ones via engine.world.addUpdateNodes() does the trick: int update() { // It makes it work! engine.world.addUpdateNode(anim); int isPlaying = anim.isPlaying(); if(isPlaying) log.message("I'm still playing\n"); return 1; }
Recommended Posts