- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将 Android openGL 项目转换为 Java,但我无法理解其内部结构
GLES20.glUniformMatrix4fv(int location, int count, boolean transpose, float[] value, int offset)
在 opengl ES 中,我有两个数组,每个数组的长度为 128 个 float
float[] jointMatrix;
float[] invBindPoseMatrix;
然后通过这些调用将其发送到着色器
GLES20.glUniformMatrix4fv(jointMatrixHandle, 8, false,DAE.jointMatrix, 0);
GLES20.glUniformMatrix4fv(invBindPoseMatrixHandle, 8, false, DAE.invBindPoseMatrix, 0);
在着色器中它被接收为
uniform mat4 jointMatrix[8]
uniform mat4 invBindPoseMatrix[8]
我的问题是,android 是否会在一次调用中发送整个 128 项 float 组,并自动分割为 8 个 4x4 矩阵?偏移量为 16。0-15-31- 等等。?
最佳答案
答案是:是。
你可能想多了。它真的没有魔力。在大多数语言中,数组的元素在内存中按顺序排列。因此,如果您查看 8 个 4x4 矩阵的内存布局,它只是一个 8 * 4 * 4 = 128 个 float 的序列。由于声明数组的类型,它们将以某种方式解释。但就内存布局而言,它与 128 个 float 的数组完全相同。
因此计数为 8 的 glUniformMatrix4fv()
为这 8 个矩阵提供了该内存的内容。因为,如上所述,8 个矩阵的数组只是内存中 128 个 float 的序列,它消耗 128 个 float ,并将它们直接复制到矩阵数组使用的内存中。
在 OpenGL 中使用矩阵需要注意的一个方面是它们按列主要顺序存储。在传递给 glUniformMatrix4fv()
的数组中,必须考虑矩阵元素的顺序。
关于Android openGL GLES20.glUniformMatrix4fv 到 java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29095477/
当我调用 glUniform2fv 时到底会发生什么? 它是同步复制传递的缓冲区还是只是接受指针并稍后使用该数据?它保留缓冲区吗? 换句话说:在函数中传递本地创建的或非保留的缓冲区是否安全,或者由我来
我接到了一项任务,要将一个简单的电子表格转换为要在网站上使用的 HTML 表单,该任务将使用 JavaScript 进行一些计算。这根本没问题,除非我对财务功能一无所知,而且我遇到了 FV( futu
我负责表单的验证。我使用 BootstrapValidator v0.4.5 库。我想触发“success.form.fv”事件来发送表单数据。 有人可以帮我修复这段代码以进入处理程序并查看警报吗?
我正在尝试计算客户的终生值(value)。假设一位新客户每年支付 10 万美元并保留 5 年。让我们以 10% 的利率对 future 几年的付款进行折扣。 这是手动计算: Year 1 $
我想知道下面的命令到底是什么意思?? rm -fv csf.tgz 我输入这个命令作为在我的 virtualmin 上安装 csf 的第一步,但我不知道确切的含义。我刚刚复制并粘贴了它。 最佳答案 r
我正在将一些相当复杂的计算从 Excel 电子表格转换为 PHP。我卡在 Excel 的 FV 函数的转换上,它是这样定义的: FV( interest_rate, number_payments,
我是一名优秀的程序员,十分优秀!