- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
多年来,我一直在通过其他人在工作中的谈话中听到各种图形术语,但每次我试图获得基本的理解时,我都发现这很困难,因为很多术语似乎已经过载并且意味着不同的东西在不同的情况下。我一直试图从 Linux/Android 的角度来理解这一点,以防万一。我真的很想了解 Android 图形架构,但在阅读大量 Material 时,由于以下术语,我正在兜圈子。
渲染 - 维基百科定义指的是创建 3D 场景的 2D 光栅表示的图形管道。我还听到术语渲染用于指代在屏幕上显示某些内容,即“渲染到屏幕”。
纹理 - 我查阅了 OpenGL 的定义,但我似乎听说人们有时会互换使用表面和纹理,这两者我都不理解。
表面 - 我看到一个 Android 定义说表面是一个包含合成到屏幕的像素的对象。但是,我认为在图形/OpenGL 的说法中,这意味着不同的东西。
Framebuffer - 我熟悉 Linux 内核 framebuffer 抽象,但 OpenGL 定义似乎不同。令人困惑的是,我发现的 OpenGL“默认帧缓冲区”定义似乎与 Linux 内核帧缓冲区的定义很接近,但我认为它们指的不是同一件事。
最佳答案
渲染:将抽象数据变成具体图片的过程
纹理:A surjective两组 A 和 B 之间的映射,由一组位于规则网格坐标 A 的离散样本定义为集合 B 中的值。实际上,它是抽象的东西。实际上,纹理是基于 n 维像素的图像,像素值位于 m 维空间中。 n 和 m 的典型值为 4。
表面:在计算机图形学术语中,可以互换地读取和写入图像数据的“表面”。
Framebuffer:一般来说,内存区域和如何将此内存解释为 n 维图像的逻辑描述的组合。在 Linux 中,帧缓冲区抽象为您提供了一个附加到显示输出的内存区域,并将其与内存布局方式的信息相结合以形成表面。在 OpenGL 中,帧缓冲区也是内存区域和布局信息。有一个默认的帧缓冲区,OpenGL 不 自行管理它,而是由操作系统传递下来。然后您可以通过获取 OpenGL 图像对象(渲染缓冲区、纹理)并使它们成为帧缓冲区的内存来创建自定义帧缓冲区。
关于android - 阐明重载图形术语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39342282/
我声明了一个通用结构和这些结构的数组,如下所示: struct A { int x,y,z; char a,b,c; }; struct A *str_arr[5]; 根据我的理解,s
我对 CUDA 编程指南 4.0 部分 5.3.2.1 中的以下语句感到困惑 在性能指南的章节中。 Global memory resides in device memory and device
我想知道这两者之间有什么区别: addCompilerPlugin("org.typelevel" %% "kind-projector" % "0.11.3" cross CrossVersion.
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 5 年前。 Improv
结构体的析构函数: 您能否指定必须在结构的析构函数中显式处理的每种数据类型? struct Node { int val; // representing any
我试图通过创建我自己的同名扩展方法来修改现有扩展方法的行为。我知道只要方法签名不同,这是可能的。我还知道调用哪个方法取决于签名的关闭程度。 如果我有 public void DoStuff(this
取自:https://www.gnu.org/software/libc/manual/html_node/Nonreentrancy.html For example, suppose that t
谁能帮忙解释一下 bind 在这种情况下的用途是什么? Add New https://youtu.be/OKRu7i49X54?list=PL6gx4Cwl9DGBuKtLgPR_zWYnrwv-J
目前我将 glFrustum 设置为 glFrustum(0, 100.0, 0, 100.0, -50, 50); 我的图像是一个矩形立方体,尺寸为:当形状的尺寸小于查看框时,为什么我看不到图像?
我面临着与该线程中描述的类似的问题: Can Enunciate generate docs for an API that handles generic types? 我正在使用 enunciat
有人能解释一下这段代码是如何工作的吗? PRE_PROC_EXE := $(shell which pre_proc.pl) PRE_PROC2_EXE := $(shell
使用 Prompter 方法在 FormFlow 中发送自定义卡片。查看代码发现有一个 GenerateMessages() 方法,对于下面的代码,它总是返回 false。有人可以阐明为什么/何时使用
我在谷歌上找不到任何东西。 我有这段代码: Random r = new Random(); int[] output = Enumerable.Range(0, 11).Select(x => x
我正在阅读 Eric Meyer 撰写的 CSS 权威指南第 3 版。 他关于字体大小的部分(第 107 页)指出字体大小决定了 em 框。如果我这样做: span { font-size: 10px
我对ElasticSearch的使用有些困惑。我现在有一个带有关系数据库(Ruby on Rails)的应用程序(Mysql),我正试图从ElasticSearch提供的搜索功能中受益。我仍然想像以前
有Java背景,但是从未开发过 Web 客户端(即由浏览器运行的脚本),但是java小程序(我怀疑是,嗯,老式的(对吧?)或者其他我显然会将它们用于以下一些用途) 然后考虑以下场景: 仅客户端应用程序
假设我有一个子函数: function Child() {} 并且有一个父函数: function Parent() {} 然后我将 Child 的原型(prototype)设置为 Parent 的新
程序如下: #include using namespace std; class X { int no; public: X(int n=1) : no{n} {} X(const
阅读文档: del: Deletion of a target list recursively deletes each target, from left to right. 你能解释一下为什么这
我对 C/C++ 中的悬挂指针有点困惑 void remove(){ Node* curr = new Node(10); Node* pt = curr; delete curr; // do so
我是一名优秀的程序员,十分优秀!