Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >GL_COLOR_BUFFER_BIT再生哪个内存?

GL_COLOR_BUFFER_BIT再生哪个内存?
EN

Stack Overflow用户
提问于 2015-12-08 11:25:13
回答 1查看 1.8K关注 0票数 0

这可能是所有libgdx应用程序都具有的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Gdx.gl.glClearColor( 1, 0, 0, 1 );
Gdx.gl.glClear( GL20.GL_COLOR_BUFFER_BIT );

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Gdx.gl.glClear(GL20.GL_DEPTH_BUFFER_BIT);

这设置了颜色与巫婆,屏幕将被刷新(第一行),而不是冲洗它(第二行)。但是GL20.GL_COLOR_BUFFER_BIT的含义是什么呢?从docs中,我得到GL是一个包装了OpenGL es2.0的所有方法的接口,所以我可以调用方法。GL_COLOR_BUFFER_BIT的意思令我费解。它应该重新生成当前为彩色书写启用的内存..。这是否意味着它会抹掉所有的图像?它会擦除ShapeRenderer对象吗?屏幕上是否有不属于彩色书写的内容,并且在使用此常量时不会被擦除?GL_DEPTH_BUFFER_BIT是否擦除纹理的Z-位置?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-08 11:51:12

当你在屏幕上画东西时,你不会直接画它们。相反,他们首先被吸引到所谓的“回缓冲”。这是一个内存块(一个缓冲区),它包含屏幕上每个像素的4个字节,每个像素的每个颜色组件(红色、绿色、蓝色和alpha)都包含一个字节。当您准备好绘图时(当您的呈现方法完成时),此缓冲区将立即显示在屏幕上。

缓冲区的现有值非常重要。例如,当您在屏幕上绘制一个图像,然后在上面绘制一个半透明的图像时,结果是这两幅图像的混合。第一图像被绘制到后缓冲器,导致后缓冲区的存储器包含该图像的像素数据。接下来,绘制第二图像,并将其混合到后台缓冲区的现有数据之上。

内存块的每个字节都有一个值,例如0表示黑色,255表示白色等等。即使没有将任何东西绘制到缓冲区,它也必须有一些值。调用glClear(GL20.GL_COLOR_BUFFER_BIT)会指示GPU用指定的值(颜色)填充整个回缓冲区。可以使用对glClearColor的调用来设置此值。注意,您不必每次调用glClearColor时调用glClear,驱动程序将记住前面的值。

除了屏幕颜色值的后缓冲(颜色缓冲区)外,GPU还可以有其他类型的缓冲区,其中之一是深度缓冲区。这也是每像素几个字节的内存块,但这一次它包含每个像素的深度值。这样就有可能,例如,在3D渲染时,确保其他对象后面的对象不被绘制。需要使用GL20.GL_DEPTH_BUFFER_BIT清除此缓冲区。

请注意,您可以使用按位或操作:Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);将两者一起清除。

在实践中,调用glClear应该是您在呈现方法中所做的第一件事(例如,在绑定FBO时)。这是因为它告诉驱动程序您不关心缓冲区的现有值。这允许驱动程序进行优化,因为它不需要重构(复制)原始内存块。

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

https://stackoverflow.com/questions/34164309

