在GLSL中,顶点着色器的in数据从显存内读取,数据按照先后顺序读取。out数据提交给片段着色器,类似于pop和push的过程。in表示从上一着色器读取的值,通常在顶点着色器中从VBO读取。out表示向下一着色器输出的值,最后一个片段着色器直接写入framebuffer或fbo。片段着色器的out数据提交给framebuffer或fbo。可以有多个out,对应FBO连接多个RenderBuffer或texture。每个out对应一个颜色通道。使用glBufferData循环更新数据时,并不会一直往显存里灌,赋新值会自动释放旧数据。因此,反复使用glBufferData不会导致显存爆炸。在Buffer数据长度不变的情况下,建议使用glMapBuffer更新Buffer中的数据,以提高性能和效率。