为什么 RenderingContext.drawElements 在绘制之前清除屏幕?

2023-11-29

当 RenderingContext.drawElements 在绘制之前清除屏幕时,它是否正确?

考虑这些屏幕截图,这些屏幕截图显示了调用 drawElements 的一个步骤,并且已绘制的对象被删除。

enter image description here

enter image description here


WebGL 有效地页面合成后清除屏幕。当您一次一行地逐步执行某些内容时,每次停下来时它都会被合成。

如果您不希望其被清除,请询问preserveDrawingBuffer: true当您创建 WebGL 上下文时,如下所示

gl = someCanvas.getContext("webgl", { preserveDrawingBuffer: true });

至于为什么,从规范

虽然有时需要保留绘图缓冲区,但它可能会在某些平台上导致显着的性能损失。只要有可能,此标志应保持为 false 并使用其他技术。诸如同步绘图缓冲区访问之类的技术(例如,在渲染到绘图缓冲区的同一函数中调用 readPixels 或 toDataURL)可用于获取绘图缓冲区的内容。如果作者需要通过一系列调用渲染到同一个绘图缓冲区,则可以使用帧缓冲区对象。

只要可以保证作者无法从另一个进程访问缓冲区内容,实现就可以优化绘图缓冲区所需的隐式清除操作。例如,如果作者执行显式清除,则不需要隐式清除。

