2021-07-13 at 6:40 pm #42834xeonCustomer
My research on this began with trying to optimize clones in verge3d and seeing what effect cloning has as far as performance.
My initial hope was that if I started with a single cube: 8 verts, 6 faces, 12 triangles that by using a clone I could have multiple objects with no triangle count increase. Unfortunately, I am experiencing an increase in triangle count and a significant load time increase. My guess is the calculation time required to create and place the clones is causing the increase.
My scene uses over 1000 clones so I was counting on some significant savings with respect to triangle count and when I didn’t get it…it led me to these tests.
For these tests, I am using Blender 126.96.36.199 and Verge3d 3.7.1.
Start with a default Verge Scene.
Start with the default Blender scene.
Test one: Single default cube (12 triangles).
Export GLTF to your freshly created V3D Scene.
Open the app in app manager using Chrome and add a single puzzle – print performance and review using Chromes developer tools Console window. See attached images for comparison and puzzle detail.
According to the console a total of 48 triangles. This is 4x the expected amount.
The next test is 5 cubes created in Blender output to Verge3D and tested the same way with only the print performance puzzle.
NOTE: for these tests be sure to position your camera so that all five cubes will be rendered in camera view.
The results: 144 triangles. This is 2.4x more triangles than expected. This had a load time of 136ms.
The third test is a clone test. With only one default cube in Blender, export to V3D. Puzzles Print performance, and 4 basic clone calls to replicate the cube a distance of 3 apart.
The result: 144 triangles and a load time of 188ms.
This result at least indicated why the load times of scenes are so long with the more clones you use.
So before I state that clones are pointless and have no performance advantage, I wanted to be sure the calculation of Rendered triangles is accurate.
Since the triangle count appears to be off significantly, I started doing the test with much higher vertice count objects like toroids and the triangle count mismatch got worse.
So my question to Soft8Soft is: Is this a bug or is it a misunderstanding of Rendered Triangles vs actual triangles? If so what causes them to go from 12 to 48 on a single cube?
Then as it relates to performance is the max recommended triangles based on the Rendered Triangles provided by Print Performance or the actual triangles in the Blend file or the total triangle in the Blend scene plus the total triangles of each clone?
Attachments:You must be logged in to view attached files.2021-07-14 at 6:42 am #42865Alexander KovelenovStaff
Indeed, the actual amount of rendered triangles is higher than one can expect. First, each Cube rendered in color and shadow passes, making it 24 triangles per draw cycle (you can disable shadows on your light source to make it 12 again). Another thing, that should be counted – background/environment cubemap which uses another Cube internally.
So it appears that performance info calculations are correct.2021-07-14 at 9:56 pm #42885xeonCustomer
Hi there and thank you for the response. I always learn something new.
So…your answer provides the detail why a single cube is now 24 triangles. It also explains why the triangle stat tools in Blender or elsewhere would be exceptionally low in comparison to those reported through the console.
One part of the question that was not answered was the effectiveness of clones. Since clones consume the same number of triangles and make the scene longer to load. I am guessing the answer is to not use them. After reviewing the Global Illumination room sample Soft8Soft provided it seems that Soft8Soft elected to not clone objects. Is it then Soft8Softs general rule to not clone?
- You must be logged in to reply to this topic.