From CPU to GPU: Understanding Data Transfer with Buffers in OpenGL