【问题标题】:Clarifying overloaded graphics terminology澄清重载的图形术语
【发布时间】:2016-09-06 06:49:03
【问题描述】:

多年来,我一直通过其他人在工作中的对话听到各种图形术语,但每次我试图获得基本的理解时,我都觉得很难,因为似乎很多术语都超负荷了,并且意味着不同的东西在不同的情况下。我一直试图从 Linux/Android 的角度来理解这一点,以防万一。我真的很想了解 Android 图形架构,但在阅读大量材料时,我会因为以下术语而陷入困境。

渲染 - 维基百科的定义是指创建 3D 场景的 2D 光栅表示的图形管道。我还听说过术语渲染用于指代在屏幕上显示某些内容,即“渲染到屏幕”。

纹理 - 我查看了 OpenGL 的定义,但我似乎听到人们有时可以互换使用表面和纹理,但我都不理解。

Surface - 我看到一个 Android 定义说 Surface 是一个对象,它包含合成到屏幕上的像素。但是,我认为在图形/OpenGL 的用语中,这意味着不同的东西。

帧缓冲 - 我熟悉 Linux 内核帧缓冲抽象,但 OpenGL 的定义似乎不同。令人困惑的是,我发现的 OpenGL“默认帧缓冲区”定义似乎与 Linux 内核帧缓冲区的定义很接近,但我认为它们指的不是同一件事。

【问题讨论】:

  • 您问的是“Android 图形架构”还是 OpenGL?因为两者的答案不一定相同。
  • 我正在尝试了解使用 OpenGL ES 进行合成和渲染的 Android 图形架构。我希望一旦我澄清了 OpenGL 术语,事情就会变得更有意义。

标签: android linux graphics opengl-es


【解决方案1】:

渲染:将抽象数据转化为具体图片的过程

纹理:A surjective 两个集合 A 和 B 之间的映射,由一组离散样本在规则网格坐标 A 上定义为集合 B 中的值。真的,这是抽象的东西。实际上,纹理是基于 n 维像素的图像,其像素值位于 m 维空间中。 n 和 m 的典型值为 4。

Surface:在计算机图形学术语中,一个“表面”,可以从其上互换地读取和写入图像数据。

Framebuffer:一般来说,内存区域和逻辑描述如何将该内存解释为 n 维图像的组合。在 Linux 中,帧缓冲区抽象为您提供了一个附加到显示输出的内存区域,并将其与该内存如何布局的信息相结合以形成表面。在 OpenGL 中,帧缓冲区也是与布局信息一起的内存区域。有一个默认的帧缓冲区,OpenGL 自己管理它,但由操作系统传递。然后您可以通过获取 OpenGL 图像对象(渲染缓冲区、纹理)来创建自定义帧缓冲区,并使它们成为帧缓冲区的内存。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-28
    • 2011-10-09
    • 2021-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多