簡體   English   中英

OpenGL 中的顏色緩沖區是什么?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM