adrian.licuriceanu Posted June 22, 2021 Share Posted June 22, 2021 Hello, We are using grass (ObjectGrass) that is generated based on a mask from landscape: We are also painting the landscape in real-time from C++ code, using Landscape::asyncTextureDraw (painting a top layer and clearing the other) to simulate burnt ground and call ObjectGrass::invalidate (region) to make the grass disappear from that burnt area. Unfortunately, since grass is using cells, it seems that update is a little bit erratic: some grass regions seem to update correctly right after they are touched by painting and in correct spots, some just stay that way and update much later, some just disappear as in this case: This is more obvious for far away trees (simulated once again with ObjectGrass which have even a bigger step and are used only in distance): In the above case in the middle the billboards are updated (they disappeared), but the outer with cells touched partially never go away.. So my question is, how is the grass decision to update done? Is the cell updated as soon as a landscape mask pixel covered by it is changed? Does it need to have a certain pixels threshold changed? Or is this actually a bug (I am using Unigine 2.13)? Kind Regards Adrian L. Link to comment
bmyagkov Posted June 23, 2021 Share Posted June 23, 2021 Hello, Adrian! The problem is that the ObjectGrass itself are complex object, exactly "invalidate" method you mention are contains some controversial solutions. The specified method like the object itself is in the queue for a complete refactoring soon. The best that we can do is ask you to send us the source code to reproduce issue on our side and attach it is as a part of ticket on our internal bug tracker if a bug is found. Or at least we can try to make a code review and point out the problem, but most likely this behavior will need to be fixed in the engine itself. Thanks! Link to comment
adrian.licuriceanu Posted June 23, 2021 Author Share Posted June 23, 2021 Ok, thanks. At least we know these are known issues. Currently we have a deadline and we can accept the issues as temporary. For the next version we also plan to update the engine version and will let you know if we experience the same thing. 1 Link to comment
Recommended Posts