Search the Community
Showing results for tags 'Change'.
-
[SOLVED] Changing and replacing indices during runtime in ObjectDynamic
sebastian.vesenmayer posted a topic in C++ Programming
Hello together, I try to change the indices of an ObjectDynamic during runtime to discard some points in Unigine 2.11. I can call clearIndices() on this object and all geometry vanish. But when I change the index array and set it again. the changed data won't get uploaded and the geometry still looks the same. Any ideas? int AppWorldLogic::init() { // Write here code to be called on world initialization: initialize resources for your world scene during the world start. m_dynamicObject = Unigine::ObjectDynamic::create(); m_dynamicObject->setMaterialNodeType(Unigine::Node::TYPE::OBJECT_MESH_STATIC); m_dynamicObject->setWorldTransform(Unigine::Math::translate(Unigine::Math::Vec3(0.0, -4.0, 1.0))); m_dynamicObject->setMaterial("custom_forward_material","*"); const Unigine::ObjectDynamic::Attribute attributes[]={{ 0, Unigine::ObjectDynamic::TYPE_FLOAT, 3 }}; m_dynamicObject->setVertexFormat(attributes, 1); m_dynamicObject->setSurfaceMode(Unigine::ObjectDynamic::MODE::MODE_POINTS, 0); m_dynamicObject->setBoundBox(Unigine::BoundBox(Unigine::Math::vec3(-10000.f, -10000.f, -10000.f), Unigine::Math::vec3(10000.f, 10000.f, 10000.f))); Unigine::Math::vec3 position; for (int i = 0; i < 1000; ++i) { for (int j = 0; j < 100; ++j) { position = Unigine::Math::vec3(i, j, 1.f); m_dynamicObject->addVertexFloat(0, position, 3); } } m_indices = new int[100000]; for (int index = 0; index < 100000; ++index) { m_indices[index] = index; } m_dynamicObject->setIndicesArray(m_indices, 100000); return 1; } //////////////////////////////////////////////////////////////////////////////// // start of the main loop //////////////////////////////////////////////////////////////////////////////// int AppWorldLogic::update() { static int counter=1; if (counter % 120 == 0) { m_dynamicObject->clearIndices(); } else if(counter % 120 == 60) { for (int i = 0; i < 100000; ++i) { m_indices[i] = (rand() % 2 == 1) ? i : 0; } m_dynamicObject->setIndicesArray(m_indices, 100000); } counter++; return 1; } -
Hello Unigine folk! I have a question regarding the Unigine engine and scripting it. I have animations that play at 25fps, there are 750 frames of animation in the sequence I am using and I wish to set the games fps value to 25. Currently in the top right of my viewport it says that the game is running between 28-32fps, which is great, apart from the fact that my animations don't run at that frame rate. I have 750 frames of animation and yet when I "log.message" the amount of frames that are played from the start of the animation sequence to the end of it, then the amount comes to 952 frames. This is not correct and the client I am working for requires very precise camera cuts and animation sequence changes that rely on the game being run at 25fps. Can anyone please help me with this issue? I have experimented with setting FTime and IFps but I have had no success! Any help would be greatly appreciated, thanks you in advance =) Tom.S EDIT: Sorry, I forgot to add that I'm using Tracker Files in my project too, not sure if that makes any difference. The min_time is set to 0, the max_time is set to 30 and the unit_time is set to 1!