gpt4 book ai didi

OpenGL - 缓冲区、着色器

转载 作者:行者123 更新时间:2023-12-02 22:38:43 28 4
gpt4 key购买 nike

每次我在 Google 上搜索有关 OpenGL 编程的文章时,我都会找到一些文章,但似乎所有文章都提到了着色器和缓冲区。那些是什么?你能解释其中的一些吗:

  • 深度缓冲区
  • 模板缓冲区
  • 像素着色器
  • 帧缓冲区
  • ...?

我听说过其中的几个,但找不到完整的列表。什么是 OpenGL 中的着色器,什么是缓冲区?有人可以在我们使用它们时提供示例吗?

最佳答案

颜色缓冲区是一些具有指定内存布局的内部存储器,但在其他方面对您来说或多或少代表图像是不透明的。它保存有关图像中每个像素的颜色的信息。您绘制/渲染到颜色缓冲区中。在最近的硬件上,最新版本的 OpenGL 可以有多个颜色缓冲区,您可以使用它们来提高一些特殊渲染技术的效率。

深度和模板缓冲区与颜色缓冲区相同,只是它们保存(顾名思义)深度和模板信息而不是颜色。深度和模板通常合并到一个缓冲区中(但不一定如此),并且一次不能有多个深度/模板缓冲区。
深度缓冲区通常用于解决在无特定顺序渲染多个对象时过度绘制的歧义。只有离“你的眼睛”最近的一个碎片幸存下来。模板缓冲区可用于特殊效果,例如屏蔽缓冲区的区域。

帧缓冲区是您将颜色缓冲区附加到其中并在其中绘制/渲染的东西,并且可以选择在屏幕上显示。总是至少有一个帧缓冲区,这就是您在屏幕上看到的,但可能有任意数量。这是由 3.0 版以来的核心功能 framebuffer 扩展管理的。帧缓冲区通常也有单独的“前”和“后”缓冲区。当您向另一个渲染时,一个将显示给您。在适当的时候,缓冲区会翻转,因此您不会看到闪烁。

一般来说,着色器是一个“程序”,OpenGL 在定义明确的时间在其管线内代表您对定义明确的数据执行,以生成一些所需的效果。它通常在显卡上运行,但也可能部分或全部在 CPU 上执行。
像素着色器,历史上第一个可用的着色器(和命名器)为每个片段运行一次。它们采用一些定义的输入(例如灯光位置、法线)并生成一个输出,稍后通过深度测试,最后写入颜色缓冲区或与颜色缓冲区混合。
顶点、几何或曲面分割着色器并没有真正“着色”任何东西(它们转换和/或生成顶点和基元,这些后来变成片段),但它们继承了名称。

关于OpenGL - 缓冲区、着色器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11050481/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com