首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenGL -缓冲器,着色器

问OpenGL -缓冲器,着色器
EN

Stack Overflow用户
提问于 2012-06-15 12:16:45
回答 2查看 378关注 0票数 2

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

buffer

  • ...?

  • 深度缓冲器
  • 模版缓冲区
  • 象素着色器
  • 帧

我听说的很少,但找不到完整的名单。OpenGL中的着色器是什么,缓冲区是什么?当我们使用它们时,有人能提供例子吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-15 12:41:47

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

深度和模板缓冲区与颜色缓冲区相同,除非它们保存(顾名思义)深度和模板信息,而不是颜色。深度和模板通常合并到一个缓冲区中(但不必是这样),而且每次都不能有一个以上的深度/模板缓冲区。

深度缓冲区通常用于解决不按特定顺序呈现多个对象时的透支歧义。只有最接近“你的眼睛”的片段存活下来。模板缓冲器可用于特殊效果,例如屏蔽缓冲区的区域。

框架缓冲区是将颜色缓冲区附加到并绘制/呈现到其中,并且在屏幕上可选地可见的东西。总是至少有一个帧缓冲区,这是您在屏幕上看到的,但可能有很多。这是由framebuffer扩展管理的,该扩展是3.0版本以来的核心功能。一个框架缓冲区通常有单独的“前端”和“后”缓冲区。一个会展示给你,而你会呈现给另一个。在适当的时候,缓冲区是翻转的,所以你不会看到闪烁。

着色器,最一般的,是一个“程序”,OpenGL执行代表您在其管道内,在明确的时间,对明确的数据,以产生一些想要的效果。它通常在显卡上运行,但也可以部分或全部在CPU上执行。

像素着色器,第一个着色器历史上可用的(和命名者)是运行一次的每一个片段。它们接受一些定义的输入(例如,光位置、法线)并产生一个输出,随后经过深度测试,最后写入或混合到颜色缓冲器中。

顶点、几何图形或镶嵌着色器并不真正“遮荫”任何东西(它们转换和/或生成顶点和原语,这些顶点和原语后来被转换成片段),但它们继承了名称。

票数 4
EN

Stack Overflow用户

发布于 2012-06-15 12:30:51

在google中输入opengl shaders,你就可以得到着色器的答案。

第一个搜索结果:http://en.wikipedia.org/wiki/GLSL

要获得更多的每个着色器的直接列表,也可以按照下面的链接:http://en.wikipedia.org/wiki/Shader#Types_of_shaders

对于OpenGL,您可以使用GLSL编程着色器,而HLSL用于Direct3D。

这应作为一般性介绍。

关于另一个问题的一些简短说明(可能是简化):

深度缓冲区,也称为z-缓冲区,用于解决呈现时什么是背后的问题。

帧缓冲区就是存储当前帧(屏幕/像素)的内存。

模板缓冲区比较复杂,可以用几种不同的方式使用。

为了便于介绍,googles首次点击每个网站(维基百科)在以下方面为您提供了很好的服务:

http://en.wikipedia.org/wiki/Framebuffer

http://en.wikipedia.org/wiki/Stencil_buffer

http://en.wikipedia.org/wiki/Z-buffering

等

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11050481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档