namal.bambarasinghe Posted November 9, 2018 Share Posted November 9, 2018 We need to place 2000 individually animated characters next to each other as shown in the video (there are only 1000 in there). We are experiencing a significant performance hit when we do that (10 FPS per 1000 characters). In the video we use approx 8 * 120 models, reference nodes. What is the best best performing method to achieve this? Possibley something to with instancing or so?? Note: We need each character to be animated in a different frame and possibly controlle mega_characters_1000.mp4 d by a script. Link to comment
silent Posted November 9, 2018 Share Posted November 9, 2018 Hi Namal, As you probably already noticed in profile you have two critical points: RenderCPU: ~30ms Update: ~30ms Draw calls: 4,5k So, you have to optimize the CPU part of the scene (reduce the draw calls as much as possible). Batching for skinned meshes is a hard task and it can only work if you have an 100% identical animations playing. So maybe it would help if some of the meshes will play the same animations. The basic approach that may work somehow: Split nodes to the groups by distance from camera. Reduce animations update interval based on a distance to camera Replace if possible the most distant object to billboards Play the same animation between 2 or more characters to enable batching Reduce materials count by reusing the same material on different nodes ??? Maybe you will find out a better solution to this, because even with batching 2400 skinned objects (5 unique materials) can be tough (you can see it in samples/stress/skinned_01 sample). Thanks! How to submit a good bug report --- FTP server for test scenes and user uploads: ftp://files.unigine.com user: upload password: 6xYkd6vLYWjpW6SN Link to comment
Recommended Posts