问题标签 [batching]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
339 浏览

libgdx - LibGDX Sprite Batching 并在运行时添加新的 sprite

我是一名使用 libgdx 引擎的新程序员,并且想知道精灵批处理的行为。特别是如何在程序生命周期中将精灵添加到批处理中以进行绘制。到目前为止,精灵的所有示例都使用了一些类似于: batch.begin(); sprite.draw(batch); batch.end(); 等的代码,我不清楚我将如何绘制不同数量的精灵,因为每个精灵 .draw 必须在批处理中调用......提前谢谢你解释!

0 投票
1 回答
478 浏览

c++ - 在 3D 世界中使用 Alpha 混合的 Z 顺序

我正在开发一款只有 2D 精灵的 3D 世界游戏(比如饥荒游戏)。(带有 C++ 的 OpenGL ES2)

目前,我在没有批处理的情况下将元素重新排序(因此 1 个元素 = 1 个绘制调用)。我想在我的框架中实现批处理以减少绘制调用。

这是我目前所拥有的:

  • 将我场景的所有元素重新排列到前面。
  • 将元素的顺序列表发送到渲染器。
  • 渲染器在他的批处理管理器中查看给定元素是否存在带有其材质的批处理。

    • 批次不存在:创建一个新批次。
    • 具有此材质的元素的批次存在:将精灵添加到批次中。
  • 计算每批包含所有精灵的大网格(1 种材料类型 = 1 批)。

  • 当所有批次都正常时,批次管理器为渲染器计算绘制命令。

  • 渲染器处理绘制命令(绑定着色器、绑定纹理、绑定缓冲区、绘制元素)

图片在这里显示我的问题:图片图片

但是我遇到了一些问题,因为对象可以在另一个批次中的另一个对象后面。

我怎么能做这样的事情?

0 投票
1 回答
1013 浏览

android - 如何在批处理模式下接收传感器数据?

我还没有编写传感器应用程序,但我读到了批处理(在 KitKat 中),我想知道我应该如何获取数据。

我在传感器头文件(第 1083 行)中找到:

自上一批以来的所有事件都被记录并一次全部返回

但根据这个 API,我只有一个 X、Y、Z 来接收数据(而不是列表或数组)。

从 API:

所以我不明白我是否真的应该一次接收所有数据,或者它指的是硬件层,而我,在软件层应该一个接一个地接收数据(通过事件)——如果是,那么延迟是多少,和事件之间的延迟是多少?

谢谢

0 投票
0 回答
84 浏览

sql - 当 select 符合多个单个参数时,批处理是否有用?

我的 Oracle 11g SQL 查询如下所示:

此外,我根据某些条件动态地将几个日期时间限定(在活动表上)添加到上面的查询中。

我正在使用通过 JDBC 编写的批处理框架,但我的问题是 - 在这种情况下真的需要批处理还是只是不必要的开销?我见过的所有示例都涉及in用于资格的参数。

另外,有没有很好的资源来阅读这些东西?我找不到任何像样的来源。

谢谢

0 投票
1 回答
394 浏览

opengl - “批处理”一词在 3D 计算机科学(3D 引擎)中的确切含义是什么?

我正在使用 OpenGL 开发 3D 应用程序。

我对以下帖子的一部分有误解:OpenGL VAO 最佳实践

我不确定这篇文章中“批处理”一词的含义。

这是否意味着场景的每个对象?那么是否建议为场景的每个对象或多个对象创建一个 VAO?批次是指几个对象共享相同的材质、变换和着色吗?

0 投票
1 回答
843 浏览

java - 在 libgdx 中批处理多维数据集时遇到问题

我正在尝试开发一个游戏,我可以在屏幕上渲染多达 300 个立方体。为每个多维数据集创建新模型实例时,modelBatch 的性能很糟糕。据我所知,没有 3d 批处理可以将所有立方体批处理到一个绘图调用中。所以我拼命地试图以某种方式对它们进行批处理。

这个问题与这个问题直接相关:LibGDX 3D increase perfomance

答案成功发布了所有立方体,但是当添加环境以获得一些照明时,立方体似乎缺少侧面或者它们有其他问题。

这是一张图片:

在此处输入图像描述

这是我的立方体类(几乎从上面的答案中复制)

这是我为测试多维数据集而创建的测试用例。

