How to understand where GPU is used, and where is the CPU?

Hello! I’m creating a course on data centers in Three JS. Help the options to optimize the speed of work. I use DAE models for best vision.
I have such a feeling that GPU is not used.
How to understand where GPU is used, and where is the CPU?
Now on my MacBook Pro with iris 6100 on Safari speed about 6-12 fps.
Website itself

Your GPU is used, don’t worry about that :wink:

The problem is your scene is way too complex. You can easily verify this with the following data (output of renderer.info.render).

{ calls: 9948, vertices: 2071854, faces: 690618, points: 0 }

It’s not hard to see that your app produces too much draw calls and consists of too complex geometries. The distinction between CPU and GPU overhead is irrelevant in this scenario. You definitely need to simplify your scene.

Thanks!
I thought that the GPU can load models into its memory.
What other means are available besides reducing the complexity of models?
I’m afraid the visibility will suffer.

There is no way around it if you want to keep all 3D objects in a single scene.

Have you considered to split up your scene into separate rooms/levels?

Yes, considered. I wanted to have the whole scene in front of me. As in life, such as an excursion to a real data center :slight_smile:

If you can not create one scene with all the objects, then you will have to switch to another engine, such as Unity or Babylonjs. Is it possible to do this there?

I guess you will have the same problem with other engines, too.

Thanks, I’ll think about tuning models

Note that the highest priority problem here is not the complexity of the models but the total number of draw calls… draw calls are messages between CPU and GPU, essentially, and having too many means neither your CPU nor GPU will be used efficiently.

If you can “merge” geometries, so they’ll still appear separately but can no longer move independently easily, that reduces draw calls a lot. You can do this in a modeling program or with optimization tools like obj-simplify and simplygon.