复制
相关文章
再生龙使用手册_龙再生
这是个好问题,配置环境是一件非常有趣(令人讨厌)的事情,尤其对于任务重心不在配置环境的人而言,更应该把有限的时间和精力用在项目核心进度上。 下面推荐一款 再生龙 软件,能让你的U盘作为打包好的系统盘,实现快速备份、还原和部署整个系统环境。 不仅支持本机不同分区、A机器到B机器,还支持虚拟机与虚拟机,虚拟机与实体机的交互。
全栈程序员站长
2022/11/17
2.7K0
再生龙使用手册_龙再生
哪个更快:Java 堆还是本地内存
使用Java的一个好处就是你可以不用亲自来管理内存的分配和释放。当你用new关键字来实例化一个对象时,它所需的内存会自动的在Java堆中分配。堆会被垃圾回收器进行管理,并且它会在对象超出作用域时进行内存回收。但是在JVM中有一个‘后门’可以让你访问不在堆中的本地内存(native memory)。在这篇文章中,我会给你演示一个对象是怎样以连续的字节码的方式在内存中进行存储,并且告诉你是应该怎样存储这些字节,是在Java堆中还是在本地内存中。最后我会就怎样从JVM中访问内存更快给一些结论:是用Java堆还是本地内存。
芋道源码
2018/09/30
5630
哪个更快:Java堆还是本地内存
使用Java的一个好处就是你可以不用亲自来管理内存的分配和释放。当你用new关键字来实例化一个对象时,它所需的内存会自动的在Java堆中分配。堆会被垃圾回收器进行管理,并且它会在对象超出作用域时进行内存回收。但是在JVM中有一个‘后门’可以让你访问不在堆中的本地内存(native memory)。在这篇文章中,我会给你演示一个对象是怎样以连续的字节码的方式在内存中进行存储,并且告诉你是应该怎样存储这些字节,是在Java堆中还是在本地内存中。最后我会就怎样从JVM中访问内存更快给一些结论:是用Java堆还是本地内存。
哲洛不闹
2018/09/14
1K0
哪个更快:Java堆还是本地内存
共享内存 & Actor并发模型到底哪个快?
共享内存利用多核CPU的优势,使用强一致的锁机制控制并发, 各种锁交织,稍不注意可能出现死锁,更适合熟手。
有态度的马甲
2021/08/05
6560
大脑深处的“再生”源泉
格莱斯顿研究所(Gladstone Institutes)的研究人员发现,丘脑中的星形胶质细胞在使脑损伤的小鼠容易癫痫发作方面发挥了关键作用,并发现脑损伤和中风患者的丘脑中可能会改变同样的细胞。这项发表在《科学转化医学》杂志上的研究结果表明,针对这些细胞中的一种蛋白质可以防止脑损伤后的长期损伤。
脑机接口社区
2022/09/22
2670
大脑深处的“再生”源泉
K8S内存消耗,到底该看哪个图?
最近的一项工作,是查看服务在过去一段时间的内存实际使用量,给K8S平台上的POD内存设置一个基于历史数据的合理上限,既不会限制服务的正常运行,也可以尽量减少不必要的占坑。
HelloMin
2022/05/30
4.6K0
K8S内存消耗,到底该看哪个图?
最近的一项工作,是查看服务在过去一段时间的内存实际使用量,给K8S平台上的POD内存设置一个基于历史数据的合理上限,既不会限制服务的正常运行,也可以尽量减少不必要的占坑。
HelloMin
2022/08/11
5.7K2
K8S内存消耗,到底该看哪个图?
Go语言中new和make你使用哪个来分配内存?
翻译出来就是:new是一个分配内存的内置函数,第一个参数是类型,而不是值,返回的值是指向该类型新分配的零值的指针。我们平常在使用指针的时候是需要分配内存空间的,未分配内存空间的指针直接使用会使程序崩溃,比如这样:
Golang梦工厂
2022/07/11
3480
使用再生龙制作centos7镜像
再生龙(Clonezilla)是一个免费的灾难恢复、硬盘克隆、硬盘映像档制作的部署和解决方案,由台湾的高速网络与计算中心所开发,以GNU通用公共许可协议(GPL)发布。
用户6182664
2022/01/07
2.8K0
使用再生龙制作centos7镜像
TRICONEX 8111 可再生的环保发电方式
光生伏打效应(英语:Photovoltaic effect),简称为光伏效应,是指受光线或其他电磁辐射照射的半导体或半导体与金属组合的部位间产生电压与电流的现象。光生伏打效应与光电效应密切相关,属内光电效应。在光电效应中,材料吸收了光子的能量产生了一些自由电子溢出表面。而在光生伏打效应中,由于材料内部的不均匀(例如当材料内部形成PN结时)在自建电场的作用下,受到激励的电子和失去电子的空穴向相反方向移动,而形成了正负两极[1]。
用户10530100
2023/04/27
1670
TRICONEX 8111 可再生的环保发电方式
电子签约格局再生变,落后等于出局
近日易观发布了《中国电子签约市场专题分析2020》报告。报告显示,2019年电子签约市场集中度不断提升,e签宝市场份额第一,为36.36%,法大大第二,市场份额为22.13%,两者之和接近60%。
刘旷
2020/10/20
9490
电子签约格局再生变,落后等于出局
台积电南科再生水厂今日通水,全球首度将工业再生水用于半导体生产
9月19日消息,台积电促建的国内第一座民营再生水厂“台积电南科再生水厂”于 19 日正式通水,这也是全球首度将工业再生水用于半导体生产。台积电表示,将持续与政府推动再生水计划,台湾厂区 2030 年再生水替代率预计达到 60%的目标。
芯智讯
2022/09/27
2760
台积电南科再生水厂今日通水,全球首度将工业再生水用于半导体生产
使用再生龙制作centos7镜像与恢复
1、镜像下载网址:http://clonezilla.nchc.org.tw/clonezilla-live/#make_clonezilla_live。 下载的是一个镜像文件clonezilla-live-2.2.4-12-amd64.iso 2、把它刻录为一张光盘,也可以保存在一个u盘上,保存在u盘的话需要借助tuxboot来做 工具下载地址:http://clonezilla.nchc.org.tw/clonezilla-live/liveusb.php 3、启动盘制作
用户6182664
2021/03/10
2.8K0
OpenGLES-03 使用索引绘制矩形
这篇文章我们同样借助上篇文章《OpenGLES-02 绘制基本图元(点、线、三角形)》的代码,使用另外一种画法来绘制一个矩形。 修改render方法如下: -(void)render { //设置清屏颜色,默认是黑色,如果你的运行结果是黑色,问题就可能在这儿 glClearColor(0.3, 0.5, 0.8, 1.0); /* glClear指定清除的buffer 共可设置三个选项GL_COLOR_BUFFER_BIT,GL_DEPTH_BUFFER_BIT和GL
清墨
2018/05/07
1.2K0
OpenGLES-03 使用索引绘制矩形
Kotlin Vocabulary | Reified: 类型擦除后再生计划
本文将会为大家介绍 Kotlin 的 "reified" 关键字,在介绍 "reified" 之前,我们得先提一下泛型 (Generics)。泛型在编程领域中是一个很重要的概念,它提供了类型安全,并帮助开发者在编程时不需要进行显示的类型转换。泛型对编程语言的类型系统进行了扩展,从而允许一个类型或方法在保证编译时类型安全的前提下,还可以对不同类型的对象进行操作。但是使用泛型也会有一些限制,比如当您在泛型函数中想要获取泛型所表示类型的具体信息时,编译器就会报错,提示说相关的信息不存在。而 "reified" 关键字,正是为了解决此类问题诞生的。
Android 开发者
2020/10/15
1.3K0
java8静态变量放在哪个区_jdk8.0 内存划分
java1.8之前内存区域分为方法区、堆内存、虚拟机栈、本地方法栈、程序计数器。 下图所示:
全栈程序员站长
2022/07/01
5260
java8静态变量放在哪个区_jdk8.0 内存划分
golang.c++难说哪个严谨,哪个方便,哪个语法一致性差
c++代码的意图和结果 golang代码的意图和结果
xiny120
2019/06/11
6730
golang.c++难说哪个严谨,哪个方便,哪个语法一致性差
面试题41(String str1 = “abc”,“abc”分配在内存哪个区域)
公告通知 String str1 = “abc”,“abc”分配在内存哪个区域? A 堆 B 栈 C 字符串常量区 D 寄存器 考点:考察求职者对堆栈的理解 出现频率:★★★★★ 【面试题分析】 栈
Java学习
2018/04/13
2.1K0
kernel logo到开机动画之间闪现黑屏(android 5.X)
在BootAnimation開始画图之前,会先做一次clear screen的动作,避免出现前面的图干扰到BootAnimation的显示。
全栈程序员站长
2022/07/10
3110
根据内存占据的大小排列,看到C盘里面哪个文件占据流量最大?
这篇文章还得从前几天在Python最强王者群【🏖Vivi 許】问了一个计算机文件处理的问题说起,他的电脑C盘爆了,想着清除,释放一些内存空间来,但是又怕误删系统文件。
前端皮皮
2023/08/17
1980
根据内存占据的大小排列,看到C盘里面哪个文件占据流量最大?

相似问题

管理不可再生/可再生的订阅

12

再生令牌

110

可再生例外

32

不可再生

10

Jekyll慢速再生

32
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文