立方体在我的游戏中甚至都不会移动,所以我什至不需要转换。我只需要设置每帧的颜色(包括 alpha 通道)。批处理网格也应该与 libgdx 阴影映射一起使用(我希望当您拥有正确批处理的模型实例时它会自动工作)。

谁能告诉我我的代码有什么问题以及为什么有些面孔没有出现。我知道我可能会问很多,所以我会在两天后悬赏这个问题(50 分)。

编辑:在 Tenfour04 的回答之后,情况好多了。Alpha通道似乎工作了,怪脸问题似乎消失了。然而,当我将这些更改应用于我的真实游戏时,我注意到有时面粉会在游戏地形之上绘制。我更新了测试,通过在立方体中间添加大平面来说明问题。制作了一个视频:https ://www.youtube.com/watch?v=LQhSMJfuyZY 。

我还想澄清一下,我没有使用任何自定义着色器。仅使用 ModelBatch.begin() 和 .end() 方法,无需额外的 openGl 调用。

0 投票
3 回答
749 浏览

recursion - MSbuild 批处理——递归文件夹复制到多个目标文件夹

我遇到了一种情况。我正在尝试使用 MSBuild 批处理将文件夹(子目录和文件)复制到多个 dest 文件夹。但是当我运行下面的脚本时,它会将 src 中的所有内容(也来自子目录的内容)转储到根目标目录中,而我正在寻找的是在目标目录中获得与 src 中完全相同的结构。

你能告诉我我在做什么错吗......

SK

0 投票
2 回答
2003 浏览

opengl - OpenGL状态冗余消除树,渲染状态优先级

我正在我的游戏引擎中使用自动 OpenGL 批处理方法,以减少绘制调用和冗余调用。

我的批处理树设计从最昂贵的状态开始,并为每个成本较低的状态添加叶子。

示例:树根:着色器/程序 兄弟:混合状态 ... aso

所以我的问题是最有可能是最昂贵的电话,在这个列表中:

  • 绑定程序
  • 结合纹理
  • 绑定缓冲区
  • 缓冲纹理、顶点数据
  • 绑定渲染目标
  • glEnable / glDisable
  • 混合状态方程、颜色、函数、colorWriteMask
  • 深度模板状态 depthFunc, stencilOperations, stencilFunction, writeMasks

还想知道哪种方法会更快:
- 将所有可批处理的绘制命令收集到单个顶点缓冲区并仅调用 1 个绘制调用(此方法还将强制在 cpu 端更新每个顶点的矩阵变换)
- 根本不进行批处理并渲染许多小绘制调用,只有批处理粒子系统...

PS:根据使用情况,渲染目标将始终更改为 Pre 或 Post。

目前进展:

  • Andon M. Coleman:最便宜的统一和顶点数组绑定、昂贵的 FBO、纹理绑定
  • datenwolf:程序使状态缓存无效

1:Framebuffer states
2:Program
3:Texture Binding
...
N:Vertex Array binding,Uniform binding

WebGL 中的当前执行树:

  • 程序
  • 属性指针
  • 质地
  • 混合状态
  • 深度状态
  • 模板正面/背面状态
  • 光栅化器状态
  • 采样器状态
  • 绑定缓冲区
  • 绘制数组

每个步骤都是一个兄弟哈希树,以避免再次检查主渲染队列中的状态缓存

加载纹理/程序/着色器/缓冲区在渲染之前发生在额外的队列中,以用于未来的多线程,并确保在对其进行任何操作之前初始化上下文。

自渲染对象的最大问题是您无法控制何时发生某些事情,例如如果开发人员在 gl 初始化之前调用这些方法,他不会知道为什么但他会遇到一些错误或问题......

0 投票
2 回答
56 浏览

msbuild - MSbuild 批量复制

上次,我误解了我的情况,但是你们给了我非常快速和很好的解决方案。因此回来。我有一个新情况。我提供了我的代码片段。不知道出了什么问题。

我正在尝试复制到具有相同目录结构的多个服务器。不知道有什么问题...

0 投票
1 回答
894 浏览

json - 关于 OpenERP 和 Odoo HTTP 请求批处理的建议

任何人都可以就过去成功/初步尝试将 HTTP 请求批处理应用于 OpenERP/Odoo 提供建议或反馈吗?

想要做的是...模拟用户对 OpenERP 7 门户的输入,基于所有用户活动都以一种或另一种方式转换为 HTTP 请求的假设,主要是带有 (IINM) JSON 有效负载的 POST。

如果您尝试过这样做,有人可以举手吗?