作为一名OpenGL初学者,我想知道他们做了什么以及为什么需要这些.例如在通话中
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
Run Code Online (Sandbox Code Playgroud)
Car*_*rum 15
GL_COLOR_BUFFER_BIT而GL_DEPTH_BUFFER_BIT不是函数,它们是常数.您可以使用它们来告诉glClear()您要清除哪些缓冲区 - 在您的示例中,深度缓冲区和"当前启用颜色写入的缓冲区".您也可以传递GL_ACCUM_BUFFER_BIT清除累积缓冲区和/或GL_STENCIL_BUFFER_BIT清除模板缓冲区.
在使用库时,常量的实际值对您来说无关紧要 - 重要的实现细节是每个常量的二进制表示不会相互重叠.正是这种特性允许您将多个常量的按位OR传递给单个调用glClear().
查看glClear()文档以获取更多详细信息.