I am currently rendering using glDrawElements.
And I’m drawing so many triangles.
But the rendering speed is too slow, so I’m testing the index data after uploading it to the GPU.
The following uses the index data in the CPU’s memory.
…if you’re running on an NVIDIA GPU. That’ll tell you pretty quick … especially if you add NVTX markup to your frames.
(KHR_debug markup works too [wiki link], but tends to lag vs. NVTX due to the normal deferred command queue flushing associated with GL API command dispatch.)
My program is not repeatedly rendered like a game, but rendering only when there is a mouse or keyboard response.
Currently, FPS have not been accurately measured, but they have certainly slowed down to the eye.
Mesh data with only shells, usually made of triangles, are displayed quickly.
However, the solid mesh, which most triangles are invisible on the screen, is being displayed slowly.
There are four solid meshes as shown below, and each mesh represents the number of tetra or hexa solid elements.
292193
512493
113076
381282
One tetra sends 12 vertexes with 4 triangles to each of the four sides.
One hexa sends 36 vertexes with 12 triangles on each of the six sides.
Is it normal to slow down to send this size?
Should I use a rendering method that does not render invisible elements on the screen?
Or will it be faster if I use the batch rendering method?
This is my machine.
Graphics card: Quadro P1000 (GPU Memory: 4GB)
CPU: 11th Gen Intel(R) Core™ i9-11900KF @ 3.50GHz 3.50 GHz
RAM: 64.0GB