[英]What is a color buffer in OpenGL?
我很難理解 OpenGL.C 代碼中的一些要點:
glutInitDisplayMode()
和glClear()
對這個緩沖區做了什么?glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);
glClear(GL_COLOR_BUFFER_BIT);
OpenGL中有幾種緩沖器。 您提到的顏色緩沖區包含render target
的顏色組件。 渲染目標可以是屏幕外緩沖區或 window 的一塊,或 window 的后台緩沖區,這取決於。
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB)
初始化當前 window 的渲染目標。 GLUT_DOUBLE
表示,雙緩沖以避免閃爍。 GLUT_RGB
表示,我們需要 memory 用於 colors,沒有 alpha 通道。
glClear(GL_COLOR_BUFFER_BIT)
表示,只有緩沖區的顏色組件會被清除。 你可能會問有什么區別。 原因是,一個渲染目標可以被分成多個緩沖區,例如,一個顏色緩沖區和深度緩沖區。 只有調用glClear(GL_DEPTH_BUFFER_BIT)
時,深度緩沖區才會被清除,您也可以通過glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
組合它們以一次清除顏色和深度分量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.