多年来,我一直通过其他人在工作中的交谈中听到各种图形术语,但每次我试图获得基本的理解时,我都会发现这很困难,因为似乎很多术语都超载了,并且在不同的上下文中表示不同的东西。我一直在尝试从Linux/Android的角度来理解这一点,以备不时之需。我真的很想理解Android的图形架构,但在阅读大量资料时,由于以下术语的原因,我陷入了困境。
渲染-维基百科的定义是指创建3D场景的2D光栅表示的图形管道。我也听说过术语render用于在屏幕上显示一些东西,即"render to the screen“。
纹理-我查阅了OpenGL的定义,但我似乎听到人们有时会交替使用表面和纹理,这两个我都不理解。
Surface -我在Android上看到过这样的定义: surface是一个包含合成到屏幕上的像素的对象。然而,我认为在图形/OpenGL术语中,这意味着一些不同的东西。
Framebuffer -我熟悉Linux内核帧缓冲区抽象,但OpenGL的定义似乎不同。令人困惑的是,我找到的OpenGL“默认帧缓冲区”定义似乎与Linux内核帧缓冲区的定义很接近,但我不认为它们指的是相同的东西。
发布于 2016-09-06 16:24:51
渲染:将抽象数据转换为具体图片的过程
纹理:两个集合A和B之间的surjective映射,由规则网格坐标A到集合B中的值的一组离散样本定义。实际上,纹理是基于n维像素的图像,像素值在m维空间中。N和m的典型值为4。
表面:在计算机图形学术语中,嗯,“表面”,从它图像数据可以互换地读写。
Framebuffer:一般而言,内存区域和逻辑描述的组合如何将该内存解释为n维图像。在Linux中,帧缓冲区抽象为您提供了一个附加到显示输出的内存区域,并将其与该内存如何布局以形成一个表面的信息结合起来。在OpenGL中,帧缓冲区与布局信息一起也是一个内存区域。有一个默认的帧缓冲区,OpenGL不会自己管理它,而是由操作系统传递给它。然后,您可以通过获取OpenGL图像对象(渲染缓冲区、纹理)来创建自定义帧缓冲区,并使其成为帧缓冲区的内存。
https://stackoverflow.com/questions/39342282
复制相似问题