TL;DR 版本是preserveDrawingBuffer: false(默认)允许 WebGL 在合成时交换缓冲区(这并不意味着它将交换缓冲区,但如果它选择的话它可以)。preserveDrawingBuffer: true意味着它不能交换缓冲区,它必须复制缓冲区。复制比交换慢得多。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 RenderingContext.drawElements 在绘制之前清除屏幕? 的相关文章

  • Flutter - 每次应用程序重新启动后保留变量的值

    在我的一页上 我希望我的用户从一个变量上的默认文本开始 codeDialog 然后我希望他们更改该文本 之后他们编写的文本将成为我的新默认文本 遗憾的是我无法让它发挥作用 现在 当我重新启动应用程序并打开该屏幕时 它会重置为null 我认为
  • 开始使用 Three.js 中的行进立方体

    我是 Three js 的新手 正在寻找教程来帮助我开始了解如何在 Three js 中使用 Marching Cubes 到目前为止 我在 Three js 中看到的一些使用它的项目对我来说有点复杂 所以一个简单的教程会很好 谢谢 像您一
  • Three.js canvas.toDataURL 有时为空

    我正在尝试使用 html2canvas js 渲染 THREE js 场景 一些覆盖的 HTML 元素 有用大多数时候 但并非一直如此 在失败的情况下 将渲染 HTML 元素 背景 覆盖层等 但不会渲染其他元素 THREE js 场景表现得
  • Web Api - 不允许捕获 405 方法

    截至目前 Web api 应用程序针对 405 方法不允许错误返回以下响应正文 我正在尝试更改响应正文 但我不知道如何使用委托处理程序 ApiControllerActionSelector 或过滤器 谁能帮我捕获服务器端的 405 错误
  • Flutter:BottomNavigationBar 在选项卡更改时重建页面

    我在 Flutter 中的 BottomNavigationBar 有问题 如果我更改选项卡 我想让我的页面保持活动状态 这是我的实现 底部导航 class Home extends StatefulWidget override Stat
  • webgl中绑定缓冲区的逻辑是什么?

    有时我发现自己在以不同顺序声明缓冲区 使用 createBuffer bindBuffer bufferdata 和在代码的其他部分 通常在绘制循环中 重新绑定它们之间挣扎 如果我在绘制数组之前不重新绑定顶点缓冲区 控制台会抱怨尝试访问超出
  • 底部有无限像素溢出的 RenderFlex

    我有一个非常简单的控件 我试图在其中展示DropdownButton与几个TextFields 当应用程序在模拟器中运行时 我收到一条错误消息 BOTTOM OVERFLOWED BY Infinity PIXELS The Stack T
  • WebGL - 如何传递无符号字节顶点属性颜色值?

    我的顶点由具有以下结构的数组组成 Position colour float float float byte byte byte byte 传递顶点位置没有问题 gl bindBuffer gl ARRAY BUFFER this vbo
  • 如何在flutter中实现字母滚动

    有没有任何插件或方法可以在 flutter 中实现这种滚动 具体来说 右侧的字母列 例如突出显示当前字母表字母 或者如果点击某个字母 则滚动视图会直接转到该字母标题 为了按字母顺序排序 我们可以这样做List sort 对于粘性标题 我们也
  • 在 Webpack 中使用 Three.js 以便我可以使用 OrbitControls 的正确方法是什么?

    在我的 webpack 配置中 resolve alias three path resolve node modules three build three js OrbitControls path resolve node modul
  • 渲染 ThreeJS 应用程序第一帧时的性能问题

    目前 当我渲染以下内容时 我的 ThreeJS 应用程序的性能受到很大影响第一帧 它会导致 Edge 和 IE 11 浏览器冻结 5 秒 并弹出窗口指示 此窗口没有响应 这可能会吓到我的用户 使用 Chrome 的性能分析器 问题似乎来自几
  • php 中的 stackoverflow 上有这样的成就系统吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 从概念上讲 如何使用 PHP 和 MySQL 为网站编写一个成就系统 唯一真正的方法是不断执行 MySQL 查询来测试成绩等吗 您有两
  • Firebase Auth - 最近登录多长时间

    我有一个个人资料选项卡 用户可以在其中按编辑并编辑他们的个人资料 我只想在必要时才需要他们的密码 所以想知道用户登录的时间是多少毫秒 这使得它不是最近登录 其中firebase会抛出错误 auth requires recent login
  • Flutter:一张带有圆形头像的卡片,非常引人注目

    我想做一张卡片CircleAvatar 突出显示 您可以在这张图片中看到详细信息 我不知道它是如何工作的 我尝试了一些Stack和定位小部件 但它不起作用 Stack确实是解决方案 Stack children
  • 三.js环境光意想不到的效果

    在下面的代码中 我渲染了一些立方体并使用点光源和环境光照亮它们 然而 当设置为 0xffffff 时 AmbientLight 会将侧面的颜色更改为白色 无论其指定的颜色如何 奇怪的是 点光源按预期工作 我怎样才能使环境光表现得像点光 因为
  • 诸如用于测试 HTTP 请求的虚拟 REST 服务器之类的东西? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我一直在四处寻找 但找不到任何这样的网站 我想知道是否有一些虚拟服务器可以响应测试 GET 请求并返回
  • Android Gradle 问题 - Flutter / Dart

    我的 Gradle 同步有问题 我使用 IntelliJ 和 Android Studio 构建 Flutter Dart 应用程序 我添加了 2 个新的依赖项 现在 Gradle 出现了问题 在 Android Studio 中一切正常
  • 部署 .war 时出现 Glassfish 服务器错误:部署期间发生错误:准备应用程序时出现异常:资源无效

    我正在使用以下内容 NetBeans IDE 7 3 内部版本 201306052037 爪哇 1 7 0 17 Java HotSpot TM 64 位服务器虚拟机 23 7 b01 NetBeans 集成 GlassFish Serve
  • Chrome:网络元素自动移动

    我正在开发一个网络项目 在过去的两周里 我正在进行学期考试 所以我要休息一下 现在 既然他们已经结束了 我又继续我的工作了 但我发现我的一些Web 元素 如按钮 span 在 Chrome 上移动了一些像素 在 IE 和 Mozilla 上
  • IIS 8 HTTPS/需要 SSL 导致超时错误

    尝试通过 IIS 8 通过 SSL 发布网站 但出现超时错误 任何帮助表示赞赏 采取的步骤 已验证该网站可以通过 HTTP 访问 http xxx xxx xxx xxx有效 此时使用 IP 地址 如果重要的话 IIS gt 服务器证书 g

随机推荐